SQL语言
SQL(Structured Query language,结构化查询语言)是一种数据库查询语言。
SQL语言包含以下4个部分:
(1) 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
(2)数据操作语言(DML),例如:INSERT、UPDATE、DELETE等语句。
(3)数据查询语言(DQL),例如:SELECT语句。
(4)数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。
一、创建数据库 CREATE DATABASE
语法如下:
二、删除数据库 DROP DATABASE
语法如下:
三、创建表 CREATE TABLE
创建数据库后,就可在里面创建表,语法如下:
四、修改表 ALTER TABLE
下面通过例子来学习表的修改。
(1)将studentinfo表的name字段改为nvarchar(10),非空,代码如下:
(2)在(1)基础上添加一个gender字段,数据类型为nvarchar(2),非空,代码如下:
(3)把(2)中添加的字段删除,代码如下:
(4)对gender字段添加约束,让它只能是“男”或“女”,代码如下:
其中constraint代表约束,ck_gender是约束名。Check后面括号里是约束条件。
五、删除表 DROP TABLE
语法如下:
六、插入数据 INSERT
INSERT语句用于将新行追加到表中。语法如下:
七、更新数据 UPDATE
语法如下:
八、删除数据 DELETE
语法如下:
九、查询语句
SELECT语句主要子句可归纳如下:
(1) FROM 子句返回初始结果集。
(2) WHERE 子句排除不满足搜索条件的行。
(3) GROUP BY 将选定的行收集到 GROUP BY 子句中各个唯一值的组中。
(4) 选择列表中指定的聚合函数可以计算各组的汇总值。
(5) HAVING 子句排除不满足搜索条件的行。
① FROM 子句
FROM子句是必需的,指定从哪些表中查询。
例1:查询 studentinfo 表里的所有记录,代码如下:
例2:查询 studentinfo 表里所有学生的学号和姓名,代码如下:
② WHERE 子句设置查询条件
例1:从 examscore 表里面查询分数高于80的学生的记录,代码如下:
例2:从 studentinfo 表和 examscore 表中查询出所有学生的成绩,要求有id,name,gender,score,class字段。查询结果按考试分数从高到低排序,代码如下:
③ 通配符
通配符有下面几种:
通配符 | 说明 |
% | 替代任何字符串 |
_ | 替代任何单个字符 |
[] | 替代指定范围内的单个字符 |
[^] | 替代指定范围外的单个字符 |
例如:查询 studentinfo 里面所有姓张的同学的信息,代码如下:
十、连接查询
语法如下:
(一二可以是同一张表,称为自连接)
连接类型有以下几种:
(1)[INNER] JOIN 内连接
(2)LEFT [OUTER] JOIN、RIGHT [OUTER] JOIN、FULL [OUTER] JOIN 外连接
(3)CROSS JOIN 交叉连接
① 内连接
内连接只显示符合条件的记录,是默认的方式。
例1:从 studentinfo 表和 examscore 表中查询出所有学生的成绩和所有信息。新建查询代码如下:.
查询结果会出现两个相同的id字段。因为“*”默认列出所有字段,不管是否重复。
修改后的代码:
② 外连接
(1)LEFT [OUTER] JOIN:显示左边表中所有记录,以及右边表中符合条件的记录。
代码如下:
(2)RIGHT [OUTER] JOIN:显示右边表中所有记录,以及左边表中符合条件的记录。
代码如下:
(3)FULL [OUTER] JOIN:显示所有表中的所有记录
代码如下:
③ 交叉连接
不带 ON 子句,它返回被连接的两个表所有数据行的笛卡尔积。
新建查询代码如下:
上一篇:SQL考核
下一篇:无