MySQL思维导图
2023-09-27 17:33:28 38 举报
AI智能生成
666
作者其他创作
大纲/内容
数据库入门
数据模型
E-R图
MySQL的安装
图形化工具
Navicat
数据库的基本操作
创建数据库
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option];
使用 IF NOT EXITS 可以避免数据库已经存在而出现的创建错误
查看数据库
SHOW {DATABASES | SCHEMAS} [LIKE 'pattern' | WHERE expr];
LIKE 可以指定匹配模式匹配数据库
WHERE 用于指定条件的数据库
选择数据库
USE <数据库名>;
可以使用 SELECT DATABASE(); 查看当前数据库
修改数据库特征
ALTER {DATABASE | SCHEMA} [db_name] alter_option;
alter_option 为修改的特征
可修改特征
CHARACTER SET 数据库字符集
COLLATE 数据库校对集
ENCRYPTION 数据库加密选项
READ ONLY 控制是否允许修改数据库及其中的对象
允许的值为 DEFAULT、0(非只读)、1(只读)
删除数据库
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;
IF EXITS 可选项用于防止删除不存在的数据库时发生错误
数据类型
数值类型
整数类型
TINYINT
1字节
范围(-128,127)
SMALLINT
2字节
范围(-128,127)
MEDIUMINT
3字节
范围(-8 388 608,8 388 607)
INT
4字节
范围(-2 147 483 648,2 147 483 647)
BIGINT
8字节
范围(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)
浮点数类型
FLOAT
4字节
范围(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)
DOUBLE
8字节
范围(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)
定点数类型
DECIMAL(M,D)
M表示数据的精度,D表示数据的小数位数
NUMERIC
与DECIMAL同义
BIT类型
BIT(M)
M用于表示每个值的位数,范围为1~64
日期和时间类型
YEAR
格式 YYYY
范围1901/2155
DATE
格式 YYYY-MM-DD
范围1000-01-01/9999-12-31
TIME
格式 HH:MM:SS
范围'-838:59:59'/'838:59:59'
DATETIME
格式 YYYY-MM-DD HH:MM:SS
范围1000-01-01 00:00:00/9999-12-31 23:59:59
TIMESTAMP
格式 YYYY-MM-DD HH:MM:SS
范围1970-01-01 00:00:00/2038
结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07
结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07
字符串类型
CHAR
存储固定长度的字符串
VARCHAR
存储可变长度的字符串
BINARY
VARBINARY
TEXT类型
TINYTEXT
范围 L+1字节,其中,L<2^8
TEXT
范围 L+2字节,其中,L<2^16
MEDIUMTEXT
范围 L+3字节,其中,L<2^24
LONGTEXT
L+4字节,其中,L<2^32
BLOB类型
TINYBLOB
BLOB
MEDIUMBLOB
LONGBLOB
ENUM
枚举类型
ENUM('value1','value2', ....)
SET
字符串对象
SET('value1','value2', ....)
数据表的基本操作
创建数据表
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tb1_name
TEMPORARY 表示临时表,在关闭时自动删除
查看数据表
SHOW TABLES [LIKE 'pattern' | WHERE expr];
SHOW CREATE TABLE tb1_name;
DESCRIBE 数据表名 或者简写为 DESC 数据表名;
修改数据表
ALTER TABLE tb1_name [alter_option [, alter_option] ...] [partition_options]
修改数据表名、数据表选项、字段名、字段的数据类型、字段的排列位置,添加字段,删除字段
删除数据表
DROP [TEMPORARY] TABLE [IF EXISTS] tb1_name [, tb1_name] ... [RESTRICT | CASCADE];
RESTRICT | CASCADE 用于设置外键的级联级别
表的约束
非空约束
NOT NULL
可以为多个字段同时设置
唯一约束
UNIQUE
可以在数据表中设置1个或多个唯一约束
可以通过 ALTER TABLE 语句中 DROP 删除唯一约束
主键约束
PRIMARY KEY
每个数据表中最多只能设置一个主键约束
可以通过 ALTER TABLE 语句中 DROP 删除主键约束
默认值约束
<字段名> <数据类型> DEFAULT <默认值>;
可以通过 ALTER TABLE 语句中 MODIFY 或 CHANGE 重新定义字段来删除默认值约束
自动增长
字段名 数据类型 AUTO_INCREMENT;
一个数据表中只能有一个字段设置 AUTO_INCREMENT
可以是整数和浮点类型,并且该字段必须定义为键,如 UNIQUE、PRIMARY KEY
如果自动增长字段插入 NULL 则会自动增长;如果是具体值,则不会自动增长值
默认情况下,设置 AUTO_INCREMENT 的字段的值是从1开始自增。如果插入一个大于自动增长值得具体值,则下次自动增长的值为字段中的最大值加1
使用 DELETE 删除记录时,自动增长值不会减少或填补空缺
数据操作
插入数据
一次插入单条数据
INSERT [INTO] 数据表名 [(字段名1 [, 字段名2] ...)] {VALUES | VALUE} (值1) [, (值2)] ...;
INSERT INTO 数据表名 SET 字段名1 =值1 [, 字段名2=值2, ...];
一次插入多条数据
INSERT [INTO] 数据表名 [(字段名1 [, 字段名2] ...)] {VALUES | VALUE} (值1,值2, ...) , (值1,值2, ...) , ... ,(值1,值2, ...);
更新数据
UPDATE 数据表名 SET 字段名1 = 值1 [, 字段名2 = 值2 , ...] [WHERE 条件表达式];
删除数据
DELETE FROM 数据表名 [WHERE 条件表达式];
TRUNCATE [TABLE] 数据表名;
单表查询
SELECT语句
SELECT [DISTINCT] * | {select_expr1 , select_expr2 , ...} FROM 数据表名 [WHERE 条件表达式1] [GROUP BY 字段名 [HAVING 条件表达式2]] [ORDER BY 字段名 [ASC | DESC]] [LIMIT [OFFSET] 记录数]
简单查询
SELECT 字段名1 , 字段名 2 , ... FROM 数据表名 ;
使用通配符 * 进行查询 SELECT * FROM 数据表名 ;
查询去重数据
SELECT DISTINCT 字段名 FROM 数据表名 ;
DISTINCT 可用于多个字段
SELECT DISTINCT 字段名1 , 字段名2 , ... FROM 表名 ;
条件查询
带比较运算符的查询
=
左右两侧数据是否相等
<>
左右两侧数据是否不相等
!=
左右两侧数据是否不相等
<
左侧操作数是否大于右侧操作数
<=
左侧操作数是否小于或等于右侧操作数
>
左侧操作数是否大于右侧操作数
>=
左侧操作数是否大于或等于右侧操作数
BETWEEN ... AND ...
比较数据是否在指定范围内
IN
比较数据是否存在于指定集合内
IS NULL
比较数据是否为空
IS NOT NULL
比较数据是否为空
LIKE
通配符匹配,获取匹配到的数据
带逻辑运算符的查询
NOT
!
AND
&&
OR
||
0 条评论
下一页
为你推荐
查看更多