MySQL_学习笔记(4)

##DML语言

###插入

语法:
	insert into 表名(字段名,...)
	values(1...);

特点:

	1、字段类型和值类型一致或兼容,而且一一对应
	2、可以为空的字段,可以不用插入值,或用null填充
	3、不可以为空的字段,必须插入值
	4、字段个数和值的个数必须一致
	5、字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致

###修改

修改单表语法:

	update 表名 set 字段=新值,字段=新值
	【where 条件】
修改多表语法:

	update1 别名1,2 别名2
	set 字段=新值,字段=新值
	where 连接条件
	and 筛选条件


###删除

方式1delete语句 

单表的删除: ★
	delete from 表名 【where 筛选条件】

多表的删除:
	delete 别名1,别名2
	from1 别名1,表2 别名2
	where 连接条件
	and 筛选条件;


方式2truncate语句

	truncate table 表名


两种方式的区别【面试题】
	
	#1.truncate不能加where条件,而delete可以加where条件
	
	#2.truncate的效率高一丢丢
	
	#3.truncate 删除带自增长的列的表后,如果再插入数据,数据从1开始
	#delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始
	
	#4.truncate删除不能回滚,delete删除可以回滚


##DDL语句
###库和表的管理
库的管理:

	一、创建库
	create database 库名
	二、删除库
	drop database 库名
表的管理:
	#1.创建表
	
	CREATE TABLE IF NOT EXISTS stuinfo(
		stuId INT,
		stuName VARCHAR(20),
		gender CHAR,
		bornDate DATETIME
		
	
	);

	DESC studentinfo;
	#2.修改表 alter
	语法:ALTER TABLE 表名 ADD|MODIFY|DROP|CHANGE COLUMN 字段名 【字段类型】;
	
	#①修改字段名
	ALTER TABLE studentinfo CHANGE  COLUMN sex gender CHAR;
	
	#②修改表名
	ALTER TABLE stuinfo RENAME [TO]  studentinfo;
	#③修改字段类型和列级约束
	ALTER TABLE studentinfo MODIFY COLUMN borndate DATE ;
	
	#④添加字段
	
	ALTER TABLE studentinfo ADD COLUMN email VARCHAR(20) first;
	#⑤删除字段
	ALTER TABLE studentinfo DROP COLUMN email;
	
	
	#3.删除表
	
	DROP TABLE [IF EXISTS] studentinfo;

	


###常见类型

	整型:
		
	小数:
		浮点型
		定点型
	字符型:
	日期型:
	Blob类型:



###常见约束

	NOT NULL
	DEFAULT
	UNIQUE
	CHECK
	PRIMARY KEY
	FOREIGN KEY

##数据库事务
###含义
	通过一组逻辑操作单元(一组DML——sql语句),将数据从一种状态切换到另外一种状态

###特点
	(ACID)
	原子性:要么都执行,要么都回滚
	一致性:保证数据的状态操作前和操作后保持一致
	隔离性:多个事务同时操作相同数据库的同一个数据时,一个事务的执行不受另外一个事务的干扰
	持久性:一个事务一旦提交,则数据将持久化到本地,除非其他事务对其进行修改

相关步骤:

	1、开启事务
	2、编写事务的一组逻辑操作单元(多条sql语句)
	3、提交事务或回滚事务

###事务的分类:

隐式事务,没有明显的开启和结束事务的标志

	比如
	insertupdatedelete语句本身就是一个事务


显式事务,具有明显的开启和结束事务的标志

		1、开启事务
		取消自动提交事务的功能
		
		2、编写事务的一组逻辑操作单元(多条sql语句)
		insert
		update
		delete
		
		3、提交事务或回滚事务
###使用到的关键字

	set autocommit=0;
	start transaction;
	commit;
	rollback;
	
	savepoint  断点
	commit to 断点
	rollback to 断点


###事务的隔离级别:

事务并发问题如何发生?

	当多个事务同时操作同一个数据库的相同数据时
事务的并发问题有哪些?

	脏读:一个事务读取到了另外一个事务未提交的数据
	不可重复读:同一个事务中,多次读取到的数据不一致
	幻读:一个事务读取数据时,另外一个事务进行更新,导致第一个事务读取到了没有更新的数据
	
如何避免事务的并发问题?

	通过设置事务的隔离级别
	1READ UNCOMMITTED
	2READ COMMITTED 可以避免脏读
	3REPEATABLE READ 可以避免脏读、不可重复读和一部分幻读
	4SERIALIZABLE可以避免脏读、不可重复读和幻读
	
设置隔离级别:

	set session|global  transaction isolation level 隔离级别名;
查看隔离级别:

	select @@tx_isolation;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值