“尚硅谷”Mysql数据库DML、DDL

DML数据操作语言:

插入:insert
修改:update
删除:delete

一、插入语句

语法一:insert into 表名(列名,…) value(值1,…) ;

特点:
1、插入的值的类型要与列的类型一致或兼容。

select into emp(empno,ename,deptno,photo,job_id) value(11,'张三',10,null,2);

2、可以为null的列如何插入值。

#这里photo字段可以为空
#方式一:
select into emp(empno,ename,deptno,photo,job_id) value(11,'张三',10,null,2);
#方式二:
select into emp(empno,ename,deptno,job_id) value(11,'张三',10,2);

3、列的顺序可以调整,但是数值必须一一对应。
4、列的个数和值的个数必须一致。
5、可以省略列名,插入的数据必须按照列的顺序。
6、支持插入多行。

select into emp(empno,ename,deptno,job_id) 
value(11,'张三',10,2)
value(12,'李四',10,4)
value(13,'王武',10,3);

7、支持子查询

insert into emp2
select * from emp;

语法二:insert into 表名 set 列名=值,列名=值,…

不支持多行插入,不支持子查询

insert into beaty set id=19,name='lisi',phone='222';

二、修改语句

修改单表的记录

语法:
update 表名 set 列=新值,列=新值,…
where 筛选条件;

update beaty set phone = '132456',id = '123'
where name like 't%';

修改多表的记录

语法:
update 表1 别名
连接类型 join 表2
on 连接条件
set 列=值,…
where 筛选条件;

update boys bo right join beauty b on bo.id=b.boy_id 
set b.boy_id =2
where b.id is null; 

三、删除语句

方式一:delete

语法:
1、单表删除
delete from 表名 where 筛选条件

#删除手机号以9结尾的人
delete from beauty where phone like '%9';

方式二:truncate

保留数据结构删除表中所有数据
语法:truncate table 表名;
2、多表删除
delete 表1的别名,表2的别名
from 表1 别名
连接条件 join 表2 别名 on 连接条件
where筛选条件;

delete b from beauty b 
inner join boys bo on b.boy_id = bo.id
where bo.boname='zhangsan';

补充

1、delete 可以加where条件,truncate不能加。
2、truncate删除,效率高一点。
3、加入要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。
4、truncate删除没有返回值,delete删除有返回值。
5、truncate删除不能回滚,delete删除可以回滚。

DDL数据定义语言

创建:create
修改:alter
删除:drop

一、库的管理

创建

create database if not exists books;

修改

修改库的字符集

alter database books character set gbk;

删除

drop database if exists books;

表的管理

创建

语法:
create table 表名(
列名 列的类型【(长度),约束】,
列名 列的类型【(长度),约束】,

列名 列的类型【(长度),约束】

)

create table if not exists books(
		id int,
		bName varchar(20),
		price double,
		author varchar(20),
		date datetime
)

修改

1、修改列名

alter table books change column date pubDate datatime;

2、修改列的类型或约束

alter table books modify column pubdate timestamp;

3、添加新列

alter table books add column annual double;

4、删除列

alter table books drop column annual;

5、修改表名

alter table books rename to book_ssss;

删除

drop table if exists book_ssss;

表的复制

#仅仅复制表的结构
create table copy1 like books;
#复制表的结构+数据
create table copy2 
select * from books;

你可能感兴趣的:(开发,mysql)