本文实例讲述了mysql命令行脚本执行操作。分享给大家供大家参考,具体如下:

命令行连接

在工作中主要使用命令操作方式,要求熟练编写

打开终端,运行命令?

mysql -uroot -p

回车后输入密码,当前设置的密码为mysql

连接成功后如下图

mysql命令行执行本地文件 mysql 命令行执行脚本_mysql

退出登录

quit 和 exit

ctrl+d

登录成功后,输入如下命令查看效果

查看版本:select version();

显示当前时间:select now();

修改输入提示符?

prompt python>

\D 完整日期

\U 使用用户

数据库

查看所有数据库?

show databases;

使用数据库?

use 数据库名;

查看当前使用的数据库?

select database();

创建数据库?

create database 数据库名 charset=utf8;

例:?

create database python charset=utf8;

删除数据库?

drop database 数据库名;

例:?

drop database python;

数据表

查看当前数据库中所有表?

show tables;

创建表

auto_increment表示自动增长?

CREATE TABLE table_name(
column1 datatype contrai,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY(oneor more columns)
);

例:创建班级表?

create table classes(
idint unsigned auto_incrementprimary key not null,
name varchar(10)
);

例:创建学生表?

create table students(
idint unsignedprimary key auto_incrementnot null,
name varchar(20)default '',
age tinyint unsigneddefault 0,
heightdecimal(5,2),
gender enum('男','女','人妖','保密'),
cls_idint unsigneddefault 0
)

修改表-添加字段?

alter table 表名add 列名 类型;

例:?

alter table studentsadd birthday datetime;

修改表-修改字段:重命名版?

alter table 表名 change 原名 新名 类型及约束;

例:?

alter table students change birthday birth datetimenot null;

修改表-修改字段:不重命名版?

alter table 表名modify 列名 类型及约束;

例:?

alter table studentsmodify birthdate not null;

修改表-删除字段?

alter table 表名drop 列名;

例:?

alter table studentsdrop birthday;

删除表?

drop table 表名;

例:?

drop table students;

查看表的创建语句?

showcreate table 表名;

例:?

showcreate table classes;

增删改查(curd)

curd的解释: 代表创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)

查询基本使用

查询所有列?

select *from 表名;

例:?

select *from classes;

查询指定列

可以使用as为列或表指定别名?

select 列1,列2,...from 表名;

例:?

select id,name from classes;

增加

格式:INSERT [INTO] tb_name [(col_name,…)] {VALUES | VALUE} ({expr | DEFAULT},…),(…),…

说明:主键列是自动增长,但是在全列插入时需要占位,通常使用0或者 default 或者 null 来占位,插入成功后以实际数据为准

全列插入:值的顺序与表中字段的顺序对应?

insert into 表名values(...)

例:?

insert into studentsvalues(0,'郭靖‘,1,'蒙古','2016-1-2');

部分列插入:值的顺序与给出的列顺序对应?

insert into 表名(列1,...)values(值1,...)

例:?

insert into students(name,hometown,birthday)values('黄蓉','桃花岛','2016-3-2');

上面的语句一次可以向表中插入一行数据,还可以一次性插入多行数据,这样可以减少与数据库的通信

全列多行插入:值的顺序与给出的列顺序对应?

insert into 表名values(...),(...)...;

例:?

insert into classesvalues(0,'python1'),(0,'python2');

?

insert into 表名(列1,...)values(值1,...),(值1,...)...;

例:?

insert into students(name)values('杨康'),('杨过'),('小龙女');

修改

格式: UPDATE tbname SET col1={expr1|DEFAULT} [,col2={expr2|default}]…[where 条件判断]?

update 表名set 列1=值1,列2=值2...where 条件

例:?

update studentsset gender=0,hometown='北京' where id=5;

删除?

DELETE FROM tbname [where 条件判断]

?

delete from 表名where 条件

例:?

delete from studentswhere id=5;

逻辑删除,本质就是修改操作?

update studentsset isdelete=1where id=1;

备份

运行mysqldump命令?

mysqldump –uroot –p 数据库名 > python.sql;

# 按提示输入mysql的密码

恢复

连接mysql,创建新的数据库

退出连接,执行如下命令?

mysql -uroot –p 新数据库名 < python.sql

# 根据提示输入mysql密码