注册 登录

清河洛

SQL中常用DML语句

qingheluo2016-12-16清河洛315
DML:数据操纵语句,用于添加、删除、更新和查询数据库记录并检查数据完整性如果进行的数据库改密码等操作,运行flush privileges命令让mysql重新加载,从而让配置生效1、INSERT INTO语句:①单条记录插入insert into 表名(字段1,字段2,...,字段n) values(值1,值2,...,值n);也可以不指定字段名,但是values后面的值要和字段排序一致。②多条记录插入insert into 表名(字段1,字段2,...,字段n) values (值1,值2,...,值n),(值1,值2,...,值n),...;③从一个表复制数据,然后把数据插入到一个...

DML:数据操纵语句,用于添加、删除、更新和查询数据库记录并检查数据完整性

如果进行的数据库改密码等操作,运行flush privileges命令让mysql重新加载,从而让配置生效

1、INSERT INTO语句:

①单条记录插入

insert into 表名(字段1,字段2,...,字段n) values(值1,值2,...,值n);

也可以不指定字段名,但是values后面的值要和字段排序一致。

②多条记录插入

insert into 表名(字段1,字段2,...,字段n) values (值1,值2,...,值n),(值1,值2,...,值n),...;

③从一个表复制数据,然后把数据插入到一个已存在的表中,目标表中任何已存在的行都不会受影响。

INSERT INTO SELECT 语句:INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1;

2、更新记录:

①更新一个表:

update 表名 set 字段1=值1,字段2=值2,...,字段n=值n [where 条件];

②更新多个表中数据:

update 表名1,表名2,...,表名n set 表名1.表1字段名=值1,表名2.表2字段名=值2,...,表名n.表n字段名=值n [where 条件];

实例:update t1,t2 set t1.age=2000,t2.age=3000 where t1.id=1 and t2.id=1;

3、删除记录:

①删除一个表中的数据

delete from 表名 [where 条件];

②删除多个表中的数据

delete 表1,表2,...表n from 表1,表2,...表n [where 条件];

注:不管是单表还是多表,不加where条件将会把表中的所有记录删除。

③清除表中有所数据

truncate 表名;

所有索引数值将全部重置为初始大小。

4、查询记录:

查询表记录 select *|字段1,字段2... from 表名 [where 条件];

①查询不重复的记录:

select distinct *|字段1,字段2... from 表名 [where 条件];

查询字段中数据,并把重复的数据剔除以后(只显示一条记录)输出。

只要字段1,字段2中任何一个字段有不同就会被选择!一般使用distinct只筛选一个字段!

②排序:

单字段排序:

select * from 表名 order by 字段名 asc|desc;

asc:由低到高,也是默认值 desc:由高到底

多字段排序:

select * from 表名 order by 字段名1 desc,字段名2 desc;

先根据字段1进行由高到低排序,中间有相同数值的再根据字段2进行由高到低排序。

③获取指定数目都结果

limit y:前y条(从第一条数据开始)数据

limit x, y:从第x条(x从0开始)开始一共y条数据

limit y offset x:共读取y条数据从第x条(x从0开始)开始

5、清理数据缓存:

vacuum [table_name]

回收已删除的数据占用的存储。在日常数据操作中,更新或删除的数据并没有从物理表中删除,数据仍然存在于磁盘上,直到vacuum操作完成。因此,有必要定期做vacuum,尤其是在频繁更新的表

没有参数(不指定表名)的情况下,vacuum处理当前数据库中的每个表格
vacuum不能在事务块里面执行
vacuum导致I/O流量的大幅增加,因此最好是在低使用时间进行操作


网址导航