MySQL
sh
mysql -h 127.0.0.1 -P 3306 -u root -p
1 SQL
分类 | 全称 | 说明 |
---|---|---|
DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库、表、字段) |
DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |
1.1 DDL
1.1.1 数据库操作
- 查询
sql
-- 查询所有数据库(方法一)
SHOW DATABASES;
-- 查询所有数据库(方法二)
SHOW SCHEMAS;
-- 查询当前数据库
SELECT DATABASE();
- 创建
sql
CREATE DATABASE IF NOT EXISTS dbname
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_0900_ai_ci;
- 删除
sql
DROP DATABASE IF EXISTS dbname;
- 使用
sql
USE dbname;
1.1.2 表操作
- 查询当前数据库所有表
sql
SHOW TABLES;
- 查询表结构
sql
DESC table_name;
- 查询指定表的建表语句
sql
SHOW CREATE TABLE table_name;
- 创建
sql
-- CREATE TABLE [IF NOT EXISTS] 表名 (
-- 字段名1 字段类型1 [COMMENT "字段注释"],
-- 字段名2 字段类型2 [COMMENT "字段注释"],
-- 字段名3 字段类型3 [COMMENT "字段注释"],
-- ...
-- 字段名n 字段类型n [COMMENT "字段注释"]
-- ) [COMMENT "表注释"];
CREATE TABLE IF NOT EXISTS tb_user (
`id` INT COMMENT "编号",
`name` VARCHAR(50) COMMENT "姓名",
`age` TINYINT UNSIGNED COMMENT "年龄",
`gender` CHAR(1) COMMENT "性别"
) COMMENT "用户表";
- 添加字段
sql
-- ALTER TABLE 表名 ADD 字段名 类型 [COMMENT "注释"] [约束];
ALTER TABLE tb_user ADD `nickname` VARCHAR(20) COMMENT "昵称";
- 修改数据类型
sql
-- ALTER TABLE 表名 MODIFY 字段名 数据类型;
ALTER TABLE `tb_user` MODIFY `nickname` VARCHAR(32);
- 修改字段名和字段类型
sql
-- ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型 [COMMENT "注释"] [约束];
ALTER TABLE `tb_user` CHANGE `nickname` `nick` VARCHAR(30) COMMENT "用户昵称";
- 删除字段
sql
-- ALTER TABLE 表名 DROP 字段名;
ALTER TABLE `tb_user` DROP `nick`;
- 修改表名
sql
-- ALTER TABLE 表名 RENAME TO 新表名;
ALTER TABLE `tb_user` RENAME TO `tbl_user`;
- 删除表
sql
-- DROP TABLE [IF EXISTS] 表名;
DROP TABLE IF EXISTS `tbl_user`;
- 删除指定表,并重新创建该表
sql
-- TRUNCATE TABLE 表名;
TRUNCATE TABLE `tbl_user`;
1.1.3 数据类型
数值类型:
类型 | 大小 |
---|---|
TINYINT | 1 byte |
SMALLINT | 2 bytes |
MEDIUMINT | 3 bytes |
INT 或 INTEGER | 4 byte |
BIGINT | 8 byte |
FLOAT | 4 byte |
DOUBLE | 8 byte |
DECIMAL |
字符串类型:CHAR
、VARCHAR
、TINYBLOB
、TINYTEXT
、BLOB
、TEXT
、MEDIUMBLOB
、MEDIUMTEXT
、LONGBLOB
、LONGTEXT
日期类型:
类型 | 大小 | 格式 |
---|---|---|
DATE | 3 bytes | YYYY-MM-DD |
TIME | 3 bytes | HH:MM:SS |
YEAR | 1 byte | YYYY |
DATETIME | 8 bytes | YYYY-MM-DD HH:MM:SS |
TIMESTAMP | 4 bytes | YYYY-MM-DD HH:MM:SS |
1.2 DML
1.2.1 添加数据
- 给指定字段添加数据
sql
-- INSERT INTO 表名(字段1, 字段2, ...) VALUES (值1, 值2, ...);
INSERT INTO `tb_employee` (`id`, `workno`, `name`, `gender`, `age`, `idcard`, `entrydate`)
VALUES (1, "1", "zhh", "男", 10, "12345678901234567X", "2001-03-16");
- 给全部字段添加数据
sql
-- INSERT INTO 表名 VALUES (值1, 值2, ...);
INSERT INTO `tb_employee`
VALUES (2, "2", "zs", "男", 9, "123456789012345678", "2000-01-02");
- 批量添加数据
sql
-- INSERT INTO 表名(字段1, 字段2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...);
-- INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
INSERT INTO `tb_employee`
VALUES (3, "3", "ls", "女", 11, "123456789012345677", "2000-01-03"),
(4, "4", "ww", "男", 44, "123456789012345674", "2004-04-04");
- 修改数据
sql
-- UPDATE 表名 SET 字段名1=值1, 字段名2=值2, ... [WHERE 条件];
UPDATE `tb_employee`
SET `name` = "Howard"
WHERE `id` = 1;
- 删除数据
sql
-- DELETE FROM 表名 [WHERE 条件];
DELETE
FROM `tb_employee`
WHERE `id` = 2;