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.查询的结果是多行多列的,将子查询作为一张虚拟表参与查询

posted @ 2020-05-13 09:04  Erha  阅读(50)  评论(0)    收藏  举报