Mysql(2)

DML---对数据库中表记录的操作(插入insert、更新updata、删除delete、查询select)

1.插入记录

insert into tablename(field1,field2,...,fieldn) values(value1,value2,...,valuen);

eg:向emp表中插入ename为zzx1,hiredate为2000-01-01,sal为2000,deptno为1

insert into emp(ename,hiredate,sal,deptno) values('zzx1','2000-01-01','2000',1);

或不指字段名,但是values先后顺序要与字段顺序一致。

insert into emp values('zzx1','2000-01-01','2000',1);

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

 查看整个表格:
select * from table_name;

一次插入多条记录:

insert into tablename (field1,field2,...,fieldn)

values

(record1_value1,record1_value2,....record1_valuen),

(record2_value1,record2_value2,....record2_valuen),

...

(recordn_value1,recordn_value2,....recordn_valuen);

eg:insert into dept values(5,'dept5'),(6,'dept6');

 2.更新记录update

update tablename set field1=value1,field2=value2,...,fieldn=valuen[where condition]

eg;将emp表中ename为lisa的薪水从3000改为4000

update emp set sal=4000 where ename='lisa'

同时更新多个表中数据:

update t1,t2,...,tn set t1.field1=exp1,t2.field2=exp2,...,fieldn=expn [where condition]

eg:同时更新表emp中的字段sal和表dept中的字段deptname:

update emp a,dept bset a.sal=a.sal*b.deptno,b.deptname=a.ename where a.deptno=b.deptno;

3.删除记录

delete from tablename [where condition]

eg:delete from emp where ename='dony'

一次删除多个表的数据:

delete t1,t2,...,tn from t1,t2,...,tn [where condition]

from后面用表名的别名,则delete后面也要用对应的别名。

eg:同时删除emp和dept中deptno为3的记录:

delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno=3;

注:无论单表还是多表,不加where 条件会把表的所有内容删除。

4.查询记录

select * from tablename [where condition]

eg:将记录全部查出:

select * from emp;

*表示将所有记录都选出来,也可以用逗号分隔的所有字段代替,如:

select ename,hiredate,sal,deptno from emp;

各种查询方法:

①查询不重复的记录

select distinct 列名 from tablename;

eg:筛选某列中不重复的所有行:

select distinct deptno from emp;

②条件查询(查询具备某些必要条件的记录)

select * from tablename where condition;

where 后面的条件是一个字段的比较,如'=','>','<','>=','<=','!='等,多条件间可以使用or,and等逻辑符号记性多条件联合查询。

eg:筛选所有deptno为1的记录:

select * from emp where deptno=1;

 ③排序和限制

排序(order by):

select * from tablename [where condition] [order by field1 [desc|asc],field2 [desc|asc],...,fieldn [desc|asc]];

其中DESC和ASC是排序关键字,DESC为降序,ASC为升序。不写关键字时,默认为升序排列。order后面可以跟多个不同的排列字段,且每个排列字段可以有不同的排列顺序。

eg:emp表中按工资高低进行显示:

select * from emp order by sal;

如果排列字段的值一样,则值相同的字段按照第二个排列字段进行排序,依次类推。若果只有一个排列子弹,则字段相同的记录将会无序列排序。

eg:select * from emp order by deptno,sal desc;

限制:

select 

原文地址:https://www.cnblogs.com/buzhidaojiaoshenmoleya/p/6926431.html