文章目录
-
-
- 数据库
-
-
- 1. 创建数据库
- 2. 查看数据库
- 3. 使用数据库
- 4. 查看数据库下存在表
- 5. 删除数据库
-
- 表
-
-
- 1. 创建表
- 2. 查看表
- 3. 修改表
-
- 3.1 修改表名
- 3.2 修改表的字段(属性)
- 3.3 修改表的属性数据类型
- 3.4 增加表的字段
- 3.5 删除字段
- 3.6 修改字段的排列顺序
- 3.7 修改存储引擎
-
- 索引
-
-
- 1. 在创建表的时候指定索引字段
- 2. 在已经创建表上添加索引
- 3. 删除索引
- 4. 分析索引执行过程
-
- 事务
-
-
- 1.查看MySQL事务类型
- 2.设置事务类型
- 3.开启一个事务
- 4.提交一个事务
- 5.设置保存点
- 6.回滚
- 7.查询数据库隔离级别
- 8.设置隔离级别
-
- 存储引擎
-
-
- 1.查看存储引擎
- 2.创建表时设定存储引擎
- 3.在已存在的表上修改存储引擎
- 4.修改MYSQL存储引擎
-
-
数据库
1. 创建数据库
CREATE DATABASE database_name;
2. 查看数据库
SHOW DATABASES;
3. 使用数据库
USE database_name;
4. 查看数据库下存在表
SHOW TABLES;(前提是使用数据库)
5. 删除数据库
DROP DATABASE database_name;
表
1. 创建表
CREATE TABLE table_name(
属性名1 数据类型 [完整性约束],
属性名2 数据类型 [完整性约束],
属性名3 数据类型 [完整性约束]
… …
);
约束:
primary key 表示当前属性为该表的主键,可以区分不同的行记录
foreign key 修饰的属性为该表的外键,表之间关联使用的键
not null 表示属性不能为空
unique 表示属性的值是唯一的
auto_increment (MYSQL特色)表示属性是自增的,自增类型为整形
default 给属性设定默认值
2. 查看表
2.1 DESC table_name;
2.2 SHOW CREATE TABLE table_name;
3. 修改表
在使用过程中不满足要求可能要修改表
用的SQL关键字是alter
3.1 修改表名
ALTER TABLE old_table_name RENAME[to] new_table_name;
3.2 修改表的字段(属性)
ALTER TABLE table_name CHANGE 旧属性名 新属性名 新属性类型;
3.3 修改表的属性数据类型
ALTER TABLE table_name MODIFY 属性名 属性类型
3.4 增加表的字段
ALTER TABLE table_name ADD 属性名 属性类型 [完整性约束]
新增一个字段放到属性列的第一位;
ALTER TABLE table_name ADD 属性名 属性类型 [完整性约束] FIRST;
增加字段在某些字段后面
ALTER TABLE table_name ADD 属性名 属性类型 [完整性约束] AFTER(属性名,属性名… …);
3.5 删除字段
ALTER TABLE table_name DROP 属性名;
3.6 修改字段的排列顺序
ALTER TABLE table_name MODIFY 属性1 属性类型 first | after 属性2;
3.7 修改存储引擎
ALTER TABLE table_name ENGINE=InNoDB | myISAM;
索引
1. 在创建表的时候指定索引字段
先写下所有的属性,在最后利用INDEX关键字,将需要创建索引的属性名放在括号里
CREATE TABLE table_name(
属性名 属性类型,
属性名 属性类型,
… …
[unique|fulltext|spatial] INDEX|KEY(属性名) index_name (属性1 [(长度)] [ASC|DESC]) )
解释:中括号[ ]内的都是可选参数,UNIQUE是唯一性索引,FULLTEXT是全文索引,SPATIAL是空间索引,INDEX和KEY是表示索引用到,二者选一即可。长度是索引的长度,必须是字符串类型才可以使用。
这个例子太复杂,通过几个例子看一下
eg:
创建普通索引:
CREATE TABLE student(
id INT,
name VARCHAR(20),
sex BOOLEAN,
INDEX(id)
)
创建唯一索引
CREATE TABLE index1(
id INT,
name VARCHAR(20),
sex BOOLEAN,
UNIQUE INDEX(id)
)
2. 在已经创建表上添加索引
CREATE [unique|fulltext|spatial] INDEX idx_id(索引名) ON 表名(属性名);(推荐)
ALTER TABLE 表名 ADD [unique|fulltext|spatial] INDEX index_name(属性名);
3. 删除索引
DROP INDEX index_name ON (表名);
4. 分析索引执行过程
在普通的SELECT语句前面加上EXPLAIN
事务
1.查看MySQL事务类型
select @@autocommit;
0:手动提交事务 1:自动提交事务
2.设置事务类型
set autocommit = 0; -> 设置事务类型为 手动提交事务
set autocommit = 1; -> 设置事务类型为 自动提交事务
3.开启一个事务
begin;
4.提交一个事务
commit;
5.设置保存点
设置一个名称为tg的保存点
savepoint tg;
6.回滚
回滚到tg位置到
rollback to tg;
7.查询数据库隔离级别
select @@TX_ISOLATION;
8.设置隔离级别
set global TX_ISOLATION= ‘xxx’;
xxx为隔离级别名称,分为5点:
- TRANSACTION_NONE:表示不支持事务
- TRANSACTION_READ_UNCOMMITTED:未提交读。说明在提交前一个事务可以看到另一个事务的变化。这样读”脏”数据,不可重复读和虚读都是被允许的。
- TRANSACTION_READ_COMMITTED:已提交读。说明读取未提交的数据是不允许的。这个级别仍然允许不可重复读和虚读产生。
- TRANSACTION_REPEATABLE_READ:可重复读。说明事务保证能够再次读取相同的数据而不会失败,但虚读仍然会出现。
- TRANSACTION_SERIALIZABLE:可序列化/串行化。是最高的事务级别,它防止读脏数据,不可重复读和虚读。
存储引擎
1.查看存储引擎
SHOW ENGINES;
2.创建表时设定存储引擎
CREATE TABLE table_name ENGINE = INNODB;
3.在已存在的表上修改存储引擎
ALTER TABLE table_name ENGINE= INNODB;
4.修改MYSQL存储引擎
需要修改MySQL配置文件
Windows下文件为“:my.ini
Unix下文件为:my.cof
default-storage-engine = INNODB;
修改完配置修改保存重启就可以生效