MySQL之DML语句(上)
来源:互联网 发布:mac 双定制粉底液 肤质 编辑:程序博客网 时间:2024/06/08 11:02
2.2.3 DML语句
DML操作是对数据库中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select)
1.插入记录
语法:mysq;>INSERT INTO tablename(field1,field2...fieldn) VALUES(value1,value2...valuen);
如:mysql>insert into r720 values('id','cpu',12,50);
2.更新记录
语法:mysql>UPDATE tablename SET field1=value1,field2=value2,...fieldn=valuen[WHERE CONDITION]
如:mysql>update emp set sal=400 where ename='lisa';
可以同时更新多个表中的数据:
语法:mysql>UPDATE t1,t2,....tn SET t1.field1=value1,t2.field2=value2,..,tn.fieldn=valuen[WHERE CONDITION]
如:mysql>update emp a, dept b set a.sal=a.sal*b.deptno,b.deptname=a.ename where a.deptno=b.deptno;
3.删除记录
语法:mysql>delete from tablename[WHERE CONDITION]
如:mysql>delete from emp where ename='dony';
注:不管是单表还是多表,不加where条件将会把表的所有记录删除。
4.查询记录
语法:mysql>SELECT * FROM tablename[WHERE CONDITION]
如:mysql>select * from r720;---------mysql>select * from r720 where id<10 and cpu=45;
(1)查询不重复记录
有需要将表中的记录去掉重复后显示出来,可以用dinstinct关键字来实现
mysql> select ename hiredate,sal,id from emp;
mysql> select dintinct id from emp
(2)条件查询
在多数情况下,我们并不需要查询所有的记录,只是需要根据条件来查询一部分数据,用where关键字来实现这样的操作
如:查询temperature为20的记录
where后面的条件是一个字段的=比较,出了=之外,还可以使用>、<、>=、<=、!=等比较运算符;多个条件之间还可以使用or、and等逻辑运算符进行多条件联合查询。
如:使用多字段条件查询
(3)排序和限制
去除某个字段进行排序后的记录结果集,用关键字ORDER BY来实现,语法如下:
mysql>SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1[DESC\ASC],field2[DESC\ASC],....,fieldn[DESC\ASC]]
【注】DESC和ASC是排序顺序关键字,DESC表示按照字段进行降序排列,ASC表示升序表示,如果不写此关键字默认是升序排列。ORDER BY后面可以跟不同的排序顺序,并且每个排序字段可以有不同的顺序。
如:把r720表内cpu的记录按照从高到低顺序进行显示:
对于CPU中字段相同的记录,如果要按照traffic由高到低排序,如下:
【注】对于排序后的记录,如果希望只显示一部分,而不是全部,此时可以使用LIMIT关键字来实现,LIMIT的语法如下: mysql>SELECT....[LIMIT offset_start,row_count]
其中,offset_set表示记录的起始偏移量,row_count表示显示的行数。在默认情况下,只需要记录行数即可,此时,实时显示的就是排序后的前n条记录。如下示例:
【注】如果要显示表按照某字段后的第二条记录开始的3条记录。limit常和order by配合使用来进行记录的分页显示。
(4)聚合
在多数情况下,我们有时需要进行一个汇总操作,比如统计公司人数或者统计每个部门人数,用到SQL的聚合操作。聚合操作的语法如下:
mysql>
SELECT[field1,field2,...,fieldn]fun_name
FROM tablename
[WHERE where_contition]
[GROUP BY field1,field2,...,fieldn
[WITH ROLLUP]]
[HAVING where_contition]
参数说明:
※fun_name表示要做的聚合操作,也就是聚合函数,常用的有sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。
※GROUP BY关键字表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门就应该写在group by后面。
※WITH ROLLUP是可选语法,表明是否对分类聚合后的结果进行再汇总。
※HAVING关键字表示对分类后的结果再进行条件的过滤。【先分类在过滤】
【注】having和where的区别在于:having是对聚合后的结果记性条件的过滤,而where是在聚合前就对记录进行过滤,如果逻辑允许,我们尽可能用where先过滤记录,这样因为结果集减小,将对聚合的效率大大提高,最后再根据逻辑看是否用having进行再过滤。
如:要在表r720总统计记录条数,共17条记录。
mysql>select count(1) from r720;
在此基础上,要统计各个字段的记录条数
mysql>select cpu,count(1) from r720 group by cpu;
更细一些,即要统计CPU记录数,又要统计总记录数
mysql>select cpu,count(1) from r720 group by cpu with rollup;
统计CPU中数值小于55的记录
mysql>selec cpu,count(1) from r720 group by cpu having count(1)<55;
最后统计r720中所有字段的记录总额、最高和最低。
mysql>select * from r720;
mysql>select sum(cpu),max(cpu),min(cpu) from r720;
莫让幽怨记心头,你我不过半壶酒;策马奔腾何处走,我来世还复休。
- MySQL之DML语句(上)
- MySQL之DML语句(下)
- Mysql之DML语句_insert_uodate_delete
- (mysql)DML语句 总结
- MySQL中的DML(数据操作语句)
- mysql优化-----dml语句
- MySQL DML语句
- mysql 常用dml 语句
- MySQL笔记-DML语句
- mysql---DML语句
- Mysql 基础DML语句
- MySQL --DML语句
- MySQL基础-DML语句
- MySQL(八)之DML
- oracle之DML语句
- php中对MYSQL操作之预处理技术(1)数据库dml操作语句
- MySql(4)------SQL基础之DML(Data Manipulation Language)下的查询(select)语句
- MySQL增删改查之DML语句详解
- bzoj 4530(DFS序+线段树合并)
- 9.28-9.29 课程记录
- 小薇学院任务一:零基础HTML编码(笔记)
- bzoj 1966: [Ahoi2005]VIRUS 病毒检测
- Python学习笔记:高阶函数(函数指针)与装饰器
- MySQL之DML语句(上)
- 梯度下降法的三种形式BGD、SGD以及MBGD
- BZOJ 2115 Xor 线性基介绍(高斯消元 xor线性基)
- AJAX提交到Handler.ashx一般处理程序返回json数据 (字符串拼接方式)
- 11、C#里面随机数的获取、取最大数的实例
- 五子棋优化算法
- mysql基本操作
- 感知与记忆
- iOS资源大全中文版