MySQL基础
2020-08-28 13:56:26 0 举报
AI智能生成
MySQL基础
作者其他创作
大纲/内容
基本
登录
例子:mysql -h主机名 -u用户名 -p密码
退出
quit
exit
\q
命令结束符
; 或者 \g
\G
以垂直的形式将每个列展示在单独的行中
数据类型
整数类型
tinyint
1字节
smallint
2字节
mediumint
3字节
int
4字节
bigint
8字节
浮点类型
float
4字节
double
8字节
float(m,d)
m表示全部有效数字的个数
d表示小数点之后的数字个数
double(m,d)
定点数
decimal(m,d)
日期和时间类型
year
1字节
date
3字节
time
3字节
datetime
8字节
timestamp
4字节
字符串类型
char(m)
m个字符
varchar(m)
m个字符
tinytext
2^8-1个字节
text
2^16-1个字节
mediumtext
2^24-1个字节
longtext
2^32-1个字节
二进制类型
bit(m)
近似(m+7)/8个字节
binary(m)
varbinary(m)
tinyblob
blob
mediumblob
longblob
列的属性(创建表时)
默认值
列名 列的类型 DEFAULT 默认值
非空属性
列名 列的类型 NOT NULL
主键
PRIMARY KEY (列名1, 列名2, ...)
唯一约束属性
列名 列的类型 UNIQUE
UNIQUE [约束名称] (列名1, 列名2, ...)
UNIQUE KEY [约束名称] (列名1, 列名2, ...)
外键
CONSTRAINT [外键名称] FOREIGN KEY(列1, 列2, ...) REFERENCES 父表名(父列1, 父列2, ...)
自动增长
列名 列的类型 AUTO_INCREMENT
列的注释
列名 列的类型 COMMENT '列的注释'
无符号类型
列名 数值类型 UNSIGNED
数字左边补0
列名 数值类型 UNSIGNED ZEROFILL
库的基本操作
展示数据库
show databases;
创建数据库
create database if not exists 数据库名;
切换数据库
use 数据库名;
删除数据库
drop database if exists 数据库名
表的基本操作
展示当前数据库的表
show tables;
创建表
CREATE TABLE 表名 (
列名1 数据类型 [列的属性],
列名2 数据类型 [列的属性],
...
列名n 数据类型 [列的属性]
);
列名1 数据类型 [列的属性],
列名2 数据类型 [列的属性],
...
列名n 数据类型 [列的属性]
);
表的注释
CREATE TABLE 表名 (
各个列的信息 ...
) COMMENT '表的注释信息';
各个列的信息 ...
) COMMENT '表的注释信息';
删除表
DROP TABLE 表1, 表2, ..., 表n;
查看表结构
以表格形式展示各列信息
DESCRIBE 表名;
DESC 表名;
EXPLAIN 表名;
SHOW COLUMNS FROM 表名;
SHOW FIELDS FROM 表名;
DESC 表名;
EXPLAIN 表名;
SHOW COLUMNS FROM 表名;
SHOW FIELDS FROM 表名;
显示创建语句
SHOW CREATE TABLE 表名;
修改表
修改表名
ALTER TABLE 旧表名 RENAME TO 新表名;
RENAME TABLE 旧表名1 TO 新表名1, 旧表名2 TO 新表名2, ... 旧表名n TO 新表名n;
增加列
ALTER TABLE 表名 ADD COLUMN 列名 数据类型 [列的属性];
插入到第一列
ALTER TABLE 表名 ADD COLUMN 列名 列的类型 [列的属性] FIRST;
插入到指定列的后面
ALTER TABLE 表名 ADD COLUMN 列名 列的类型 [列的属性] AFTER 指定列名;
删除列
ALTER TABLE 表名 DROP COLUMN 列名;
修改列信息
ALTER TABLE 表名 MODIFY 列名 新数据类型 [新属性];
ALTER TABLE 表名 CHANGE 旧列名 新列名 新数据类型 [新属性];
修改列排列位置
将列设为第一行
ALTER TABLE 表名 MODIFY 列名 列的类型 列的属性 FIRST;
将列放到指定列的后面
ALTER TABLE 表名 MODIFY 列名 列的类型 列的属性 AFTER 指定列名;
多个修改操作
ALTER TABLE 表名 操作1, 操作2, ..., 操作n;
增删改查
简单的查询
查询单个列
SELECT 列名 FROM 表名;
列的别名
SELECT 列名 [AS] 列的别名 FROM 表名;
查询多个列
SELECT 列名1, 列名2, ... 列名n FROM 表名;
查询所有列
SELECT * FROM 表名;
去除单列的重复结果
SELECT DISTINCT 列名 FROM 表名;
去除多列的重复结果
SELECT DISTINCT 列名1, 列名2, ... 列名n FROM 表名;
限制查询结果条数
LIMIT 开始行, 限制条数;
LIMIT 限制条数;
对查询结果排序
ORDER BY 列名 ASC|DESC
ORDER BY 列1 ASC|DESC, 列2 ASC|DESC ...
简单的搜索条件
比较操作符
=
<> 或者 !=
<
<=
>
>=
between ... and ...
not between ... and ...
匹配列表中的元素
in
not in
匹配NULL值
is null
is not null
多个搜索条件
and 操作符
or 操作符
通配符
like
% 代表任意一个字符串
_ 代表任意一个字符
转义字符
'\%'代表普通字符'%'
'\_'代表普通字符'_'
not like
分组查询
SELECT [DISTINCT] 查询列表
[FROM 表名]
[WHERE 布尔表达式]
[GROUP BY 分组列表 ]
[HAVING 分组过滤条件]
[ORDER BY 排序列表]
[LIMIT 开始行, 限制条数]
[FROM 表名]
[WHERE 布尔表达式]
[GROUP BY 分组列表 ]
[HAVING 分组过滤条件]
[ORDER BY 排序列表]
[LIMIT 开始行, 限制条数]
简单的插入
INSERT INTO 表名(列1, 列2, ...) VALUES(列1的值,列2的值, ...);
批量插入
INSERT INTO 表名(列1,列2, ...) VAULES(列1的值,列2的值, ...), (列1的值,列2的值, ...), (列1的值,列2的值, ...), ...;
函数
文本处理函数
截取左边字符串
left
截取右边字符串
right
字符串长度
length
小写
lower
大写
upper
去掉左边空格
ltrim
去掉右边空格
rtrim
从指定位置截取指定长度字符串
substring
拼接
concat
日期和时间处理函数
返回当前日期和时间
NOW
返回当前日期
CURDATE
返回当前时间
CURTIME
将给定日期和时间值的日期提取出来
DATE
将给定的日期和时间值添加指定的时间间隔
DATE_ADD
将给定的日期和时间值减去指定的时间间隔
DATE_SUB
返回两个日期之间的时间差
DATEDIFF
用给定的格式显示日期和时间
DATE_FORMAT
数值处理函数
取绝对值
ABS
返回圆周率
Pi
返回e的指定次方
EXP
返回除法的余数
MOD
返回一个随机数
RAND
聚集函数
返回某列的行数
COUNT
返回某列的最大值
MAX
返回某列的最小值
MIN
返回某列值之和
SUM
返回某列的平均值
AVG
0 条评论
下一页