第一篇

MySQL 选择数据库

提示:

  • 在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,
    • 所以你需要选择你要操作的数据库。
1
use 数据库名;

MySQL 创建数据库

1
create database 数据库名;

查看数据库

1
2
3
SHOW DATABASES; --查看所有数据库

SHOW CREATE DATABASE 数据库名称; --查看指定数据库创建信息

MySQL注释:

  • 单行注释 :— 或 #
  • 多行注释:/ /

MySQL 删除数据库

1
drop database 数据库名;

MySQL 数据类型

数值类型

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 Bytes (-128,127) (0,255) 小整数值
SMALLINT 2 Bytes (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 Bytes (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 Bytes (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 Bytes (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 Bytes (-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) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度 浮点数值
DOUBLE 8 Bytes (-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) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度 浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

日期和时间类型

类型 大小 ( bytes) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 ‘-838:59:59’/‘838:59:59’ HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’ YYYY-MM-DD hh:mm:ss 混合日期和时间值
TIMESTAMP 4 ‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-19 03:14:07’ UTC结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 YYYY-MM-DD hh:mm:ss 混合日期和时间值,时间戳

字符串类型

类型 大小 用途
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据

MySQL 创建数据表

1
CREATE TABLE 数据表名(字段名1 字段类型,字段名2 字段类型);

实例

1
2
3
4
REATE TABLE runoob(
runoob_id INT,
runoob_title VARCHAR(100),
);

查看数据表

1
SHOW TABLES [LIKE 匹配模式];
1
SHOW TABLE STATUS [FROM 数据库名][LIKE 匹配模式]; --查看数据表状态信息

提示:

  • 省略可选项,表示查看当前数据库中的所有数据表。
  • 添加可选项,则按照“匹配模式”查看数据表。
  • 匹配模式符“%”匹配一个或多个字符,代表任意长度的字符串。
  • 匹配模式符“_”仅可以匹配一个字符。
  • 例:
    • SHOW TABLES LIKE ‘%new%’;

查看表的创建语句

1
SHOW CREATE TABLE 表名;

查看数据表结构

语法格式1

1
SHOW [FULL] COLUMNS FROM 数据表名 [FROM数据库名];

语法格式2

1
SHOW [FULL] COLUMNS FROM 数据库名.数据表名;

查看字段信息

语法格式1:查看所有字段的信息

1
DESC 数据表名;

语法格式2:查看指定字段的信息

1
DESC 数据表名 字段名;

新增字段

语法格式1:新增一个字段,并可指定其位置

1
2
3
ALTER TABLE 数据表名

ADD[COLUMN] 新字段名字段类型 [FIRST| AFTER 字段名];

语法格式2:同时新增多个字段

1
2
3
ALTER TABLE 数据表名

ADD [COLUMN](新字段名1 字段类型1, 新字段名2 字段类型2,...);

删除字段

1
ALTER TABLE 数据表名 DROP [COLUMN] 字段名;

MySQL 删除数据表

1
DROP TABLE 数据表名;

MySQL 插入数据

1
INSERT INTO 数据表名(字段名1,字段名2) VALUES (字段值1,字段值2);

提示:

  • 如果数据是字符型,必须使用单引号或者双引号,如:”value”。

实例

1
2
3
4
mysql> INSERT INTO runoob_tbl 
-> (runoob_title, runoob_author, submission_date)
-> VALUES
-> ("学习 PHP", "菜鸟教程", NOW());

注意:

  • 使用箭头标记 -> 不是 SQL 语句的一部分,它仅仅表示一个新行,
  • 如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写 SQL 语句,
    • SQL 语句的命令结束符为分号 ;

INSERT 插入多条数据

1
INSERT INTO 数据表名(字段名1,字段名2) VALUES (字段值1,字段值),(字段值1,字段值),(字段值1,字段值);

MySQL 查询数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
--基本语法
select 字段列表/* from 表名 [where 条件];

--完整语法

select [select选项] 字段列表[字段别名]/*from 数据源

[where 条件子句]

[group by子句]

[having 子句]

[order by子句]

[limit 子句];

select选项

select选项:select对查出来的结果的处理方式

提示:

  • select * : 返回所有记录

MySQL WHERE 子句

描述:

  • 有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。
1
SELECT* | 字段名1, 字段名2, 字段名3 FROM 数据表名 WHERE 字段名1 = 值 [or|and]字段名2 = 值;

MySQL UPDATE 更新数据

1
UPDATE 数据表名 SET 字段名1 = 值1 [, 字段名2 = 值2, …][WHERE 条件表达式];

MySQL DELETE 删除数据

1
DELETE FROM 数据表名[WHERE 条件表达式];

MySQL 排序

  • MySQL提供了两种排序的方式,分别为单字段排序多字段排序

单字段排序:

1
2
3
SELECT *|{字段列表}FROM 数据表名

ORDER BY 字段名 [ASC |DESC];

多字段排序:

1
2
3
SELECT *|{字段列表}FROM 数据表名

ORDER BY 字段名1 [ASC| DESC] [, 字段名2 [ASC| DESC]]…;

提示:

  • 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。
    • 默认情况下,它是按升序排列。

聚合函数

  • 在对数据进行分组统计时,经常需要结合MySQL提供的聚合函数才能够统计出具有价值的数据。
    • 🍒例如,获取每种商品分类下的商品数量、最高价格的商品、最低价格的商品等。
  • 为此,MySQL中的聚合函数就可在查询数据时提供一些特殊的功能。
函数名 描述
COUNT() 返回参数字段的数量,不统计为NULL的记录
SUM() 返回参数字段之和
AVG() 返回参数字段的平均值
MAX() 返回参数字段的最大值
MIN() 返回参数字段的最小值
GROUP_CONCAT() 返回符合条件的参数字段值的连接字符串
JSON_ARRAYAGG() 将符合条件的参数字段值做为单个JSON数组返回,MySQL5.7.22新增
JSON_OBJECTAGG() 将符合条件的参数字段值做为单个JSON对象返回,MySQL5.7.22新增

​ 提示:

  • COUNT()、SUM()、AVG()、MAX()、MIN()和GROUP_CONCAT()函数中可以在参数前添加DISTINCT,表示对不重复的记录进行相关操作。
  • COUNT()的参数设置为“*”时,表示统计符合条件的所有记录(包含NULL)。
    • 聚合函数不能在where中使用

MySQL GROUP BY 语句

1
2
3
4
SELECT 字段名, 聚合函数(字段名)
FROM 数据表
WHERE 条件
GROUP BY 字段名1[,字段名2];

MySQL 运算符