SQL总结

一、sql中的几个重要的概念
1.数据定义语言:DDL(Data Definition Language),用来定义数据库对象:数据库、表、列等。四个关键字:create(添加)、alter(修改)、drop(删除)和 truncate(删除)
2.数据操作语言:DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert, update, delete等
3.数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录,关键字:select from where等
4.事物控制语言:简称TCL(Transaction Control Language),关键字:commit,rollback等

二、alter关键字的使用
1.alter + modify可以修改字段的长度,字段名字
alter table job modify name varchar(25)
alter table job modify/change wage salary decimal(10,2)

2.也可以对表结构进行修改,比如增加一个字段,默认是添加为表中最后一个字段,但可以通过first | after column_name这个选项来修改表中字段的位置
alter + add
alter table job add home varchar(30);
alter table job add birthday after hiredate;

3.alter + drop将新添加的表的字段删除
alter table job drop column home

三、distinct去重关键字,使用在要去重的字段前面
select distinct age from job;

四、limit的用法
select * from job order by salary desc limit 2,3;
上面这种 limit 是从表记录的第 0 条开始取,如果从指定记录开始取,比如从第二条开始取,取三条记录,SQL 如下
select * from job order by salary limit 3;

五、where和having的区别
首先where和having都是表示对记录进行过滤,不过它们用法不一样,where 是使用在统计之前,对统计前的记录进行过滤,having 是用在统计之后,是对聚合之后的结果进行过滤。也就是说 where 永远用在 having 之前,我们应该先对筛选的记录进行过滤,然后再对分组的记录进行过滤。

六、连接
内连接(inner join):选出两张表中互相匹配的记录;
外连接:不仅选出匹配的记录,也会选出不匹配的记录
外连接分为两种:
左外连接(left join):保留左表的记录并且筛选出右表与之匹配的记录,不匹配用null表示
右外连接(right join):保留右表的记录并且筛选出右表与之匹配的记录

七、联合查询
将两个表的数据单独查询出来之后,将结果合并到一起进行显示,这个时候就需要 UNION 和 UNION ALL 这两个关键字来实现这样的功能,UNION 和 UNION ALL 的主要区别是 UNION ALL 是把结果集直接合并在一起,而 UNION 是将 UNION ALL 后的结果进行一次 DISTINCT 去除掉重复数据。
select type from job union all select type from job_type;
select type from job union select type from job_type;
UNION 是对 UNION ALL 使用了 distinct 去重处理。

八、CHAR 和VARCHAR类型
首先他两都是用来保存字符串的数据类型。主要的区别在于存储方式不同,CHAR类型的长度是定义多少显示多少。比如说声明一个CHAR(20)的字符串类型,那么每个字符串占用20个字节,其取值范围0-255。VARCHAR是可变长的字符串,范围是0~65535,在字符串检索的时候,CHAR会去掉尾部的空格,而VARCHAR会保留这些空格

九、BLOB 类型
BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

你可能感兴趣的:(SQL总结)