上节回顾
MySQL基础(三)
union 联合 合并:将多条查询语句的结果合并成一个结果
应用场景:
当查询的结果来源于多个数,并且多个表没有直接的关系,但查询的结果一直时可以使用
特点:
1.要求多条查询语句的查询列数是一致的
2.要求多条查询语句的查询的每一列的类型和顺序最好一致
3.union关键字默认是去重的,使用union all 可以包含重复项
案例:查询部门编号>90或邮箱编号包含a的员工信息
select * from employees where email like '%a%' or department_id>90;
select * from employees where email like '%a%'
union
select * from employees where department_id>90;
插入:insert
修改:update
删除:delete
语法:
方式一
insert into 表名(列名,...) values(值1,...);
方式二
insert into 表名 set 列名=值,列名=值,...
1.插入的值的类型要与列的类型一致或兼容
insert into beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
values(13,'张三','女','1990-4-22','12345678910',null,2);
2.不为null的列必须插入值,可以为null的列如何插入值
1.列名和值都省略
2.列名不省略,值用null填充
3.列的顺序可以颠倒
4.列数和值的个数必须一致
5.可以省略列名,默认所有列,顺序一致
两种方式对比:
1.方式一支持插入多行
insert into beauty
values(......),(......),(......);
2.方式一支持子查询,方式二不支持
insert into beauty(id,name,phone)
select 26,'张飞','12345678910'; 将查询的信息插入到表中
1.修改单表的记录
语法:
update 表名 1
set 表=新值,表=新值,... 2
where 筛选条件; 3 执行顺序为132
案例1:修改beauty表中姓周的电话为12345678910
update beauty set phone='12345678910'
where name like '周%';
2.修改多表的记录
sql92语法:
update 表1 别名,表2 别名
set 列=值
where 筛选条件
and 筛选条件;
sql99语法:
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列=值
where 筛选条件
and 筛选条件;
案例1:修改张无忌的女朋友的手机号为114
update boys bo
inner join beauty b on bo.id=b.boyfriend_id
set b.phone='114'
where bo.boyName='张无忌';
方式一:delete
语法:
1.单表删除:delete from 表名 where 筛选条件
2.多表删除:
sql92语法:
delete 表1的别名,表2的别名
from 表1 别名,表2 别名
where 筛选条件
and 筛选条件;
sql99语法:
delete 表1的别名,表2的别名
from 表1 别名
inner|left|right join 表2 别名
on 连接条件
where 筛选条件:
案例1:删除手机号以9结尾的人的信息
delete from beauty where phone like '%9';
案例2:删除张无忌的女朋友的信息
delete b
from beauty b
inner join boys bo
on b.boyfriend_id=bo.id
where bo.boyName='张无忌';
方式二:truncate
语法:truncate table 表名;
delete与truncate的区别
1.delete可以加where语句,truncate不能加
2.truncate效率高一点
3.如果用delete删除后,再插入数据,自增长列的值会从断点开始
如果用truncate删除后,再插入数据,自增长列的值从1开始
4.truncate删除后没有返回值,delete有返回值
5.truncate删除后不能回滚,delete删除后可以回滚
库和表的管理
创建:create
修改:alter
删除:drop
创建、修改、删除
1.库的创建
create database 库名;
案例:创建books库
create database [if not exists]books 如果库存在则不创建,不存在则创建
2.库的修改
rename database books to 新库名;
更改库的字符集
alter database books character set gbk;
3.库的删除
drop database books;
创建、修改、删除
1.表的创建
create table 表名(
列名 列的类型 【(长度)约束】,
列名 列的类型 【(长度)约束】,
列名 列的类型 【(长度)约束】,
...
);
案例:创建表books
create table book(
id int, 编号
bName varchar(20), 图书名
price double, 价格
authorID int, 作者编号
publishDate datetime 出版日期
);
2.表的修改
alter table 表名 add|drop|modify|change colum 列名【列类型 约束】;
1.修改列名
alter table book change column publishDate pubDate datetime;
column可以省略
2.修改列的类型或约束
alter table book modify column pubdate timestamp;
3.添加新列
alter table author add column annual double;
4.删除列
alter table author drop column annual;
5.修改表名
alter table author rename to book_author;
3.表的删除
drop table book_author;
show tables;
通用写法:
drop database if exists 旧库名;
create database 新库名;
drop database if exists 旧库名
create table 表名();