MySQL 是一种广泛使用的关系型数据库管理系统,支持多种操作语言来管理和操作数据库。本文将详细介绍 MySQL 中的各种操作语言及其常用命令。
1. 数据定义语言 (DDL)
DDL 用于定义和管理数据库对象,如数据库、表、索引等。
-
创建数据库
CREATE DATABASE test3 DEFAULT CHARACTER SET UTF8;
这条命令创建了一个名为
test3
的数据库,并将其默认字符集设置为 UTF-8。 -
查看数据库创建信息
SHOW CREATE DATABASE test3;
该命令显示数据库
test3
的创建信息,包括字符集等。 -
修改数据库字符集
ALTER DATABASE test2 DEFAULT CHARACTER SET UTF8;
该命令将数据库
test2
的默认字符集修改为 UTF-8。 -
创建表
CREATE TABLE articles ( title VARCHAR(100), content TEXT, publish_time DATETIME );
该命令创建了一个名为
articles
的表,包含title
、content
和publish_time
三个字段。 -
修改表结构
-
增加列
ALTER TABLE articles ADD phone CHAR(11);
该命令在
articles
表中增加了一个名为phone
的列,类型为CHAR(11)
。 -
修改列
ALTER TABLE articles CHANGE phone mobile CHAR(11);
该命令将
articles
表中的phone
列更名为mobile
,并保持类型为CHAR(11)
。 -
删除列
ALTER TABLE articles DROP COLUMN mobile;
该命令删除了
articles
表中的mobile
列。 -
修改列属性
ALTER TABLE articles MODIFY title VARCHAR(100) NOT NULL;
该命令将
articles
表中的title
列修改为VARCHAR(100)
类型,并设置为不允许为空。 -
重命名表
ALTER TABLE articles RENAME TO article;
该命令将
articles
表重命名为article
。
-
2. 数据操作语言 (DML)
DML 用于对数据库中的数据进行增删改操作。
-
插入数据
INSERT INTO articles (title, content, publish_time) VALUES ('MySQL Guide', 'This is a guide to MySQL.', NOW());
该命令向
articles
表中插入一条新记录。 -
更新数据
UPDATE articles SET content = 'Updated content' WHERE title = 'MySQL Guide';
该命令将
articles
表中title
为MySQL Guide
的记录的content
字段更新为Updated content
。 -
删除数据
DELETE FROM articles WHERE title = 'MySQL Guide';
该命令删除
articles
表中title
为MySQL Guide
的记录。
3. 数据查询语言 (DQL)
DQL 用于从数据库中查询数据。
-
查询数据
SELECT * FROM articles;
该命令查询
articles
表中的所有记录。 -
条件查询
SELECT title, publish_time FROM articles WHERE publish_time > '2023-01-01';
该命令查询
articles
表中publish_time
大于2023-01-01
的记录,并返回title
和publish_time
字段。
4. 数据控制语言 (DCL)
DCL 用于控制数据库的访问权限。
-
授权
GRANT SELECT, INSERT ON test2.articles TO 'user'@'localhost';
该命令授予用户
user
在localhost
上对test2
数据库中的articles
表的SELECT
和INSERT
权限。 -
撤销权限
REVOKE INSERT ON test2.articles FROM 'user'@'localhost';
该命令撤销用户
user
在localhost
上对test2
数据库中的articles
表的INSERT
权限。
5. 事务控制语言 (TCL)
TCL 用于管理数据库中的事务。
-
开启事务
START TRANSACTION;
该命令开启一个新的事务。
-
提交事务
COMMIT;
该命令提交当前事务,使所有更改生效。
-
回滚事务
ROLLBACK;
该命令回滚当前事务,撤销所有未提交的更改。
6. 数据类型
正确选择数据类型可以减少存储空间、提高处理效率,并防止无效数据的插入。
-
整数类型
-
TINYINT
:1字节,范围 0-255 或 -128-127。 -
SMALLINT
:2字节。 -
MEDIUMINT
:3字节。 -
INT
:4字节。 -
BIGINT
:8字节。
-
-
浮点类型
-
FLOAT
:单精度浮点数,适合较小精度的数值。 -
DOUBLE
:双精度浮点数,适合高精度的数值,如金额。
-
-
字符串类型
-
CHAR(N)
:固定长度字符串,适合存储固定长度的数据,如手机号、身份证号。 -
VARCHAR(N)
:可变长度字符串,适合存储长度不固定的数据。 -
TEXT
:用于存储大块文本。
-
-
日期时间类型
-
DATE
:仅存储日期。 -
TIME
:仅存储时间。 -
DATETIME
:存储日期和时间。 -
TIMESTAMP
:存储时间戳。
-
7. 枚举和集合类型
-
枚举类型 (ENUM)
ENUM('男', '女')
该类型用于存储一组预定义的值,如性别。
8. 其他操作
-
查看表结构
DESC articles;
该命令显示
articles
表的结构信息,包括字段名、类型、是否允许为空等。 -
查看表创建信息
SHOW CREATE TABLE articles;
该命令显示
articles
表的创建信息,包括字段定义、字符集等。