一、用MySQL语法建 一个学生表,包括学生姓名、性别、年龄、班级信息。
USE test;
CREATE TABLE student(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
stu_name VARCHAR(20) NOT NULL,
age TINYINT,
gender CHAR(1),
class VARCHAR(10)
)
二、事务
事务的四大特性:
原子性,分离性,持久性,一致性
原子性:指的是事物中包含的所有操作要么全做,要么全不做(all or none)
分离性:一个事务处理对另一个事务处理没有影响。
持久性:当事务处理成功执行到结束的时候,其效果在数据库中被永久纪录下来
一致性:事务应该把数据库从一个一致性状态转换到另外一个一致性状态,类似与能量守恒定律
三、char和varchar的区别
char (8) 长度固定, 如'weixuan' 存储需要空间 7个字符 ,不管你存储的数据是多少他都会都固定的长度
varchar(8) 可变长 如'weixuan' 需要存储空间 8字符,而varchar则处可变长度但他要在总长度上加1字符,这个用来存储位置当存储引擎是MyISAM时,使用char
四、索引
1、创建索引的语法
CREATE INDEX indexName ON tablename(username(length));
2、修改表添加索引
ALTER tablename ADD INDEX indexName (username(length));
3、索引的原理
- 索引就是通过事先排好序,从而在查找时可以应用高效率查找算法比如二分查找等。
- 一般的顺序查找,复杂度为O(n),而二分查找复杂度为O(log2n)。当n很大时,二者的效率相差及其悬殊
4、索引的副作用
- 索引需要成本去维护,占据一定的空间
- 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度
五、字符集
1、设置表的字符集
ALTER TABLE student2 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
2、设置字段的字符集
USE test; CREATE TABLE student2( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, stu_name VARCHAR(20) CHARACTER SET GBK COLLATE gbk_chinese_ci NOT NULL, age TINYINT, gender CHAR(1), class VARCHAR(10) )
3、更改字段字符集
ALTER TABLE student2 MODIFY stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci; ALTER TABLE student2 CHANGE stu_name stu_name VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;