SQL总结
1.SQL分类
1) DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 。
exa: create database 数据库名称 character set 字符集名; show databases; show create database 数据库名称; alter database 数据库名称 character set 字符集名称;
drop database if exists 数据库名称;
create table 表名( 列名1 数据类型1,....); alter table 表名 rename to 新的表名;alter table 表名 rename to 新的表名; alter table 表名 add 列名 数据类型;
alter table 表名 change 列名 新列别 新数据类型; alter table 表名 modify 列名 新数据类型; alter table 表名 drop 列名; drop table 表名;
2)DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等。
exa:insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n); delete from 表名 [where 条件]; TRUNCATE TABLE 表名(删全部);
update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 条件];
3)DQL(Data Query Language)数据查询语言
用来查询数据库中表的记录(数据)。关键字:select, where 等。
exa:select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定
where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来。where 后不可以跟聚合函数,
having可以进行聚合函数的判断。
4)DCL(Data Control Language)数据控制语言
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等。
2.约束和索引
数据库索引其实就是为了使查询数据效率快。
聚集索引(主键索引):在数据库里面,所有行数都会按照主键索引进行排序。非聚集索引:就是给普通字段加上索引。联合索引:就是好几个字段组成的索引,称为联合索引。
范围字段会结束索引对范围后面索引字段的使用 。like就是%在前面的不走索引,在后面的走索引,对索引列计算的,不走索引。
1. 主键约束:primary key 2. 非空约束:not null 3. 唯一约束:unique 4. 外键约束:foreign key。
3.多表查询
1. 内连接查询:
1. 隐式内连接
2. 显式内连接 语法: select 字段列表 from 表名1 [inner] join 表名2 on 条件。
2. 外链接查询:
1. 左外连接:语法:select 字段列表 from 表1 left [outer] join 表2 on 条件;查询的是左表所有数据以及其交集部分。
2.右外连接: 语法:select 字段列表 from 表1 right [outer] join 表2 on 条件;查询的是右表所有数据以及其交集部分。
3. 子查询:
查询中嵌套查询,称嵌套查询为子查询。
1.子查询的结果是单行单列的,可以作为条件,使用运算符去判断。
2.子查询的结果是多行单列的,使用运算符in来判断。
3.查询的结果是多行多列的,将子查询作为一张虚拟表参与查询

浙公网安备 33010602011771号