MySQL命令行脚本
命令行连接
- 打开终端,运行命令 mysql -uroot -p 回车后输入密码
- 退出登录 quit 和 exit 或Ctrl+d
- 查看版本: select version();
- 显示当前时间: select now();
数据库:
- 查看所有数据库 show databases;
- 使用数据库 use 数据库名;
- 查看当前使用的数据库 select database();
- 创建数据库 create database 数据库名 charset=utf8;
- 查看创建数据库 show create database 数据库名;
- 删除数据库 drop database 数据库名;
数据表:
-
查看当前数据库中所有表 show tables;
-
查看表结构 desc 表名;
-
创建表 create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);
- auto_increment表示自动增长
- not null 表示不能为空
- primary key 表示主键
- default 默认值
-
例:创建班级表
create table classes( id int unsigned auto_increment primary key not null, name varchar(10) );
创建学生表
create table students( id int unsigned primary key auto_increment not null, name varchar(20) default '', age tinyint unsigned default 0, height decimal(5,2), gender enum('男','女','保密'), cls_id int unsigned default 0 );
- 修改表-添加字段 alter table 表名 add 列名 类型;
- 修改表-修改字段:重命名版 alter table 表名 change 原名 新名 类型及约束;
- 修改表-修改字段:不重命名版 alter table 表名 modify 列名 类型及约束;
- 修改表-删除字段 alter table 表名 drop 列名;
- 删除表 drop table 表名;
- 查看表的创建语句 show create table 表名;
查询:
-
查询所有列 select * from 表名;
-
查询指定列 select 列1,列2,… from 表名;
-
可以使用as为列或表指定别名
select 字段[as 别名], 字段[as 别名] from 数据表 where 条件
增加:
- 主键列是自动增长,但是在全列插入时需要占位,通常使用0或者 default 或者 null 来占位,插入成功后以实际数据为准
- 全列插入:值的顺序与表中字段的顺序对应 insert into 表名 values(…)
- 部分列插入:值的顺序与给出的列顺序对应 insert into 表名(列1,…) values(值1,…)
- 全列多行插入:值的顺序与给出的列顺序对应 insert into 表名 values(…),(…)…; insert into 表名(列1,…) values(值1,…),(值1,…)…;
修改:
-
update 表名 set 列1=值1,列2=值2... where 条件
删除:
-
delete from 表名 where 条件
-
逻辑删除,本质是修改操作 update students set is_delete=1 where id=1;
-
添加逻辑删除字段 alter table 表名 add is_delete bit default 0;
备份:
- 运行mysqldump命令 mysqldump –uroot –p 数据库名 > python.sql; # 按提示输入mysql的密码
恢复:
- 连接mysql,创建新的数据库
- 退出连接,执行如下命令 mysql -uroot –p 新数据库名 < python.sql # 根据提示输入mysql密码