MYSQL中DML、DDL常用语句记录

MYSQL中DML、DDL常用语句记录

DML

在 MySQL 中,DML (Data Manipulation Language) 是一类用于查询和操作数据的 SQL 语句。以下是常用的 DML 语句:

1、SELECT

SELECT 语句用于查询数据库中的数据。语法如下:

复制代码
SELECT column1, column2, ...
FROM table_name
WHERE condition;

其中,column1, column2, ... 是需要查询的列名,可以使用通配符 * (代表所有列)代替。table_name 是要查询的表名。WHERE 子句是可选的,它用于指定查询条件。

2、INSERT

INSERT 语句用于向表中插入新行。语法如下:

复制代码
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

其中,table_name 是要插入数据的表名,column1, column2, ... 是要插入数据的列名,value1, value2, ... 是要插入的数据值。

复制代码
-- 单个
INSERT INTO employees(id, first_name, last_name, gender, hire_date, dept_id)
VALUES (101, 'John', 'Doe', 'M', '2020-01-01', 1);
-- 批量插入
INSERT INTO employees(id, first_name, last_name, gender, hire_date, dept_id)
VALUES (101, 'John', 'Doe', 'M', '2020-01-01', 1),
       (102, 'Jane', 'Doe', 'F', '2020-02-01', 2),
       (200, 'Alex', 'Lee', 'M', '2020-12-01', 3);

-- 使用 INSERT INTO ... SELECT ... 语句插入数据
INSERT INTO employees(id, first_name, last_name, gender, hire_date, dept_id)
SELECT id, first_name, last_name, gender, hire_date, dept_id
FROM temp_employees;

3、UPDATE

UPDATE 语句用于修改表中的数据。语法如下:

复制代码
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

其中,table_name 是要修改数据的表名,column1 = value1, column2 = value2, ... 是要修改的列名和对应的值,WHERE 子句是可选的,它用于指定修改条件。如果没有指定 WHERE 子句,则会更新表中的所有行。

4、DELETE

DELETE 语句用于删除表中的数据。语法如下:

复制代码
DELETE FROM table_name
WHERE condition;

其中,table_name 是要删除数据的表名,WHERE 子句是可选的,它用于指定要删除的行的条件。如果没有指定 WHERE 子句,则会删除表中的所有行。

DDL

在 MySQL 中,DDL (Data Definition Language) 是一类用于定义和管理数据库结构及对象的 SQL 语句。以下是常用的 DDL 语句:

1、CREATE TABLE

CREATE TABLE 语句用于在数据库中创建一个新表。语法如下:

复制代码
CREATE TABLE table_name (
    column1 data_type constraints,
    column2 data_type constraints,
    ...
    table_constraints
);

其中,table_name 是要创建的表名,column1, column2, ... 是要创建的列名和对应的数据类型和约束条件。

2、ALTER TABLE

ALTER TABLE 语句用于修改数据库表的结构。语法如下:

复制代码
ALTER TABLE table_name action;

其中,table_name 是要修改的表名,action 是要执行的操作,包括添加、删除或修改列等。

示例:

复制代码
-- 往user表中增加一个名为address的字段,规定了字段的类型,默认值以及注释,并放在了name字段后面。
ALTER TABLE user ADD COLUMN address varchar(256) DEFAULT '' COMMENT '字段注释' AFTER name;
-- 修改
ALTER TABLE user MODIFY COLUMN address varchar(256) DEFAULT '' COMMENT '字段注释';
-- 删除
ALTER TABLE user DROP COLUMN address;

3、DROP TABLE

DROP TABLE 语句用于删除数据库中的一个或多个表。语法如下:

复制代码
DROP TABLE table_name;

其中,table_name 是要删除的表名。

4、CREATE INDEX

CREATE INDEX 语句用于为数据库表创建一个或多个索引。语法如下:

复制代码
CREATE INDEX index_name
ON table_name (column1, column2, ...);

其中,index_name 是要创建的索引名称,table_name 是要创建索引的表名,(column1, column2, ...) 是要创建索引的列名。

复制代码
CREATE INDEX idx_employee_dept_id ON employees(dept_id);

5、DROP INDEX

DROP INDEX 语句用于删除某个表的指定索引。语法如下:

复制代码
DROP INDEX index_name
ON table_name;

其中,index_name 是要删除的索引名称,table_name 是要删除索引的表名。

复制代码
DROP INDEX idx_employee_dept_id ON employees;

6、TRUNCATE

truncate语句用于快速清空数据表。与 DELETE 语句不同,TRUNCATE 语句将删除表中所有行,但不会删除表本身。

需要注意的是,与 DELETE 不同,TRUNCATE 在删除数据时不记录在日志中,并且不能回滚(UNDO)。另外,必须具有 DROP 权限才能使用 TRUNCATE 命令。并且使用TRUNCATE 之后表的主键是会重新从零开始的。

7、查看字符集和排序规则

复制代码
-- 服务器
show variables like 'character_set_server';
show variables like 'collation_server';
-- 数据库
show variables like 'character_set_database';
show variables like 'collation_database';
-- 表
SHOW FULL COLUMNS FROM table_name;

8、设置字符集和排序规则

复制代码
-- 单独给表设置
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
相关推荐
NCIN EXPE42 分钟前
redis 使用
数据库·redis·缓存
MongoDB 数据平台43 分钟前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
lUie INGA1 小时前
在2023idea中如何创建SpringBoot
java·spring boot·后端
极客on之路1 小时前
mysql explain type 各个字段解释
数据库·mysql
代码雕刻家1 小时前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver
lThE ANDE1 小时前
开启mysql的binlog日志
数据库·mysql
yejqvow121 小时前
CSS如何控制placeholder文字的颜色_使用--placeholder伪元素
jvm·数据库·python
oLLI PILO1 小时前
nacos2.3.0 接入pgsql或其他数据库
数据库
geBR OTTE1 小时前
SpringBoot中整合ONLYOFFICE在线编辑
java·spring boot·后端
m0_743623921 小时前
HTML怎么创建多语言切换器_HTML语言选择下拉结构【指南】
jvm·数据库·python