数据库操作篇
命令 | 解释 |
---|---|
mysql -u <username> -p -P <port> | 登录 MySQL 数据库 |
mysql -h <ip_address> -P <port> -u <username> -p<password> | 远程登录数据库 |
show databases | 查看所有数据库 |
use <database_name> | 选择数据库并使用 |
drop database <database_name> | 删除数据库 |
show create schema <database_name> | 显示创建数据库语句 |
create schema <schema_name> default character set utf8; | 创建数据库 |
表操作篇
命令 | 解释 |
---|---|
show tables | 查看所有数据表 |
desc <table_name> | 查看表结构 |
show create table <table_name> | 查看表定义 |
show create table <table_name> \G | 查看表定义(详细) |
drop table <table_name> | 删除表 |
alter table <table_name> modify <column_name> <data_type> | 修改表字段 |
alter table <table_name> add column <column_name> <data_type> | 添加表字段 |
alter table <table_name> drop column <column_name> | 删除表字段 |
alter table <table_name> change <column_name> <new_column_name> <data_type> | 字段改名 |
alter table <table_name> rename <new_table_name> | 修改表名 |
索引操作篇
命令 | 解释 |
---|---|
show index from <table_name> | 查看表索引 |
repair table <table_name> quick | 重建索引命令 |
alter table <table_name> add index <index_name> (column list) | 创建联合索引 |
alter table <table_name> add unique <index_name> (column list) | 创建普通索引 |
alter table <table_name> add primary key <index_name> (column list) | 创建主键索引 |
explain + <sql> | 分析 sql 是否语句是否走上索引 |
数据操纵语句 DML 篇
插入记录
命令 | 解释 |
---|---|
insert into <table_name> (<column_name1>,<column_name2>,…) values (<value1>,<value2>,…) | 指定名称插入 |
insert into <table_name> values (<value1>,<value2>,…) | 不指定名称插入 |
insert into <table_name> values(<value1>,<value11>…),(<value2>,<value22>…) | 批量插入数据 |
修改记录
命令 | 解释 |
---|---|
update <table_name> set <column_name> = <value>, <column_name> = <value>,… where <column_name>=<value> … | 修改记录 |
删除记录
命令 | 解释 |
---|---|
delete from <table_name> where <column_name> = <value> … | 删除记录 |
查询记录
命令 | 解释 |
---|---|
select * from <table_name> | 查询所有记录 |
select distinct <column_name> from <table_name> | 查询不重复的记录 |
select * from <table_name> where <column_name> = <value> and <column_name> < <value> | 条件查询 |
select * from <table_name> order by <column_name> desc limit 100 | 排序和限制 |
select * from <table_name> order by <column_name> desc limit 0,10 | 分页查询(查询从第0条记录开始10条) |
select <column_name>,count(1) from <table_name> group by <column_name> having count(1) > 1 | 聚合 |
select * from <table_name1> t1 left join <table_name2> t2 on t1.<column_name> = t2.<column_name> | 连接查询 |
select * from <table_name1> where <column_name> in (select column_name from <table_name2>) | 子查询 |
<select-sql> union <select-sql> | 记录联合 |
数据控制语句 DCL 篇
权限相关
命令 | 解释 |
---|---|
grant select,insert on test.* to ‘test‘@’localhost’ identified by ‘123’ | 授予操作权限(将 test 数据库中所有表的 select 和 insert 权限授予 test 用户) |
show grants for ‘test‘@’localhost’ | 查看账号权限 |
revoke insert on test.* from ‘test‘@’localhost’ | 收回操作权限 |
grant all privileges on . to ‘test‘@’localhost’ | 授予所有数据库的所有权限 |
grant all privileges on . to ‘test‘@’localhost’ with grant option | 授予所有数据库的所有权限(包括 grant) |
grant super,process,file on . to ‘test‘@’localhost’ | 授予 SUPER PROCESS FILE 权限(系统权限不能指定数据库) |
grant usage on . to ‘test‘@’localhost’ | 只授予登录权限 |
帐号相关
命令 | 解释 |
---|---|
drop user ‘test‘@’localhost’ | 删除账号 |
set password = password(‘123’) | 修改自己的密码 |
set password for ‘test‘@’localhost’ = password(‘123’) | 管理员修改他人密码 |
数据导入导出操作篇
命令 | 解释 |
---|---|
source db.sql | 执行 .sql 脚本 |
mysqldump -h <host> -u<user_name> -p <database_name> > dump.sql | dump 整个数据库的表结构和数据 |
mysqldump -h <host> -u<user_name> -p <database_name> <table_name> > dump.sql | dump 单个数据库表结构和数据 |
mysqldump -h <host> -u<user_name> -p -d <database_name> > dump.sql | dump 整个数据库的表结构 |
mysqldump -h <host> -u<user_name> -p -d <database_name> <table_name> > dump.sql | dump 单个数据库表结构 |
mysqldump -h <host> -u<user_name> -p -t <database_name> > dump.sql | dump 整个数据库的数据,不添加 create table |
mysql -u<user_name> -p<password> -h<host> -P<port> -D <database_name> –default-character-set=utf8 -e “select * from custom where com_uid = ‘001’” > test.csv | 将数据库中的数据导出到 excel 文件中 user_name = 数据库用户名 password = 数据库密码 host = 主机名称 db_name = 数据库名称 |
mysqldump -u<user_name> -p<password> -h<host> -P <port> <database_name> <table_name> –where=”com_uid=’001’” > /Users/dump.sql | 将数据库中的数据 dump 到 sql 文件中 user_name = 数据库用户名 password = 数据库密码 host = 主机名称 db_name = 数据库名称 table_name = 表名 |
其它操作篇
字符集相关
命令 | 解释 |
---|---|
show variables like ‘character%’ | 查看字符集 |
create database <database_name> character set utf8 | 创建数据库时指定字符集 |
时区相关
命令 | 解释 |
---|---|
show variables like “%time_zone%” | 查看当前时区(UTC 为世界统一时间,中国为 UTC+8) |
set global time_zone = ‘+8:00’ | 修改 mysql 全局时区为北京时间,即我们所在的东8区 |
set time_zone = ‘+8:00’ | 修改当前会话时区 |
flush privileges | 立即生效 |