(1) 添加数据
insert into 表名 values(字段值,字段值,…);
insert into 表名 (字段名1,字段名2,…) values(值1,值2,…);
批量添加数据:
insert into emp values(字段值,字段值,…),(字段值,字段值,…),(字段值,字段值,…)…;
insert into emp (字段名) values(字段值),(字段值),(字段值)…;
(2) 修改数据
update 表名 set 字段名=值 where 条件;
(3) 删除数据
delete from 表名 where 条件;
(4) 查询数据
select 字段信息 from 表名 where 条件;
9. 数据相关SQL进阶
(1) is null 和 is not null
空和非空
(2) and 和 or
and相当于&&,or相当于||
(3) between x and y
xy两者之间,包含xy
(4) in (x,y,z)
是x、y、z其中之一
(5) 比较运算符 >, <, >= ,<=, != 和 <>
<> 相当于 != 不等于的意思
(6) 模糊查询
% :代表0或多个未知字符
_ :代表1个未知字符
(7) distinct 字段名
去重,放在字段名前面
(8) order by 字段名 asc/desc;
排序,asc:升序,desc:降序
(9) limit 跳过的条数,请求的条数
分页查询,limit (页数-1)*条数,条数,查到的是分页后的页数
(10) 数值计算 + - * / % 和 mod(x,y)
mod(x,y)也是取余,x%y
(11) 分组查询
group by
(12) having
后面可以添加条件用于查询,不能使用聚合函数
(13) 各个关键字的顺序 select … from … where … group by … having … order by … limit …;
10. 关联查询
(1) 查询方式有三种:等值连接、内连接、外连接
如果查询的数据是两张表的交集数据使用等值或内连接(推荐)
如果查询的数据是一张表的全部数据和另外一张表的交集数据使用外连接
(2) 等值连接: select * from A,B where A.x=B.x and A.age=18;
(3) 内连接:select * from A [inner] join B on A.x=B.x where A.age=18;
(4) 外连接:select * from A left/right [outer] join B on A.x=B.x where A.age=18;
(5) select date(now()); select time(now());
从年月日时分秒中提取年月日 和 提取时分秒
举例:
select time(birthday) from user;
查询商品表中每个商品上传年月日 select date(createdtime) from titem;
查询商品表中每个商品上传时分秒 select time(createdtime) from titem;
提取时间分量extract: select extract(year from now()); select extract(month from now()); select extract(day from now()); select extract(hour from now()); select extract(minute from now()); select extract(second from now());
查询每个员工入职的年份 select extract(year from hiredate) from emp;
(10) group_concat() 组连接
group_concat(字段1,’-’,字段2)
select 字段名,group_concat(字段1,’-’,字段2) from 表名;
14. 视图view
(1) 什么是视图:数据库中表和视图都是其内部的对象,视图可以理解成一张虚拟的表,数据来自原表,视图本质其实就是取代了一段SQL查询语句
(2) 视图的优势:视图可以起到SQL重用的作用,提高开发效率。可以隐藏敏感信息
(3) 视图创建方式: create view 视图名 as (子查询)
创建id>10的视图 create view 视图名 as (select * from 表名where id>10);
(4) 修改视图: create or replace view 视图名 as (子查询);
(5) 删除视图:drop view 视图名;
15. 索引
(1) 在数据量大的时候创建索引可以加快查询效率;只针对创建索引的字段查询有效;索引也需要占用内存,所以一般常用的字段才创建索引
(2) 创建索引: create index 索引名 on 表名(字段(字段长度));
(3) 查看索引 show index from 表名
(4) 删除索引 drop index 索引名 on 表名;