DML语句
一、 插入语句
方式一:
insert into 表名(字段名,...) //字段可以省略,但默认所有字段
values(值1,... ) ;
方式二:
insert into 表名
set 列名= 值 ,列名=值,···
特点:
1、字段类型和值类型一致或兼容,而且一一对应
2、可以为null的字段,可以不用插入值,或用null填充 不可以为空的字段,必须插入值
3、字段个数和值的个数必须一致
4、字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致
5、假如表中有可以为null的字段,注意可以通过以下两种方式插入nul值
① 字段和值都省略
②字段写上,值使用null
二、修改语句
修改单表语法:
update 表名
set 字段=新值,字段=新值
【where 条件】;
修改多表92语法:
update 表1 别名1,表2 别名2
set 字段=新值,字段=新值
where 连接条件 and 筛选条件;
修改多表99语法:
update 表1 别名
inner/left/right join 表2 别名
on 连接条件
set 列 = 值 , ···;
例:修改张无忌的女朋友的手机号为114
update boys bo
inner join beauty b
on bo.id = b.boyfriend_id
set b.phone = "114"
where bo.boyname = “张无忌”;
三、删除语句
方式一:
单表的删除: ★
delete from 表名
【where 筛选条件】
【limit 条目数】
例 删除手机号以9结尾的女生信息
delete from beauty
where phone like '%9';
多表的删除:
92语法:
delete 别名1,别名2
from 表1 别名1,表2 别名2
where 连接条件
and 筛选条件;
99语法:
delete 表1的别名 , 表2的别名
from 表1 别名
inner|left|right join 表2 别名
on 连接条件
where 筛选条件
删除张无忌的女朋友的信息
delete b
from boy bo
inner join boy bo
on b. boyfriend_id=bo.id
where bo.boyName = ' 张无忌';
方式2:
truncate语句
truncate table 表名;
特点:
1、删除整个表之中的内容 不能加where条件
2 、假如要删除的表中有自增长列,如果用delete 删除后,再插入数据,自增长列的值从断点开始,而 truncate删除后,再插入数据,自增长列的值从1开始
3、truncate 删除,效率高一点
4、truncate 删除不能回滚,delete 删除可以回滚
delete和truncate方式的区别【面试题】
1.truncate不能加筛选条件,而delete可以加where条件
2.truncate的效率高一丢丢
3.truncate 删除带自增长的列的表后,如果再插入数据,数据从1开始, delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始
4.truncate删除不能回滚,delete删除可以回滚
5、truncate没有返回值,delete可以返回受影响的行数
DDL语句
库的管理:
一、创建库
create database [if not exists] 库名
[character set 字符集名];
例:
database if not exists books;
更改库的字符集
alter database books character set gbk;
二、修改库
create database 库名 [character set 字符集名];
三、删除库
drop database 【if exists】 库名
drop database if exists 旧库名;
create database 新库名;
表的管理
一、创建表 ★
create table 【if not exists】表名(
字段名 字段类型 【约束】,
字段名 字段类型 【约束】,
····
字段名 字段类型 【约束】
)
创建表
CREATE TABLE IF NOT EXISTS stuinfo(
stuId INT,
stuName VARCHAR(20),
gender CHAR,
bornDate DATETIME
);
DESC studentinfo;
二、修改表
1、添加列
ALTER TABLE 表名
ADD COLUMN 列名 列类型 【约束】【first|after 字段名】 ;
2、查找列的类型或约束
alter table 表名 modify column 列名 新类型 【新约束】;
3、修改列名
ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 类型;
4、删除列
ALTER TABLE 表名 DROP COLUMN 列名 ;
5、修改表名
alter table 表名 rename 【to】 新表名 ;
例:
①修改列名
ALTER TABLE book CHANGE COLUMN sex gender CHAR;
②修改列的类型和列级约束
ALTER TABLE studentinfo MODIFY COLUMN borndate DATE ;
③ 添加列
ALTER TABLE studentinfo ADD COLUMN email VARCHAR(20) first;
⑤删除字段
ALTER TABLE studentinfo DROP COLUMN email;
④修改表名
ALTER TABLE stuinfo RENAME [TO] studentinfo;
三、删除表
DROP TABLE [IF EXISTS] 表名;
四、复制表
1、复制表的结构(无数据)
create table copy like author;
2、复制表的结构+数据
create table copy2 select * from author;
3、复制表的结构+部分数据
create table copy3
select id,au_name
from author
where nation = "中国";
4、仅仅复制某些列
create table copy4
select id,au_name
from author
where 0;