SQL简介
SQL (Structured Query Language) 是用于管理关系数据库管理系统的结构化查询语言。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。
关系型数据库管理系统 中的数据存储在被称为表的数据库对象中。
表是相关的数据项的集合,它由列和行组成。
常用SQL命令
SELECT – 从数据库中提取数据
WHERE – 提取满足指定条件的数据
UPDATE – 更新数据库中的数据
DELETE – 从数据库中删除数据
INSERT INTO – 向数据库中插入新数据
CREATE DATABASE – 创建新数据库
ALTER DATABASE – 修改数据库
CREATE TABLE – 创建新表
ALTER TABLE – 变更(改变)数据库表
DROP TABLE – 删除表
CREATE INDEX – 创建索引(搜索键)
DROP INDEX – 删除索引
本专栏将依次介绍SQL的各种命令及相关语法。学习之前请先准备好数据库工具,并创建数据表。此处以学生数据表(students)为例:
(需要数据库工具和源数据的请私信)
SELECT 语句
SELECT 语句用于从数据库中选取数据。
语法:
SELECT column1, column2, ...FROM table_name;
column1, column2 表示表的字段名(列名),例如 id , name ,age …
可以同时选取多个字段,每个字段之间以逗号“,”隔开。一段SQL语句结尾以分号“;”结束。
table_name 表示表名,例如students
以students表为例,选取学生的id和姓名数据:
SELECT id,name FROM students;# 从students表中选择id,name字段
另外SQL语法中常使用 星号 “ * ” 表示表的全部字段,所以要选取表的所有字段,可以这样写:
select *from students;#从students表中选择所有字段
注意:SQL命令一般不区分大小写,大写小写均可,但是命令中的字段名与表名应与实际大小写一致。
WHERE 语句
WHERE 语句用于过滤记录,提取满足指定条件的数据。
语法:
SELECT column1, column2, ...FROM table_nameWHERE condition;
condition 表示过滤条件
以students表为例,提取年龄为23的所有学生数据:
SELECT*FROM studentsWHERE age = 23;#从students表中过滤出age字段值为23的数据行,选择其所有字段
提取理科一班的所有学生数据:
SELECT*FROM studentsWHERE clazz = '理科一班';
注意:where语句中过滤条件指定字段值为数值不加引号,中文则需要加引号。
另外,where语句中过滤条件可以选择使用多种运算符,如下:
运算符 | 功能 |
---|---|
= | 等于 |
!= | 不等于,有些版本使用 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN … AND… | 在某个范围内 |
LIKE | 搜索某种模式 |
IN | 指定针对某个列的多个可能值 |
前六个运算符不做赘述,后三个举例解释:
BETWEEN
选取年龄在21到23岁之间的学生数据:
SELECT*FROM studentsWHERE age BETWEEN 21 AND 23;
注意between的范围是左闭右闭,包含两个端值。
LIKE
首先需要知道,LIKE是模糊匹配,百分号 % 表示多个字符,下划线 _ 表示单个字符。
% 表示多个字符,_ 下划线表示一个字符;
M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
%M% : 表示查询包含M的所有内容。
%M_ : 表示查询以M在倒数第二位的所有内容。
选取所有理科班的学生数据:
SELECT*FROM studentsWHERE clazz LIKE '理科%';
选取所有姓赵的学生数据:
SELECT*FROM studentsWHERE name LIKE '赵__';
IN
选取文科五班和理科五班所有学生数据:
SELECT*FROM studentsWHERE clazz IN ('文科五班','理科五班');
本专栏将持续更新,对数据库SQL感兴趣的同学可以关注一下,谢谢!