一、Union合并查询结果集
union的效率比连接查询高,把乘法变成了加法。
注意:union在结果集合并的时候要求2个结果集的列和列的数据类型要一致
案例: 查询工作岗位是MANAGER和SALESMAN的员工
select
ename, job
from
emp
where
job = 'manager'
union
select
ename, job
from
emp
where
job = 'salesman'
二、limit
limit是将查询结果的一部分取出来,通常使用在分页查询中。limit是在order by之后执行。
分页查询公式:limit (pageno - 1)*pagesize, pagesize
- 完整用法: limit startIndex, length
起始下标默认从0开始 - 缺省用法: limt 5;取前五
案例:安装薪资降序,取出排名在前五名的员工
select
ename, sal
from
emp
order by
sal desc
limit 5;
三、 表的创建
建表的语法格式
create table tableName(
字段名 字段类型,
字段名 字段类型
);
表名:建议以t_或者tbl_开始
字段名:见名知意
四、表的删除
drop table tableName; //当这张表不存在会报错
drop table if exists tableName; //存在则删除
五、数据类型
- varchar(最长255)
可变长度字符串,根据实际的数据长度动态分配空间,节省空间。 - char(最长255)
定长字符串,分配固定长度的空间去存储数据,可能导致空间的浪费,但效率比varchar高。 - int(最长11)
数字中的整数型 - bigint
数字中的长整型 - float
单精度浮点型数据 - double
双精度浮点型数据 - date
短日期 - datetime
长日期 - clob(Character Large Object)
字符大对象,最多可以存储4G的字符串。超过255个字符的都要采用CLOB字符大对象来存储。 - blob(Binary Large Object)
二进制大对象,专门存储图片、声音、视频等媒体流数据,要用IO流操作。
六、插入数据insert
语法格式:
insert into 表名(字段名1,字段名2) values(值1,值2);
插入多条记录:
insert into 表名(字段名1,字段名2) values(值1,值2),(值1,值2),(值1,值2);
注意:
- insert语句但凡执行成功,就必定会多一条记录,没有给字段给定值的话,默认为null。
- 省略字段名的话,要写上所有的值
七、date和datetime两个类型的区别
date是短日期:只包括年月日信息
默认格式:'%Y-%m-%d'
datetime是长日期:包括年月日时分秒信息
默认格式:'%Y-%m-%d %h:%i:%s'
now():获取系统当前时间,是datetime类型的
八、修改update
语法格式:
update 表名 set 字段名1=值1,字段名2=值2 where 条件;
注意:如果没有条件数据会更新所有数据.
九、删除delete
语法格式:
delete 表名 where 条件;
注意:如果没有条件整张表的都会被删除.
十、快速建表
create table emp2 as select * from emp;
原理:将一个查询结果当作一张表,可以完成表的快速复制
十一、将查询结果插入到一张表中
insert into table_name select * from other_table;
十二、快速删除表中的数据
传统: delete from table_name
原理: 表中的数据被删除了,但存储空间没被释放,效率低,支持回滚,可以恢复数据
truncate删除语句:
删除效率比较高,表被一次截断,物理删除,不支持回滚
truncate table table_name