MySQL数据库操作
———数据库和表的基本操作(二)
一:表的约束
1. 常见约束
约束条件 | 说明 |
---|---|
PRIMARY KEY | 主键约束 唯一标识 |
FOREIGN KEY | 外键约束 |
NOT NULL | 非空约束 |
UNIQUE | 唯一性约束 |
DEFAULT | 默认值约束,用于设置字段的默认值 |
AUTO_INCREMENT | 自增约束 整数类型自增长,默认从1开始· |
2 .主键约束
-
定义
字段名 数据类型 FRIMARY LEY;
-
单字段主键
CREATE TABLE ex1( id int PRIMARY KEY,/*单字段主键约束*/ _name varchar(20), grade float );
-
多字段主键
CREATE TABLE ex2( id INT, grade FLOAT, course_id INT, PRIMARY KEY(id,course_id)/*多字段主键约束*/ );
-
注意
一个表中只能有一个主键约束,定义为PRIMARY KEY主键的字段不能重复也不能为空
3. 非空约束
-
定义
字段名 数据类型 NOT NULL;
-
实例
/*非空约束-字段值不能为空*/ CREATE TABLE ex3( id INT PRIMARY KEY, _name VARCHAR(20) NOT NULL,/*非空约束*/ grade FLOAT );
4. 唯一约束
-
定义
字段名 数据类型 UNIQUE;
-
实例
CREATE TABLE user_shop( id INT PRIMARY KEY, _name VARCHAR(20) UNIQUE/*唯一约束*/ );
5. 默认约束
-
定义
字段名 数据类型 DEFAULT 默认值;
-
实例
CREATE TABLE ex4( id INT PRIMARY KEY, greade FLOAT DEFAULT 0/*默认值约束*/ );
6. 自增约束
-
定义
字段名 数据类型 AUTO_INCREMENT;
-
实例
CREATE TABLE ex5( id INT PRIMARY KEY AUTO_INCREMENT,/*自增字段*/ _name VARCHAR(20) UNIQUE NOT NULL );
二:索引(快速查找)
1. 概念
数据库的索引就好比新华字典的音序表,它是对数据库表中一列或多列的值进行排序后
的一种数据结构,其作用就是提高表中数据的查询速度。
2. 分类
名称 | 定义 | 说明 |
---|---|---|
普通索引 | KEY 或者 INDEX | 基本索引类型 |
唯一性索引 | UNIQUE | 字段值必须唯一 |
全文索引 | FULL TEXT | 只能创建在CHAR,VARCHAR,TEXT类型字段上 |
单列索引 | 单个字段创建的索引 | |
多列素索引 | 多个字段上创建的索引 | |
空间索引 | SPATIAL | 只能创建在空间类型字段上 |
3. 创建索引
-
创建表时创建索引
CREATE TABLE 表名( 字段名1 数据类型 [完整性约束条件], 字段名2 数据类型 [完整性约束条件], 字段名3 数据类型 [完整性约束条件], ...... 字段名n 数据类型 [完整性约束条件], [UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [别名] (字段名x [长度]) [ASC|DESC] );
-
使用CREAT INDEX在已存在的表上创建索引
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 ON 表名(字段名[(长度) [ASC|DESC]]);
-
使用ALTER TABLE在已存在的表上创建索引
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 字段名[(长度)] [ASC|DESC];
-
提示
ASC表示升序排列 DESC 表示降序排列
4. 删除索引
-
使用ALTER TABLE删除索引
ALTER TABLE 表名 DROP INDEX 索引名|别名;
-
使用DROP INDEX删除索引
DROP INDEX 索引名|别名 ON 表名;