sql基础
不区分大小写
常量区分大小写
1.1注释
1.1.1sql标准
/* */
//多行注释
--
//单行注释
1.1.2mysql注释
#
//单行注释
COMMENT //为字段或列添加注释
1.2语句
1.2.1数据库
1.1创建
CREATE DATABASE [IF NOT EXISTS] db_name
[create_specification [, create_specification] …]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
[] //为可选内容:
- IF NOT EXISTS //表示是否要检查以存在,如果数据库不存在则创建,否则不创建
- create_specification //创建条件
- CHARACTER SET //指定数据库采用的字符集
- COLLATE // 指定数据库字符集的比较方式
- DEFAULT //表示默认内容,即使没有指定该项,也有默认值
1.2显示
SHOW DATABASES //查看库
SHOW CREATE DATABASE db_name //查看库创建语句
1.3修改
ALTER DATABASE [IF NOT EXISTS] 数据库名 DEFAULT
1.4删除
DROP DATABASE [IF EXISTS] db_name
1.2.2数据表
1.1创建数据表
CREATE TABLE 表名{
字段名1,数据类型[完整性约束条件],
…
字段名n,数据类型[完整性约束条件]
};
1.2查看数据表
SHOW TABLES;
SHOW CREATE TABLE 表名;
1.3修改数据表
RENAME TABLE 表名 t0 新表名 | 修改表名称 |
---|---|
ALTER TABLE 表名 ADD 新字段 数据类型 [FIRST|AFTER已存在字段名] | 添加新的字段,FIRST //将新添加的字段放在第一个字段,AFTER //将新添加的字段放在已存在的字段之后 |
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 | 修改字段名称 |
ALTER TABLE 表名 MODIFY 字段名 新数据类型 | 修改字段的数据类型 |
ALTER TABLE 表名 DROP 字段名 | 删除字段 |
1.4删除数据表
DROP TABLE 表名
1.2.3数据
1.1添加数据
INSERT INTO 表名(字段1,字段2,…) VALUES (值1,值2,…)
1.2更新数据
UPDATE 表名 SET 字段名1=值1 [,字段名2=值1…]
1.3删除数据
DELETE FROM 表名 [WHERE 条件表达式]
1.2.3简单查询
SELECT 表名 from 库名 where
where常用表达式
运算符 | 说明 | |
---|---|---|
比较运算符 | > < <= >= = <> | 大于,小于,小于等于,大于等于,不等于 |
BETWEEN …AND… | 显示在某一区间的值 | |
IN(set) | 显示在in列表中的值 | |
IS NULL | 判断是否为空 | |
LIKE | 模糊查询 //% 匹配任意长度字符,_ 匹配任意单字符 | |
逻辑运算符 | and | 与 |
or | 或 | |
not | 非 |
1.2.4高级查询
内置函数
ORDER BY //排序,默认升序,asc升序,desc降序,常用
1.2.5多表查询
- 交叉连接
- 内连接
- 外连接
- 子查询
1.1IN
内层查询语返回数据列
1.2EXISTS
内层查询语相当于测试,不返回数据,返回true和false,返回为true时,外层才执行
1.3ANY
允许创建一个表达式对子查询的返回值进行比较,只要满足内层子查询中的任意一个比较条件,就返回一个结果作为外层查询语句
1.4ALL
允许创建一个表达式对子查询的返回值进行比较,要求返回的结构同时满足所有内层查询条件才为true
带比较运算符的子查询
1.3数据类型
1.3.1mysql数据类型
1.1text类型
数据类型 | 描述 |
---|---|
CHAR(size) | 保存固定长度的字符串(可包含字母、数字以及特殊字符),在括号中指定字符串的长度,最多 255 个字符 |
VARCHAR(size) | 保存可变长度的字符串(可包含字母、数字以及特殊字符),在括号中指定字符串的最大长度,最多 255 个字符,注释:如果值的长度大于 255,则被转换为 TEXT 类型 |
TINYTEXT | 存放最大长度为 255 个字符的字符串 |
TEXT | 存放最大长度为 65,535 个字符的字符串 |
BLOB | 用于 BLOBs (Binary Large OBjects),存放最多 65,535 字节的数据 |
MEDIUMTEXT | 存放最大长度为 16,777,215 个字符的字符串 |
MEDIUMBLOB | 用于 BLOBs (Binary Large OBjects),存放最多 16,777,215 字节的数据 |
LONGTEXT | 存放最大长度为 4,294,967,295 个字符的字符串 |
LONGBLOB | 用于 BLOBs (Binary Large OBjects),存放最多 4,294,967,295 字节的数据 |
ENUM(x,y,z,etc.) | 允许你输入可能值的列表,可以在 ENUM 列表中列出最大 65535 个值,如果列表中不存在插入的值,则插入空值,注释:这些值是按照你输入的顺序存储的,可以按照此格式输入可能的值:ENUM(‘X’,‘Y’,‘Z’) |
SET | 与 ENUM 类似,SET 最多只能包含 64 个列表项,不过 SET 可存储一个以上的值 |
1.2number类型
数据类型 | 描述 |
---|---|
TINYINT(size) | -128 到 127 常规,0 到 255 无符号*,在括号中规定最大位数 |
SMALLINT(size) | -32768 到 32767 常规,0 到 65535 无符号*,在括号中规定最大位数 |
MEDIUMINT(size) | -8388608 到 8388607 普通,0 to 16777215 无符号*,在括号中规定最大位数 |
INT(size) | -2147483648 到 2147483647 常规,0 到 4294967295 无符号*,在括号中规定最大位数 |
BIGINT(size) | -9223372036854775808 到 9223372036854775807 常规,0 到 18446744073709551615 无符号*,在括号中规定最大位数 |
FLOAT(size,d) | 带有浮动小数点的小数字,在括号中规定最大位数,在 d 参数中规定小数点右侧的最大位数 |
DOUBLE(size,d) | 带有浮动小数点的大数字,在括号中规定最大位数,在 d 参数中规定小数点右侧的最大位数 |
DECIMAL(size,d) | 作为字符串存储的 DOUBLE 类型,允许固定的小数点, |
1.3date类型
数据类型 | 描述 |
---|---|
DATE() | 日期,格式:YYYY-MM-DD注释:支持的范围是从 ‘1000-01-01’ 到 ‘9999-12-31’ |
DATETIME() | *日期和时间的组合,格式:YYYY-MM-DD HH:MM:SS注释:支持的范围是从 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’ |
TIMESTAMP() | *时间戳,TIMESTAMP 值使用 Unix 纪元(‘1970-01-01 00:00:00’ UTC) 至今的描述来存储,格式:YYYY-MM-DD HH:MM:SS注释:支持的范围是从 ‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-09 03:14:07’ UTC |
TIME() | 时间,格式:HH:MM:SS 注释:支持的范围是从 ‘-838:59:59’ 到 ‘838:59:59’ |
YEAR() | 2 位或 4 位格式的年,注释:4 位格式所允许的值:1901 到 2155,2 位格式所允许的值:70 到 69,表示从 1970 到 2069 |
1.3.2sql server数据类型
1.1character字符串
数据类型 | 描述 |
---|---|
char(n) | 固定长度的字符串,最多 8,000 个字符 |
varchar(n) | 可变长度的字符串,最多 8,000 个字符 |
varchar(max) | 可变长度的字符串,最多 1,073,741,824 个字符 |
text | 可变长度的字符串,最多 2GB 字符数据 |
1.2unicode字符串
数据类型 | 描述 |
---|---|
nchar(n) | 固定长度的 Unicode 数据,最多 4,000 个字符 |
nvarchar(n) | 可变长度的 Unicode 数据,最多 4,000 个字符 |
nvarchar(max) | 可变长度的 Unicode 数据,最多 536,870,912 个字符 |
ntext | 可变长度的 Unicode 数据,最多 2GB 字符数据 |
1.3binary类型
数据类型 | 描述 |
---|---|
bit | 允许 0、1 或 NULL |
binary(n) | 固定长度的二进制数据,最多 8,000 字节 |
varbinary(n) | 可变长度的二进制数据,最多 8,000 字节 |
varbinary(max) | 可变长度的二进制数据,最多 2GB 字节 |
image | 可变长度的二进制数据,最多 2GB |
1.4number类型
数据类型 | 描述 |
---|---|
tinyint | 允许从 0 到 255 的所有数字 |
smallint | 允许从 -32,768 到 32,767 的所有数字 |
int | 允许从 -2,147,483,648 到 2,147,483,647 的所有数字 |
bigint | 允许介于 -9,223,372,036,854,775,808 和 9,223,372,036,854,775,807 之间的所有数字 |
decimal(p,s) | 固定精度和比例的数字,允许从 -10^38 +1 到 10^38 -1 之间的数字,p 参数指示可以存储的最大位数(小数点左侧和右侧),p 必须是 1 到 38 之间的值,默认是 18,s 参数指示小数点右侧存储的最大位数,s 必须是 0 到 p 之间的值,默认是 0 |
numeric(p,s) | 固定精度和比例的数字,允许从 -10^38 +1 到 10^38 -1 之间的数字,p 参数指示可以存储的最大位数(小数点左侧和右侧),p 必须是 1 到 38 之间的值。默认是 18,s 参数指示小数点右侧存储的最大位数,s 必须是 0 到 p 之间的值,默认是 0 |
smallmoney | 介于 -214,748.3648 和 214,748.3647 之间的货币数据 |
money | 介于 -922,337,203,685,477.5808 和 922,337,203,685,477.5807 之间的货币数据 |
float(n) | 从 -1.79E + 308 到 1.79E + 308 的浮动精度数字数据,参数 n 指示该字段保存 4 字节还是 8 字节,float(24) 保存 4 字节,而 float(53) 保存 8 字节,n 的默认值是 53 |
real | 从 -3.40E + 38 到 3.40E + 38 的浮动精度数字数据 |
1.5date类型
数据类型 | 描述 |
---|---|
datetime | 从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 3.33 毫秒 |
datetime2 | 从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 100 纳秒 |
smalldatetime | 从 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟 |
date | 仅存储日期,从 0001 年 1 月 1 日 到 9999 年 12 月 31 日 |
time | 仅存储时间,精度为 100 纳秒 |
datetimeoffset | 与 datetime2 相同,外加时区偏移 |
timestamp | 存储唯一的数字,每当创建或修改某行时,该数字会更新,timestamp 基于内部时钟,不对应真实时间,每个表只能有一个 timestamp 变量 |
1.6其他数据类型
数据类型 | 描述 |
---|---|
sql_variant | 存储最多 8,000 字节不同数据类型的数据,除了 text、ntext 以及 timestamp |
uniqueidentifier | 存储全局标识符 |
xml | 存储 XML 格式化数据,最多 2GB |
cursor | 存储对用于数据库操作的指针的引用 |
table | 存储结果集,供稍后处理 |
1.4约束
1.4.1主键约束
PRIMARY KEY constraint
为唯一标识表中的记录,可以通过PRIMARY KEY来设置主键。主键列值不能为空,也不能重复,就好比人的身份证,用来标识人的身份,每个人都有,而且全都不重复。一个表只能有一个主键约束。主键约束可以分为两种:单字段主键,多字段主键
1.4.2非空约束
NOT NULL constraint
限制某列必须有值,不能为空,通过NOT NULL来设置非空约束
1.4.3唯一约束
UNIQUE constraint
限制某列不能重复,通过UNIQUE来设置唯一的约束
1.4.4默认约束
DEFAULT constraint
设置某列默认值,通过DEFAULT来设置默认约束
1.4.5外键约束
FOREIGN KEY constraint
设置一个表中的某列引用至另一个表中的某一列,通过FOREIGN KEY来设置外键约束
1.5索引
mysql通过建立索引来提高数据的搜索速度
- 普通索引
- 唯一索引
- 全文索引
- 空间索引
1.5.1创建索引
CREATE TABLE 表名(字段1类型,字段2类型,…
字段名 数据类型 [UNIQUE|FULLTEXT|SPATIAL|INDEX|KEY]
[别名](字段名1[(长度)])[ASC|DESC]
)
1.5.2删除索引
ALTER TABLE 表名 DROP INDEX 索引名
1.6备份与还原
1.6.1自带功能
data export
data import
1.6.2mysqldump工具
mysqldump -u 用户名 -p 数据库名 > 文件名.sql //备份
mysqldump -u 用户名 -p 数据库名 < 文件名.sql //还原
source d:/文件名.sql# sql语句
sqlbolt.com //练习
不区分大小写
常量区分大小写
1.1注释
1.1.1sql标准
/* */
//多行注释
--
//单行注释
1.1.2mysql注释
#
//单行注释
COMMENT //为字段或列添加注释
1.2语句
1.2.1数据库
1.1创建
CREATE DATABASE [IF NOT EXISTS] db_name
[create_specification [, create_specification] …]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
[] //为可选内容:
- IF NOT EXISTS //表示是否要检查以存在,如果数据库不存在则创建,否则不创建
- create_specification //创建条件
- CHARACTER SET //指定数据库采用的字符集
- COLLATE // 指定数据库字符集的比较方式
- DEFAULT //表示默认内容,即使没有指定该项,也有默认值
1.2显示
SHOW DATABASES //查看库
SHOW CREATE DATABASE db_name //查看库创建语句
1.3修改
ALTER DATABASE [IF NOT EXISTS] 数据库名 DEFAULT
1.4删除
DROP DATABASE [IF EXISTS] db_name
1.2.2数据表
1.1创建数据表
CREATE TABLE 表名{
字段名1,数据类型[完整性约束条件],
…
字段名n,数据类型[完整性约束条件]
};
1.2查看数据表
SHOW TABLES;
SHOW CREATE TABLE 表名;
1.3修改数据表
RENAME TABLE 表名 t0 新表名 | 修改表名称 |
---|---|
ALTER TABLE 表名 ADD 新字段 数据类型 [FIRST|AFTER已存在字段名] | 添加新的字段,FIRST //将新添加的字段放在第一个字段,AFTER //将新添加的字段放在已存在的字段之后 |
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 | 修改字段名称 |
ALTER TABLE 表名 MODIFY 字段名 新数据类型 | 修改字段的数据类型 |
ALTER TABLE 表名 DROP 字段名 | 删除字段 |
1.4删除数据表
DROP TABLE 表名
1.2.3数据
1.1添加数据
INSERT INTO 表名(字段1,字段2,…) VALUES (值1,值2,…)
1.2更新数据
UPDATE 表名 SET 字段名1=值1 [,字段名2=值1…]
1.3删除数据
DELETE FROM 表名 [WHERE 条件表达式]
1.2.3简单查询
SELECT 表名 from 库名 where
where常用表达式
运算符 | 说明 | |
---|---|---|
比较运算符 | > < <= >= = <> | 大于,小于,小于等于,大于等于,不等于 |
BETWEEN …AND… | 显示在某一区间的值 | |
IN(set) | 显示在in列表中的值 | |
IS NULL | 判断是否为空 | |
LIKE | 模糊查询 //% 匹配任意长度字符,_ 匹配任意单字符 | |
逻辑运算符 | and | 与 |
or | 或 | |
not | 非 |
1.2.4高级查询
内置函数
ORDER BY //排序,默认升序,asc升序,desc降序,常用
1.2.5多表查询
- 交叉连接
- 内连接
- 外连接
- 子查询
1.1IN
内层查询语返回数据列
1.2EXISTS
内层查询语相当于测试,不返回数据,返回true和false,返回为true时,外层才执行
1.3ANY
允许创建一个表达式对子查询的返回值进行比较,只要满足内层子查询中的任意一个比较条件,就返回一个结果作为外层查询语句
1.4ALL
允许创建一个表达式对子查询的返回值进行比较,要求返回的结构同时满足所有内层查询条件才为true
带比较运算符的子查询
1.3数据类型
1.3.1mysql数据类型
1.1text类型
数据类型 | 描述 |
---|---|
CHAR(size) | 保存固定长度的字符串(可包含字母、数字以及特殊字符),在括号中指定字符串的长度,最多 255 个字符 |
VARCHAR(size) | 保存可变长度的字符串(可包含字母、数字以及特殊字符),在括号中指定字符串的最大长度,最多 255 个字符,注释:如果值的长度大于 255,则被转换为 TEXT 类型 |
TINYTEXT | 存放最大长度为 255 个字符的字符串 |
TEXT | 存放最大长度为 65,535 个字符的字符串 |
BLOB | 用于 BLOBs (Binary Large OBjects),存放最多 65,535 字节的数据 |
MEDIUMTEXT | 存放最大长度为 16,777,215 个字符的字符串 |
MEDIUMBLOB | 用于 BLOBs (Binary Large OBjects),存放最多 16,777,215 字节的数据 |
LONGTEXT | 存放最大长度为 4,294,967,295 个字符的字符串 |
LONGBLOB | 用于 BLOBs (Binary Large OBjects),存放最多 4,294,967,295 字节的数据 |
ENUM(x,y,z,etc.) | 允许你输入可能值的列表,可以在 ENUM 列表中列出最大 65535 个值,如果列表中不存在插入的值,则插入空值,注释:这些值是按照你输入的顺序存储的,可以按照此格式输入可能的值:ENUM(‘X’,‘Y’,‘Z’) |
SET | 与 ENUM 类似,SET 最多只能包含 64 个列表项,不过 SET 可存储一个以上的值 |
1.2number类型
数据类型 | 描述 |
---|---|
TINYINT(size) | -128 到 127 常规,0 到 255 无符号*,在括号中规定最大位数 |
SMALLINT(size) | -32768 到 32767 常规,0 到 65535 无符号*,在括号中规定最大位数 |
MEDIUMINT(size) | -8388608 到 8388607 普通,0 to 16777215 无符号*,在括号中规定最大位数 |
INT(size) | -2147483648 到 2147483647 常规,0 到 4294967295 无符号*,在括号中规定最大位数 |
BIGINT(size) | -9223372036854775808 到 9223372036854775807 常规,0 到 18446744073709551615 无符号*,在括号中规定最大位数 |
FLOAT(size,d) | 带有浮动小数点的小数字,在括号中规定最大位数,在 d 参数中规定小数点右侧的最大位数 |
DOUBLE(size,d) | 带有浮动小数点的大数字,在括号中规定最大位数,在 d 参数中规定小数点右侧的最大位数 |
DECIMAL(size,d) | 作为字符串存储的 DOUBLE 类型,允许固定的小数点, |
1.3date类型
数据类型 | 描述 |
---|---|
DATE() | 日期,格式:YYYY-MM-DD注释:支持的范围是从 ‘1000-01-01’ 到 ‘9999-12-31’ |
DATETIME() | *日期和时间的组合,格式:YYYY-MM-DD HH:MM:SS注释:支持的范围是从 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’ |
TIMESTAMP() | *时间戳,TIMESTAMP 值使用 Unix 纪元(‘1970-01-01 00:00:00’ UTC) 至今的描述来存储,格式:YYYY-MM-DD HH:MM:SS注释:支持的范围是从 ‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-09 03:14:07’ UTC |
TIME() | 时间,格式:HH:MM:SS 注释:支持的范围是从 ‘-838:59:59’ 到 ‘838:59:59’ |
YEAR() | 2 位或 4 位格式的年,注释:4 位格式所允许的值:1901 到 2155,2 位格式所允许的值:70 到 69,表示从 1970 到 2069 |
1.3.2sql server数据类型
1.1character字符串
数据类型 | 描述 |
---|---|
char(n) | 固定长度的字符串,最多 8,000 个字符 |
varchar(n) | 可变长度的字符串,最多 8,000 个字符 |
varchar(max) | 可变长度的字符串,最多 1,073,741,824 个字符 |
text | 可变长度的字符串,最多 2GB 字符数据 |
1.2unicode字符串
数据类型 | 描述 |
---|---|
nchar(n) | 固定长度的 Unicode 数据,最多 4,000 个字符 |
nvarchar(n) | 可变长度的 Unicode 数据,最多 4,000 个字符 |
nvarchar(max) | 可变长度的 Unicode 数据,最多 536,870,912 个字符 |
ntext | 可变长度的 Unicode 数据,最多 2GB 字符数据 |
1.3binary类型
数据类型 | 描述 |
---|---|
bit | 允许 0、1 或 NULL |
binary(n) | 固定长度的二进制数据,最多 8,000 字节 |
varbinary(n) | 可变长度的二进制数据,最多 8,000 字节 |
varbinary(max) | 可变长度的二进制数据,最多 2GB 字节 |
image | 可变长度的二进制数据,最多 2GB |
1.4number类型
数据类型 | 描述 |
---|---|
tinyint | 允许从 0 到 255 的所有数字 |
smallint | 允许从 -32,768 到 32,767 的所有数字 |
int | 允许从 -2,147,483,648 到 2,147,483,647 的所有数字 |
bigint | 允许介于 -9,223,372,036,854,775,808 和 9,223,372,036,854,775,807 之间的所有数字 |
decimal(p,s) | 固定精度和比例的数字,允许从 -10^38 +1 到 10^38 -1 之间的数字,p 参数指示可以存储的最大位数(小数点左侧和右侧),p 必须是 1 到 38 之间的值,默认是 18,s 参数指示小数点右侧存储的最大位数,s 必须是 0 到 p 之间的值,默认是 0 |
numeric(p,s) | 固定精度和比例的数字,允许从 -10^38 +1 到 10^38 -1 之间的数字,p 参数指示可以存储的最大位数(小数点左侧和右侧),p 必须是 1 到 38 之间的值。默认是 18,s 参数指示小数点右侧存储的最大位数,s 必须是 0 到 p 之间的值,默认是 0 |
smallmoney | 介于 -214,748.3648 和 214,748.3647 之间的货币数据 |
money | 介于 -922,337,203,685,477.5808 和 922,337,203,685,477.5807 之间的货币数据 |
float(n) | 从 -1.79E + 308 到 1.79E + 308 的浮动精度数字数据,参数 n 指示该字段保存 4 字节还是 8 字节,float(24) 保存 4 字节,而 float(53) 保存 8 字节,n 的默认值是 53 |
real | 从 -3.40E + 38 到 3.40E + 38 的浮动精度数字数据 |
1.5date类型
数据类型 | 描述 |
---|---|
datetime | 从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 3.33 毫秒 |
datetime2 | 从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 100 纳秒 |
smalldatetime | 从 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟 |
date | 仅存储日期,从 0001 年 1 月 1 日 到 9999 年 12 月 31 日 |
time | 仅存储时间,精度为 100 纳秒 |
datetimeoffset | 与 datetime2 相同,外加时区偏移 |
timestamp | 存储唯一的数字,每当创建或修改某行时,该数字会更新,timestamp 基于内部时钟,不对应真实时间,每个表只能有一个 timestamp 变量 |
1.6其他数据类型
数据类型 | 描述 |
---|---|
sql_variant | 存储最多 8,000 字节不同数据类型的数据,除了 text、ntext 以及 timestamp |
uniqueidentifier | 存储全局标识符 |
xml | 存储 XML 格式化数据,最多 2GB |
cursor | 存储对用于数据库操作的指针的引用 |
table | 存储结果集,供稍后处理 |
1.4约束
1.4.1主键约束
PRIMARY KEY constraint
为唯一标识表中的记录,可以通过PRIMARY KEY来设置主键。主键列值不能为空,也不能重复,就好比人的身份证,用来标识人的身份,每个人都有,而且全都不重复。一个表只能有一个主键约束。主键约束可以分为两种:单字段主键,多字段主键
1.4.2非空约束
NOT NULL constraint
限制某列必须有值,不能为空,通过NOT NULL来设置非空约束
1.4.3唯一约束
UNIQUE constraint
限制某列不能重复,通过UNIQUE来设置唯一的约束
1.4.4默认约束
DEFAULT constraint
设置某列默认值,通过DEFAULT来设置默认约束
1.4.5外键约束
FOREIGN KEY constraint
设置一个表中的某列引用至另一个表中的某一列,通过FOREIGN KEY来设置外键约束
1.5索引
mysql通过建立索引来提高数据的搜索速度
- 普通索引
- 唯一索引
- 全文索引
- 空间索引
1.5.1创建索引
CREATE TABLE 表名(字段1类型,字段2类型,…
字段名 数据类型 [UNIQUE|FULLTEXT|SPATIAL|INDEX|KEY]
[别名](字段名1[(长度)])[ASC|DESC]
)
1.5.2删除索引
ALTER TABLE 表名 DROP INDEX 索引名
1.6备份与还原
1.6.1自带功能
data export
data import
1.6.2mysqldump工具
mysqldump -u 用户名 -p 数据库名 > 文件名.sql //备份
mysqldump -u 用户名 -p 数据库名 < 文件名.sql //还原1
source d:/文件名.sq //还原2