SQL语句分为三类
- DDL:数据定义语句,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象,常用的语句关键字有create、drop、alter等。
- DML:数据操纵语句,用于增、删、改、查以及检查数据完整性,常用的包括insert、delete、update、select等。
- DCL:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的关键字有grant、revoke等。
一、DDL语句
1、创建数据库
语法如下:create database dbname
查看所有存在的数据库:show databases
2、进入某数据库:use dbname
查看该数据库中存在的表:show tables
3、删除数据库
4、创建与查看表中元素
5、删除表:drop table tablename
6、修改表
(1)修改表中数据类型
(2)增加表字段
(3)删除表字段
(4)字段改名
(5)修改字段排序
此处需要注意的是change与modify都可以修改表的定义,不同的是change后面需要写两次列名,不方便,但是change的优点是可以修改列名称,而modify不能。
(6)更改表名
alter table tablename1 rename tablename2
二、DML语句
1、插入数据
2、更新记录
3、删除记录
4、查询记录
(1)查询不重复的记录
将表中的重复记录去掉,将剩下的显示出来,关键字:distinct
(2)条件查询
条件查询的关键字为where
(3)排序和限制
排序的关键是order by ,其中,desc表示降序排列,asc表示升序排列。如果排序后,只希望部分显示,使用关键字limit。注意limit是mysql特有语法,其他数据库并不能使用。
(4)聚合
having是对聚合后的结果进行条件的过滤,而where是在聚合前就对记录进行过滤,如果逻辑允许,我们尽可能用where先过滤记录,这样因为结果集减小,将对聚合的效率大大提高,最后再根据逻辑看是否用having进行再过滤。
(5)表连接
内连接仅选出两张表中互相匹配的记录,而外连接会选出其他不匹配的记录。我们常用的是内连接。外连接又分为左连接和右连接,具体来说,左连接包含所有左边表中的记录甚至是右边表中没有和它匹配的记录;右连接包含所有右边表中的记录甚至是左边表中没有和它匹配的记录。
(6)子查询
子查询的关键字包括in/not in/=/!=/exists/not exists等,如果子查询记录数唯一,我们可以用=代替in。
(7)记录联合
联合的关键字是union和union all,这两者的区别就是排列组合与排列的区别。