MySQL基础(四)

上节回顾
MySQL基础(三)

1. DQL

1.1 联合查询

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;

2. DML 数据操作语言

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

2.1 插入语句

语法:
		方式一
			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'; 将查询的信息插入到表中

2.2 修改语句

	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='张无忌';

2.3 删除语句

	方式一: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删除后可以回滚

3. DDL 数据定义语言

库和表的管理
创建:create
修改:alter
删除:drop

3.1 库的管理

	创建、修改、删除
	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;

3.2 表的管理

	创建、修改、删除
	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 表名();
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值