当前位置: 首页 > news >正文

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会把整张表和数据一起删除

http://www.gsyq.cn/news/1384192.html

相关文章:

  • Claude Code , Codex, Curser, OpenCode 等 CodeAgent 的实现原理与应用深度研究
  • 在Python中运行JavaScript:PyExecJS的现代应用指南
  • 如何在7天内构建一个本地运行的AI虚拟主播?Neuro开源项目的技术实践
  • 腾讯面试官:“用 Claude Code 半年了,CLAUDE.md 你是怎么维护的?”我不假思索:“就 init 一下啊”,他愣住了。
  • Burp Suite渗透工作流设计:30款插件的阶段化实战应用
  • 淘宝任务自动化:如何用智能脚本每天节省25分钟
  • 3小时完成汽车智能升级:openpilot完整安装指南让普通车辆拥有高级驾驶辅助
  • 3大创意方案:戴森球计划翘曲器生产蓝图实战指南
  • 基于433MHz模块与Arduino的低成本四通道无线遥控系统实战
  • 5分钟快速上手LivePortrait:让静态照片“活“起来的终极指南
  • 告别游戏中断:如何用XB1ControllerBatteryIndicator彻底解决Xbox手柄电量焦虑
  • Yalmip调试秘籍:用好verbose、debug和warning,快速定位模型报错与性能瓶颈
  • 深圳梅雨季来临,房屋漏水抓紧修!2026最新房屋漏水维修公司TOP5调研盘点!卫生间免砸砖防水、楼顶外墙、阳光房+地下室渗漏解决方案解析 - 防水百科
  • 终极探索:如何用cursor-free-vip免费解锁Cursor Pro完整功能
  • AI-7D-SATS 开发笔记 04:为什么要做一个面向性能分析的 Agent?
  • 暗黑破坏神2存档编辑器终极指南:从新手到高手的完整实战手册
  • SVGnest终极指南:免费开源材料切割优化工具完全解析
  • Windows 本地运行轻量级 代码仓库 gogs
  • RevSSH反向SSH隧道:无公网IP设备的安全远程运维方案
  • 从安装到排错:手把手解决Linux服务器上Nacos启动失败的十大常见问题
  • 手把手教你用Mind+和Blynk,让手机轻松遥控掌控板(含自建服务器避坑指南)
  • 珠海梅雨季来临,房屋漏水抓紧修!2026最新房屋漏水维修公司TOP5调研盘点!卫生间免砸砖防水、楼顶外墙、阳光房+地下室渗漏解决方案解析 - 防水百科
  • 20251904 2025-2026-2 《网络攻防实践》第八周作业
  • MeloTTS完整指南:如何用开源工具实现专业级多语言语音合成
  • 掌握机器人运动规划核心能力:MoveIt2实战能力图谱
  • 基于通孔元件的主动三分频音频分频器DIY:从原理到实践
  • 如何快速使用SoundCloud音乐下载器:面向新手的完整指南
  • webMAN-MOD技术架构深度解析:PS3多功能管理插件的核心实现与性能优化
  • Horizon高级技巧:邮件分发与Webhook推送功能实战指南
  • 【脑机接口】脑电信号基础 BCI 核心基础术语详细解释(第1弹)