MySQL教程
第一篇
MySQL 选择数据库
提示:
- 在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,
- 所以你需要选择你要操作的数据库。
1 | use 数据库名; |
MySQL 创建数据库
1 | create database 数据库名; |
查看数据库
1 | SHOW DATABASES; --查看所有数据库 |
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 | REATE TABLE runoob( |
查看数据表
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 | ALTER TABLE 数据表名 |
语法格式2:同时新增多个字段
1 | ALTER TABLE 数据表名 |
删除字段
1 | ALTER TABLE 数据表名 DROP [COLUMN] 字段名; |
MySQL 删除数据表
1 | DROP TABLE 数据表名; |
MySQL 插入数据
1 | INSERT INTO 数据表名(字段名1,字段名2) VALUES (字段值1,字段值2); |
提示:
- 如果数据是字符型,必须使用单引号或者双引号,如:”value”。
实例
1 | mysql> INSERT INTO runoob_tbl |
注意:
- 使用箭头标记 -> 不是 SQL 语句的一部分,它仅仅表示一个新行,
- 如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写 SQL 语句,
- SQL 语句的命令结束符为分号 ;。
INSERT 插入多条数据
1 | INSERT INTO 数据表名(字段名1,字段名2) VALUES (字段值1,字段值),(字段值1,字段值),(字段值1,字段值); |
MySQL 查询数据
1 | --基本语法 |
提示:
- 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 | SELECT *|{字段列表}FROM 数据表名 |
多字段排序:
1 | SELECT *|{字段列表}FROM 数据表名 |
提示:
- 你可以使用 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 | SELECT 字段名, 聚合函数(字段名) |
评论
匿名评论
✅ 你无需删除空行,直接评论以获取最佳展示效果