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
相关推荐
ZWZhangYu1 小时前
LangChain 构建向量数据库和检索器
数据库·langchain·easyui
feifeigo1232 小时前
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
数据库·mysql·adb
火龙谷4 小时前
【nosql】有哪些非关系型数据库?
数据库·nosql
焱焱枫5 小时前
Oracle获取执行计划之10046 技术详解
数据库·oracle
qq_392397126 小时前
Redis常用操作
数据库·redis·wpf
一只fish8 小时前
MySQL 8.0 OCP 1Z0-908 题目解析(17)
数据库·mysql
花好月圆春祺夏安8 小时前
基于odoo17的设计模式详解---装饰模式
数据库·python·设计模式
A__tao8 小时前
SQL 转 Java 实体类工具
java·数据库·sql
m0_653031369 小时前
腾讯云认证考试报名 - TDSQL数据库交付运维专家(TCCE PostgreSQL版)
运维·数据库·腾讯云
小马哥编程10 小时前
【iSAQB软件架构】架构决策记录-ADR
数据库·架构·系统架构·设计规范