MySQL常用SQL语句(持续更新中)

文章目录

收录一些经常用到的sql

数据库相关

建数据库

sql 复制代码
CREATE DATABASE [IF NOT EXISTS] <数据库名> [[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>];

例如:

CREATE DATABASE IF NOT EXISTS test_db DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;

表相关

建表

sql 复制代码
DROP TABLE IF EXISTS `test_table`;
CREATE TABLE `test_table`(
    id int(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
    name varchar(50),
    length decimal(5, 2),
    UNIQUE INDEX length(id ASC)
) ENGINE = InnoDB DEFAULT CHARSET=utf8;

索引相关

添加索引

添加PRIMARY KEY主键索引

sql 复制代码
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 

添加UNIQUE唯一索引

sql 复制代码
ALTER TABLE `table_name` ADD UNIQUE (`column` ) 

添加普通索引

sql 复制代码
ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 

添加FULLTEXT全文索引

sql 复制代码
ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 

添加多列索引

sql 复制代码
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

编码相关

查看数据库编码。

sql 复制代码
SHOW variables LIKE '%char%';

查看表编码

sql 复制代码
SHOW CREATE TABLE <表名>;

查看字段编码

sql 复制代码
mysql> SHOW FULL COLUMNS FROM t_user;
+--------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+-----------+
| Field  | Type        | Collation       | Null | Key | Default | Extra          | Privileges                      | Comment   |
+--------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+-----------+
| ID     | int         | NULL            | NO   | PRI | NULL    | auto_increment | select,insert,update,references | 主键      |
| NAME   | varchar(64) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references | 名字      |
| GENDER | varchar(5)  | utf8_general_ci | YES  | MUL | NULL    |                | select,insert,update,references | 性别      |
| MOBILE | varchar(11) | utf8_general_ci | YES  | MUL | NULL    |                | select,insert,update,references | 手机号    |
+--------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+-----------+
4 rows in set (0.00 sec)

修改编码格式

修改数据库编码格式

alter database <数据库名> character set utf8mb4;

例:alter database db_user character set utf8mb4;

修改表编码

alter table <表名> character set utf8mb4;

例:alter table user character set utf8mb4;

修改字段编码

sql 复制代码
ALTER TABLE <表名> MODIFY COLUMN <字段名> <字段类型> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
例:ALTER TABLE comment MODIFY COLUMN content VARCHAR(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

系统变量相关

查询数据目录:SHOW VARIABLES LIKE 'datadir';

相关推荐
Zan4 小时前
SQLite + SQLx 实战:为什么已经发布的数据库迁移文件,绝对不能再修改?
数据库·后端·面试
这个DBA有点耶5 小时前
数据同步的三个工程底线:DDL同步、断点续传、一致性校验——开源CDC的边界与KFS的路径
数据库·dba·代码规范
aiks_yuan6 小时前
MySQL GROUP BY 很慢怎么优化:加了索引反而从 1 秒变 7 秒,Using temporary 该不该消(MySQL 8.2 实测 400 万行)
mysql
SelectDB6 小时前
列式存储为什么适合分析类负载?原理、限制与日志场景应用
数据库
数据库小学妹7 小时前
MySQL大字段治理:行溢出机制、覆盖索引与拆表
数据库·mysql·性能优化
爱吃奥利奥_wen7 小时前
SQL Server 基础语法详解:从建库建表到约束与增删改查
服务器·数据库·oracle
这个DBA有点耶8 小时前
MySQL 8.0不可见索引:删索引怕出事,不删又拖慢写入——中间态怎么用?
数据库·mysql·代码规范
测试界的小码农10 小时前
【图数据库实战进阶(01):从零认识 Neo4j,搭建第一个图数据库项目】
数据库·neo4j
x_SpiderMan10 小时前
搭建Oracle RAC 集群
数据库·oracle