MySQL数据库基础 === DDL && DML

目录

概述-数据模型

1、关系型数据库(RDBMS)

2、MySQL数据库

通用语法及分类

通用语法

DDL(数据定义语言)

数据库操作

表操作

DML(数据操作语言)

添加数据

更新和删除数据


概述-数据模型

1、关系型数据库(RDBMS)

概念

建立在关系模型基础上,由多张相互连接的二维表组成的数据库

特点

  • 使用表存储结构,格式统一,便于维护
  • 使用SQL语言操作,标准统一,使用方便

2、MySQL数据库

数据模型

客户端通过SQL语句连接DBMS(数据库管理系统)来创建数据库或者在数据库里面创建表

  • 一个数据服务器当中可以创建多个数据库
  • 一个数据库当中可以创建多个表
  • 一个表当中可以存储多个记录

通用语法及分类

通用语法

1、SQL语句可以单行或者多行书写,以分号结尾

2、SQL语句可以使用空格/缩进来增强语句的可读性

3、MySQL数据库的SQL语句不区分大小写,关键字建议使用大写

4、注释:

单行注释:-- 注释内容 或 # 注释内容

多行注释:/*注释内容*/

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

DDL(数据定义语言)

数据定义语言

数据库操作

  1. 查询所有数据库:SHOW DATABASES;

  2. 查询当前数据库: SELECT DATABASE();

  3. 删除数据库: DROP DATABASE [ IF EXISTS ] 数据库名;

  4. 使用数据库: USE 数据库名;

  5. 创建数据库:CREATE DATABASE [ IF NOT EXISTS ] 数据库名 [ DEFAULT CHARSET 字符集] [COLLATE 排序规则 ];

    查询所有数据库

    SHOW DATABASES

    创建数据库

    CREATE DATABASE test

    没有在创建,有则忽略

    CREATE DATABASE IF NOT EXISTS test

    指定字符集

    CREATE DATABASE test2 DEFAULT CHARSET utf8mb4

    删除数据库

    DROP DATABASE test

    没有在删除,有则忽略

    DROP DATABASE IF EXISTS test

    使用数据库

    USE test2

    查询使用的数据库

    SELECT DATABASE()

注意事项

  • UTF8字符集长度为3字节,有些符号占4字节,所以推荐用utf8mb4字符集

表操作

  1. 查询当前数据库所有表: SHOW TABLES;
  2. 查询表结构: DESC 表名;
  3. 查询指定表的建表语句: SHOW CREATE TABLE 表名;
  4. 创建表:
复制代码
CREATE TABLE 表名(
	字段1 字段1类型 [COMMENT 字段1注释],
	字段2 字段2类型 [COMMENT 字段2注释],
	字段3 字段3类型 [COMMENT 字段3注释],
	...
	字段n 字段n类型 [COMMENT 字段n注释]
)[ COMMENT 表注释 ];
复制代码
# 创建表
CREATE TABLE users(
id INT COMMENT "编号",
name VARCHAR(50) COMMENT "姓名",
age INT  COMMENT  "年龄",
gender VARCHAR(1) COMMENT "性别"
) COMMENT "用户表";
# 查询表结构
DESC  users
# 查询指定表的建表语句:
SHOW CREATE TABLE users

  • 添加字段:ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];

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

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

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

  • 修改表名:ALTER TABLE 表名 RENAME TO 新表名

  • 删除表:DROP TABLE [IF EXISTS] 表名;

  • 删除表,并重新创建该表: TRUNCATE TABLE 表名;

    添加字段

    ALTER TABLE users ADD nickname VARCHAR(20) COMMENT "昵称"

    修改字段

    ALTER TABLE users CHANGE nickname username VARCHAR(30) COMMENT "用户名"

    修改字段类型

    ALTER TABLE users MODIFY username VARCHAR(50)

    删除字段

    ALTER TABLE users DROP username

    修改表名

    ALTER TABLE users RENAME user

    删除表

    DROP TABLE IF EXISTS user

DML(数据操作语言)

添加数据

指定字段:
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);

全部字段:
INSERT INTO 表名 VALUES (值1, 值2, ...);

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

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

注意事项

  • 字符串和日期类型数据应该包含在引号中
  • 插入的数据大小应该在字段的规定范围内

更新和删除数据

修改数据:
UPDATE 表名 SET 字段名1 = 值1, 字段名2 = 值2, ... [ WHERE 条件 ];

删除数据:
DELETE FROM 表名 [ WHERE 条件 ];

复制代码
# 插入指定字段 (单条)
INSERT INTO users(id,name,age,gender) VALUES (1, "张三","18","男")
# 插入全部字段  (单条)
INSERT INTO users VALUES(2, "小明","20","女")
# 插入指定字段 (多条)
INSERT INTO users(id,name,age,gender) VALUES (3, "王麻子","28","男"),(4, "小五","38","男")
# 插入全部字段  (多条)
INSERT INTO users VALUES(6, "刘刘","20","女"),(7, "小七","20","女")

# 修改数据
UPDATE users SET name = "大王" WHERE  id = 1
UPDATE users SET name = "小王",gender = "男" WHERE  id = 2
UPDATE users set age = 18

# 删除数据
DELETE FROM users WHERE id = 7
DELETE FROM users
相关推荐
2601_9622186111 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
李高钢11 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
yuzhiboyouye13 小时前
那xml对应的sql语法,列举一下
xml·数据库·sql
. . . . .13 小时前
乐观锁 vs 悲观锁
数据库·sql
Leo.yuan14 小时前
2026年多数据库实时同步的四种架构方案及工具推荐
数据库·架构
hasty14 小时前
Origin 校验不是身份认证:MySQL MCP Server 漏洞给 AI 平台的警告
数据库·mysql·安全
梦想平凡15 小时前
百游棋牌源代码开发搭建教程(五):房间创建、座位分配与请求幂等实现
前端·javascript·数据库·源代码管理
凤山老林15 小时前
Spring Boot 整合 Flowable 的企业级落地指南
数据库·spring boot·后端·flowable·工作流
企业数字化笔记15 小时前
AI写的系统出现504怎么办?接口超时和数据库慢查询排查
数据库·后端
2601_9622186116 小时前
万象生鲜系统订单全生命周期状态同步技术实现业务可视
大数据·数据库·人工智能·python·算法