MYSQL--sql1(DDL+DML)

一.数据库相关概念
数据库(DB):按照一定的数据结构来组织、存储和管理数据的仓库
数据库管理系统(DBMS):一种操纵和管理数据库的大型软件,用于创建、使用和维护数据库
关系型数据库(RDBMS):由多张相互连接的二维表组成的数据库
非关系型数据库:泛指非关系型数据库,是对关系型数据库的补充
结构化查询语言(SQL):一种操作关系型数据库的编程语言,定义了一套操作关系型数据库统一SQL标准

二、SQL通用语法

  1. SQL语句可以单行或多行书写,以分号结尾
  2. SQL语句可以使用空格/缩进来增强语句的可读性
  3. 不区分大小写,关键字建议使用大写
  4. 注释
    4.1. 单行注释:-- 注释内容 或 # 注释内容(MySQL特有)
    4.2. 多行注释: /* 注释内容 */

三、SQL分类

  1. DDL:数据定义语言,用来定义数据库对象(数据库,表,字段)
  2. DML:数据操作语言,用来对数据库表中的数据进行增删改
  3. DQL:数据查询语言,用来查询数据库中表的记录
  4. DCL:数据控制语言,用来创建数据库用户、控制数据库的访问权限

四、数据定义语言DDL
1.DDL-数据库操作
1.1 查询所有数据库 SHOW DATABASES;

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

1.3 创建数据库 CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
(默认的字符集和排序规则分别是utf8mb4字符集和utf8mb4_unicode_ci排序规则,也是推荐使用的字符集和排序规则)

1.4 删除数据库 DROP DATABASE [IF EXISTS] 数据库名;

1.5 使用数据库 USE 数据库名;

  1. DDL-表操作-查询
    2.1 查询当前数据库所有表 SHOW TABLES;

2.2 查询表结构 DESC 表名;

2.3 查询指定表的建表语句 SHOW CREATE TABLE 表名;

3.DDL-表操作-创建
CREATE TABLE 表名(
字段1 字段1类型 [COMMENT 字段1注释],
字段2 字段2类型 [COMMENT 字段2注释],
...
字段n 字段n类型 [COMMENT 字段n注释]
)[COMMENT 表注释];

  1. DDL-表操作-数据类型
    4.1 整数类型
    TINYINT:1字节,小整数,范围:-128 ~ 127(有符号)或 0 ~ 255(无符号)

SMALLINT:2字节,大整数,范围:-32,768 ~ 32,767(有符号)或 0 ~ 65,535(无符号)

MEDIUMINT:3字节,大整数,范围:-8,388,608 ~ 8,388,607(有符号)或 0 ~ 16,777,215(无符号)

INT或INTEGER:4字节,大整数,范围:-2,147,483,648 ~ 2,147,483,647(有符号)或 0 ~ 4,294,967,295(无符号)

BIGINT:8字节,极大整数,范围:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807(有符号)或 0 ~ 18,446,744,073,709,551,615(无符号)

4.2 浮点数类型:
FLOAT:4字节,单精度浮点数,范围:-3.402823466 E+38 ~ 3.402823466351 E+38(有符号)或 0 和 1.175494351 E-38 ~ 3.402823466 E+38,近似值

DOUBLE:8字节,双精度浮点数,范围:-1.7976931348623157 E+308 ~ 1.7976931348623157 E+308 或 0 和 2.2250738585072014 E-308 ~ 1.7976931348623157E+308,近似值

DECIMAL(M, D):精确值,M 是总位数,D 是小数位数。例如,DECIMAL(5, 2)可以存储 123.45

4.3 字符串类型
CHAR(N):固定长度字符串,最多 255 个字符

VARCHAR(N):可变长度字符串,最多 65,535 个字符

TINYBLOB:不超过 255 个字符的二进制数据

TINYTEXT:短文本字符串,最多 255 个字符

BLOB:二进制形式的长文本数据,最多 65,535 个字符

TEXT:长文本数据,最多65,535个字符

MEDIUMBLOB:二进制形式的中等长度文本数据,最多 16,777,215 个字符

MEDIUMTEXT:中等长度文本数据,最多 16,777,215 个字符

LONGBLOB:二进制形式的极大文本数据,最多 4,294,967,295 个字符

LONGTEXT:极大文本数据,最多 4,294,967,295 个字符

4.4 日期时间类型
DATE:日期值,3字节,格式为YYYY-MM-DD,范围是1000-01-01 至 9999-12-31

TIME:时间值或持续时间,3字节,格式为HH:MM:SS,范围是-838:59:59 至 838:59:59

YEAR:年份值,1字节,格式为YYYY,范围是1901 至 2155

DATETIME:混合日期和时间值,8字节,格式为YYYY-MM-DD HH:MM:SS,范围是1000-01-01 00:00:00 至 9999-12-31 23:59:59

TIMESTAMP:混合日期和时间值,时间戳,4字节,格式为YYYY-MM-DD HH:MM:SS,范围是1970-01-01 00:00:01 至 2038-01-19 03:14:07

4.5 布尔类型
BOOLEAN或BOOL:底层会自动转换成TINYINT(1),赋值时可以用FALSE和TRUE,也可以使用0和1

4.6 枚举类型
ENUM:示例ENUM('value1', 'value2', ..., 'valueN')
只能存字符串,列的值只能是预定义列表中的一个
如果没有指定默认值,那么可以取空值NULL,指定默认值后会默认取默认值,如果未指定默认值且不能为空,会默认取第一个值
索引会按照列表顺序从1开始,空字符串 '' 的索引为 0(如果允许空值)
5.DDL-表操作-修改
添加字段 ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];

修改数据类型 ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

修改字段名和字段类型 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

删除字段 ALTER TABLE 表名 DROP 字段名;

修改表名 ALTER TABLE 表名 RENAME TO 新表名;

6 DDL-表操作-删除
删除表 DROP TABLE [IF EXISTS] 表名;

删除指定表,并重新创建该表 TRUNCATE TABLE 表名;

五.数据操作语言DML

  1. DML-添加数据

1.1给指定字段添加数据 INSERT INTO 表名 (字段名1,字段名2,...) VALUES (值1,值2,...);

1.2给全部字段添加数据 INSERT INTO 表名 VALUES (值1,值2,...);

1.3 批量添加数据
INSERT INTO 表名 (字段名1,字段名2,...) VALUES (值1,值2,...),(值1,值2,...),...,(值1,值2,...);
INSERT INTO 表名 VALUES (值1,值2,...),(值1,值2,...),...,(值1,值2,...);

注:插入数据时,指定的字段顺序需要与值的顺序是一一对应的
字符串和日期型数据应该包含在单引号中
插入的数据大小,应该在字段的规定范围内
2 DML-修改数据
UPDATE 表名 SET 字段1=值1,字段2=值2,...[WHERE 条件];

注:如果没有条件,会修改整张表的所有数据

3 DML-删除数据
DELETE FROM 表名 [WHERE 条件];

注: DELETE如果没有指定条件,会删除整张表的所有数据
DELETE不能删除某一个字段的值(可以使用UPDATE)
DELETE仅仅删除表中的数据,DROP会把整张表和数据一起删除

posted @ 2026-05-25 21:34  lagranSun  阅读(12)  评论(0)    收藏  举报