基础语句
- SELECT 查询
- UPDATE 修改、更新
- UPDATE SET 修改数据
- INSERT 新增、插入
- INSERT INTO 插入数据
- DELETE 删除
- DELETE FROM 删除数据
记忆
ALTER:改表
ADD:加字段
DROP:删表、删字段
MODIFY:改字段
RENAME:改名字
COLUMN:字段
TABLE:表
TRUNCATE:清空 (表的所有数据一次性砍掉)
DDL:定义数据库结构
- DDL => Data Definition Language => 数据定义语言
- DDL用于定义和关联数据库的结构
- 创建数据库、创建表
- 修改表结构
- 创建索引
CREATE 创建结构
- 创建数据库
- 创建表
# 创建数据库
CREATE DATABASE shop;
# 创建表
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
ALTER 修改表结构
- alter: 表示改变、修改的意思
- alter:改变整体结构 (改变表结构)
- modify:表示修改,对已经存在的数据进行修改
# 修改表结构,添加列
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 表示如果存在,是一个条件保护的语句
- 如果存在,则就删除表
# 删除表
DROP TABLE users;
# 避免报错
DROP TABLE IF EXISTS orders; -- 先删子表 (先删除依赖 users 的子表)
DROP TABLE IF EXISTS users; -- 再删主表
# 删除字段
ALTer TABLE orders
DROP column created_at;
TRUNCATE 清空表记录
TRUNCATE会删除表中的所有数据,但保留表结构TRUNCATE表示为 截断、砍掉、切掉- 可以理解为把表的所有数据一次性砍掉
TRUNCATE TABLE users;
DML:操作表中的数据
- 新增、修改、删除。
INSERT 新增数据
# 插入一条数据
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,会修改整张表。
# 修改一个字段
UPDATE users
SET age = 26
WHERE id = 1;
# 修改多个字段
UPDATE users
SET
name = '张三丰',
age = 27
WHERE id = 1
DELETE 删除数据
- 必须注意:如果不写
WHERE,会删除表所有记录。
# 删除一条数据
DELETE FROM users
WHERE id = 1;
DQL:查询数据
- SELECT语句
- 常配合WHERE指定查询条件
- 配合ORDER BY来排查
- 配合GROUP BY来分组
- 配合JOIN来多表查询, 如内连接、外连接(左外连接、右外连接)