mysql DML语句学习1

DML 操作是指对数据库中表记录的操作,主要包括表记录插入(insert)、更新(update)、删除(delete)和查询(select)

1. 插入记录

表创建好后,就可以往里插入记录,基本语句如下:

INSERT INTO tablename (field1,field2,.....fieldn) VALUES (value1,value2....valuen);

例如,向emp 表中插入以下记录:

ename 为abc1,hiredate 为 2017-10-09,sal 为2000,deprno 为1

也可以不用指定字段名称,但是values后面的顺序应该和字段的排列顺序一致:

含可空字段、非空但是含有默认值的字段、自增字段,可以不用在insert 后的字段列表里面出现,value后面只写对应字段名称的value,

这些没写得字段可以自动设置为NULL、默认值、自增值

例如,只对表中的ename 和sal字段显示插入:

insert 语句可以一次性插入多条记录

例如:

2. 更新记录

表中记录值可以通过uodate 命令进行更改,语法如下

UPDATE tablename SET field1=value1,field2=value2,....fieldn=valuen [WHERE CONDITION]

例如,将表中abc1 的薪水从2000 改为3000

3.删除记录

语法如下:

DELETE FROM tablename [WHERE CONDITION]

例如,在emp 中将dony 的记录全部删除,命令如下:

4.查询记录

语句如下:

SELECT * FROM tablename [WHERE CONDITION]

查询所有的记录值

select * from emp;

(1)查询不重复记录。

select distinct deptno from emp;

(2)条件查询

select * from emp where deptno=1;

多个字段查询

select * from emp where deptno=1 and sal<3000;

(3)排序和限制

select * from emp order by sal;

对于sal 相同的前两条记录,如果按照从高到低排序,可以使用以下命令:

select * from emp order by sal desc;

对于后续记录,希望只显示一部分,可以用LIMIT 关键字

select * from emp order by sal limit 3;

如果 显示emp 表中 按照sal 排序后从第二条记录开始,显示3条记录:

select * from emp order by sal limit 1,3;

(4)聚合

例如要统计emp表中公司人数

在此基础上,统计各个部门人数:

更细一点,既要统计部门人数,又要统计总人数:

统计人数大于1的部门

select deptno,count(1) from emp group by deptno having count(1)>1;

统计公司所有员工的薪水总额、最高最低薪水:

(5)表连接

显示多个表中字段

(6)子查询

 

posted @ 2017-10-09 17:22  执酒  阅读(235)  评论(0)    收藏  举报