欢迎光临
我们一直在努力

day7-MYSQL数据库

MYSQL数据库

数据类型表

表 1:数值类型

类型大小 (byte)有符号 (SIGNED) 范围无符号 (UNSIGNED) 范围描述备注
tinyint 1 (-128, 127) (0, 255) 小整数值
smallint 2 (-32768, 32767) (0, 65535) 大整数值
mediumint 3 (-8388608, 8388607) (0, 16777215) 大整数值
int 4 (-2147483648, 2147483647) (0, 4294967295) 大整数值
bigint 8 (-2^63, 2^63-1) (0, 2^64-1) 极大整数值
float 4 (-3.402823466 E+38, 3.402823466351 E+38) 0 和 (1.175494351 E-38, 3.402823466 E+38) 单精度浮点数值 float (5,2):5 表示整个数字长度,2 表示小数个数
double 8 (-1.7976931348623157 E+308, 1.7976931348623157 E+308) 0 和 (2.2250738585072014 E-308, 1.7976931348623157 E+308) 双精度浮点数值 double (5,2):5 表示整个数字长度,2 表示小数个数
decimal 小数值 (精度更高) decimal (5,2):5 表示整个数字长度,2 表示小数个数

表 2:字符串类型

分类类型大小描述
字符串类型 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 长文本数据
mediumblob 0-16 777 215 bytes 二进制形式的中等长度文本数据
mediumtext 0-16 777 215 bytes 中等长度文本数据
longblob 0-4 294 967 295 bytes 二进制形式的极大文本数据
longtext 0-4 294 967 295 bytes 极大文本数据

表 3:日期类型

分类类型大小 (byte)范围格式描述
日期类型 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 至 2038-01-19 03:14:07 YYYY-MM-DD HH:MM:SS 混合日期和时间值,时间戳

一、DDL(Data Definition Language):数据定义语言

用于定义数据库和表的结构,核心是 “创建、修改、删除”。

1. 数据库操作

— 查询所有数据库
SHOW DATABASES;

— 查询当前数据库
SELECT DATABASE();

— 创建数据库(推荐带存在性检查和字符集)
CREATE DATABASE [IF NOT EXISTS] db_name [DEFAULT CHARSET utf8mb4];

— 切换数据库
USE db_name;

— 删除数据库
DROP DATABASE [IF EXISTS] db_name;

2. 表操作

— 查询当前库所有表
SHOW TABLES;

— 查询表结构
DESC table_name;

— 查询建表语句
SHOW CREATE TABLE table_name;

— 创建表
CREATE TABLE table_name (
column1 type1 [CONSTRAINT],
column2 type2 [CONSTRAINT],
PRIMARY KEY (column1)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='表注释';

— 修改表结构
ALTER TABLE table_name ADD column_name type [COMMENT '注释'];
ALTER TABLE table_name MODIFY column_name new_type;
ALTER TABLE table_name CHANGE old_col new_col new_type;
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE table_name RENAME TO new_table_name;

— 删除表
DROP TABLE [IF EXISTS] table_name;


二、DML(Data Manipulation Language):数据操作语言

用于对表中的数据进行增、删、改操作。

1. 插入数据(INSERT)

— 插入单条数据
INSERT INTO table_name (col1, col2) VALUES (val1, val2);

— 插入多条数据
INSERT INTO table_name (col1, col2)
VALUES (val1, val2), (val3, val4);

— 插入查询结果
INSERT INTO table_name (col1, col2)
SELECT col1, col2 FROM other_table WHERE condition;

2. 更新数据(UPDATE)

— 更新所有符合条件的数据
UPDATE table_name
SET col1 = val1, col2 = val2
WHERE condition;

— 注意:WHERE 条件必须加,否则会更新全表

3. 删除数据(DELETE)

— 删除符合条件的数据
DELETE FROM table_name WHERE condition;

— 清空表(自增主键会重置)
TRUNCATE TABLE table_name;


三、DQL(Data Query Language):数据查询语言

用于从表中查询数据,是最常用的 SQL 语句。

1. 基础查询

— 查询所有字段
SELECT * FROM table_name;

— 查询指定字段
SELECT col1, col2 FROM table_name;

— 去重查询
SELECT DISTINCT col1 FROM table_name;

— 别名查询
SELECT col1 AS alias1, col2 alias2 FROM table_name;

2. 条件查询(WHERE)

SELECT * FROM table_name
WHERE
col1 = val1
AND col2 > val2
OR col3 IN (val3, val4)
AND col4 LIKE '%keyword%';

3. 排序(ORDER BY)

SELECT * FROM table_name
ORDER BY col1 ASC, col2 DESC;

4. 分页(LIMIT)

— 第1页(每页10条)
SELECT * FROM table_name LIMIT 0, 10;

— 第2页
SELECT * FROM table_name LIMIT 10, 10;

5. 聚合函数

— 统计数量
SELECT COUNT(*) FROM table_name;

— 求和、平均值、最大/最小值
SELECT SUM(col1), AVG(col1), MAX(col1), MIN(col1) FROM table_name;

6. 分组查询(GROUP BY + HAVING)

SELECT col1, COUNT(*)
FROM table_name
WHERE condition
GROUP BY col1
HAVING COUNT(*) > 10;

7. 多表关联查询

— 内连接(只返回匹配的数据)
SELECT a.*, b.*
FROM table_a a
INNER JOIN table_b b ON a.id = b.a_id;

— 左连接(返回左表所有数据,右表匹配不到则为 NULL)
SELECT a.*, b.*
FROM table_a a
LEFT JOIN table_b b ON a.id = b.a_id;


四、核心总结

类型作用常用命令
DDL 定义数据库 / 表结构 CREATE、ALTER、DROP、TRUNCATE
DML 操作表中数据 INSERT、UPDATE、DELETE
DQL 查询表中数据 SELECT
赞(0)
未经允许不得转载:171主机测评 » day7-MYSQL数据库
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址