以下命令都是在Linux中使用MySQL指令实现的
文章目录
连接服务器
mysql -uroot -p
mysql -u root -p
完整的连接方式
mysql -h 127.0.0.1 -P 3306 -u root -p
注意
如果没有写 -h 127.0.0.1 默认是连接本地
如果没有写 -P 3306 默认是连接3306端口号
创建数据库(用户)
- 说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_general_ ci
- 创建一个使用utf8字符集的 db2 数据库
create database db2 charset=utf8;
- 创建一个使用utf字符集,并带校对规则的 db3 数据库。
create database db3 charset=utf8 collate utf8_general_ci;
- 创建数据库的一般格式
create database [数据库名];
字符集和校验规则
查看系统默认字符集以及校验规则
show variables like 'character_set_database';
show variables like 'collation_database';
查看数据库支持的字符集
show charset;
- 字符集主要指的是控制用什么语言。比如utf8就可以使用中文。
查看数据库支持的字符集校验规则
show collation;
校验规则对数据库的影响
- 创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]
create database test1 collate utf8_general_ci;
- 创建person测试表往其中插入几条数据(包括同意字母的大小写)后,通过select语句查看大小写中的其中一个,结果却出现两个(一个大写的,一个小写的)
- 创建一个数据库,校验规则使用utf8_ bin[区分大小写]
create database test2 collate utf8_bin;
- 创建person测试表往其中插入几条数据(包括同意字母的大小写)后,通过select语句查看大小写中的其中一个,查询结果只显示你所查找的字母
操作数据库
查看数据库
show databases;
显示创建语句
show create database 数据库名;
修改数据库
说明:
对数据库的修改主要指的是修改数据库的字符集,校验规则
- 语法
ALTER DATABASE db_name
- 如下例
alter database mytest charset=gbk;
删除数据库
DROP DATABASE [IF EXISTS] db_ name;
- 执行删除之后的结果:
- 数据库内部看不到对应的数据库
- 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
注意:不要随意删除数据库
进入该数据库
use jack;(此处的";" 可以省略)
数据库的恢复与备份
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
注意
如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。
- 示例
- 示例:将mytest库备份到文件(退出连接)
mysqldump -P3306 -u root -p123456 -B mytest > ./mytest.sql
这时,可以打开看看 mytest.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中
还原数据库
mysql> source D:/mysql-5.7.22/mytest.sql;
创建表格
create table tablename(表名)(
变量名 变量类型 (索引类型)
);
注意
注意在定义变量的过程中,在变量列表中的最后一个变量的不需要使用 “,” 进行分割;
- 如下例
create table student(
id varchar(20) primary key,
name varchar(20)
);
客户端、服务器、数据库和表之间的关系图
向表中插入数据
- 基本的命令格式
insert into 表名(项目) values (项目内容);
注意
如果在表名后面没有说明插入项目有哪些,则默认为你要对表中一行的所有内容都要进行插入.
- 如下例
insert into student(id) values(1);
注意
若在指明插入项目的前提下,你向继续往表中插入后面项目的内容,会提示错误
- 扩展
- 如果想依次插入多行数据
insert into student values (1,"jack"),(2,"may);
- 如图
- 其中
select * from student
意为查看表中所有数据;