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

49 阅读4分钟

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

目录

[TOC]

概述-数据模型

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