跳到主要内容

基础语句

  • SELECT 查询
  • UPDATE 修改、更新
    • UPDATE SET 修改数据
  • INSERT 新增、插入
    • INSERT INTO 插入数据
  • DELETE 删除
    • DELETE FROM 删除数据

记忆​

text
ALTER:改表
ADD:加字段
DROP:删表、删字段
MODIFY:改字段
RENAME:改名字
COLUMN:字段
TABLE:表
TRUNCATE:清空 (表的所有数据一次性砍掉)

DDL:定义数据库结构​

  • DDL => Data Definition Language => 数据定义语言
  • DDL用于定义和关联数据库的结构
    • 创建数据库、创建表
    • 修改表结构
    • 创建索引

CREATE 创建结构​

  • 创建数据库
  • 创建表
sql
# 创建数据库
CREATE DATABASE shop;

# 创建表
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);

ALTER 修改表结构​

  • alter: 表示改变、修改的意思
    • alter:改变整体结构 (改变表结构)
  • modify:表示修改,对已经存在的数据进行修改
sql
# 修改表结构,添加列
ALTER TABLE users
ADD COLUMN email VARCHAR(100);

# 修改字段类型
ALTER TABLE users
MODIFY COLUMN name VARCHAR(100);

# 删除字段
ALTER TABLE users
DROP COLUMN age;

# 重命名字段
ALTER TABLE users
RENAME COLUMN name TO username;

DROP 删除结构​

  • drop: 表示丢下,放下,在sql中理解为删除
  • 注意如果表进行外键关联,删除表时候,可能会报错
    • MySQL会安全保护机制。设置了外键约束,数据库为了防止产生找不到用户数据的“孤儿订单”,因此阻止了直接删除主表
    • 使用IF EXISTS来避免报错
      • IF EXISTS 表示如果存在,是一个条件保护的语句
      • 如果存在,则就删除表
sql
# 删除表
DROP TABLE users;

# 避免报错
DROP TABLE IF EXISTS orders; -- 先删子表 (先删除依赖 users 的子表)
DROP TABLE IF EXISTS users; -- 再删主表

# 删除字段
ALTer TABLE orders
DROP column created_at;

TRUNCATE 清空表记录​

  • TRUNCATE 会删除表中的所有数据,但保留表结构
  • TRUNCATE 表示为 截断、砍掉、切掉
    • 可以理解为把表的所有数据一次性砍掉
sql
TRUNCATE TABLE users;

DML:操作表中的数据​

  • 新增、修改、删除。

INSERT 新增数据​

sql
# 插入一条数据
INSERT INTO users (name, age, email)
VALUES ('张三', 25, 'zhangsan@example.com');

# 插入多条数据
INSERT INTO users (name, age, email)
VALUES
('李四', 30, 'lisi@example.com'),
('王五', 22, 'wangwu@example.com');

UPDATE 修改数据​

  • 必须注意:如果不写 WHERE,会修改整张表。
sql
# 修改一个字段
UPDATE users
SET age = 26
WHERE id = 1;

# 修改多个字段
UPDATE users
SET
name = '张三丰',
age = 27
WHERE id = 1

DELETE 删除数据​

  • 必须注意:如果不写 WHERE,会删除表所有记录。
sql
# 删除一条数据
DELETE FROM users
WHERE id = 1;

DQL:查询数据​

  • SELECT语句
  • 常配合WHERE指定查询条件
  • 配合ORDER BY来排查
  • 配合GROUP BY来分组
  • 配合JOIN来多表查询, 如内连接、外连接(左外连接、右外连接)