Skip to content

MySQL 命令

简单介绍了 MySQL 命令,注:SQL 命令不分大小写。

数据库操作

-- 查看所有数据库
show databases;
-- 显示数据库版本
select version();
-- 显示时间
select now();
-- 创建数据库(不指定编码,默认拉丁)
create database 数据库名字 charset=utf8; 
-- 查看已经创建的数据库的过程
show create database 数据库名字;
-- 删除数据库
drop database 数据库名字;
-- 使用数据库
use 数据库名字;
-- 查看当前使用的数据库
select database();

数据表操作

-- 查看当前数据库所有的表
show tables;
-- 创建数据表
-- 约束条件:auto_increment 自动增长;not null 不能为空;primary key 主键;default 默认值
create table 数据表名字 (字段 类型 约束, 字段 类型 约束, ...);
create table students(
    id int unsigned not null auto_increment primary key,
    name varchar(30),
    age tinyint unsigned default 0,
    high decimal(5,2),
    gender enum("男", "女", "保密") default "保密",
    cls_id int unsigned
);
-- 查看创建数据表过程
-- ENGINE=InnoDB(数据库引擎,常用有MyISAM、Innodb等,InnoDB支持事务处理与外键与行级锁)
-- AUTO_INCREMENT=2(下一个数据自动增长的值)
-- CHARSET=utf8(编码是数据库编码)
show create table 数据表名字;
-- 删除数据表
drop table 数据表名字;
-- 修改数据表名字
alter table 表名 rename to 新表名;

数据表结构的修改

-- 修改表-添加字段
alter table 数据表名字 add 列名 类型;
alter table students add birthday date;
-- 修改表-修改字段(不重命名)
alter table 数据表名字 modify 列名 类型约束;
-- 修改表-修改字段(重命名)
alter table 数据表名字 change 原列名 新列名 类型及约束;
-- 修改表-删除字段
alter table 数据表名字 drop 列名;

数据的增删改查

-- 查看表中数据
select * from 数据表名字;
-- 数据添加-全列插入
-- 主键如果设置了auto_increment,在主键字段就可以用0/null/default来使用自动增长的值
-- 对于枚举类型,可以用序号(1,2,3,4,...)来表示各个值
insert into 表名 values (1, 2, ...);
-- 数据添加-部分插入
-- 没有设置值的字段使用默认值
insert into 表名 (列名1, 列名2, ...) values (1, 2, ...);
-- 数据添加-多行插入
insert into 表名 values (1, 2, ...), (1, 2, ...) ...;
insert into 表名 (列名1, 列名2, ...) values (1, 2, ...), (1, 2, ...) ...;

-- 数据修改
update 表名 set 列名1=1,列名2=2,... where 条件;
update students set gender=2 where id=2;

-- 数据删除-物理删除
delete from 表名;  -- 全部删除
delete from 表名 where 条件;
-- 数据删除-逻辑删除
-- 用一个字段来表示数据是否不能使用
alter table students add is_delete bit default 0;
update students set is_delete=1 where id=1;  

-- 数据查询-查询所有列
select * from 表名;
-- 数据查询-指定条件查询
select * from 表名 where 条件;
-- 数据查询-指定列查询
select 列名1,列名2,... from 表名;
-- 数据查询-为列或表指定别名
select 列名 [as 别名] from 表名 [as 别名];

数据备份与还原

在 shell 中用 mysqldump 命令进行数据备份

mysqldump -uroot -p 数据库名 > 备份文件名;
# 例
mysqldump -uroot -pmysql cat > cat_data.sql;

数据还原,首先连接 mysql ,新建一个数据库,如名为 new_cat,然后退出连接,执行如下命令恢复数据库

mysql -uroot -p 新数据库名 < 备份文件名;
# 例
mysql -uroot -pmysql new_cat < cat_data.sql;