一.库的操作
1.基本操作
创建数据库
create database 数据库名称;
查看数据库
show databases;
删除数据库
drop database 数据库名称;
执行删除之后的结果:
所以不要随意删除数据库。
使用数据库
use 数据库名称;
查看当前所处数据库
select database();
修改数据库
alter database 数据库名称 新字符集 新校验规则;
查看创建数据库的详细信息
show create database 库名称;
能够查看当时创建该数据库时所编写的语句的信息。
2.数据库编码
创建数据库时,有两个编码集:
数据库无论对数据采用任何操作,都必须保证操作和编码必须是编码一致的。
查看系统默认字符集以及校验规则
show variables like ‘character_set_database’;
show variables like ‘collation_database’****;
查看数据库支持的字符集
show charset;
字符集主要是控制用什么语言。比如utf8就可以使用中文。
查看数据库支持的字符集校验规则
show collation;
创建一个使用utf字符集,并带校对规则的数据库
create database db3 charset=utf8 collate utf8_general_ci;
不同的校验码规则,会影响数据库的数据读取,例如:
校验规则使用utf8_ general_ ci,不会区分数据的大小写
校验规则使用utf8_ bin,会区分数据的****大小写
3.备份与恢复
备份
这里的路径,最终要是一个以“.sql”为后缀的文件。
打开.sql 文件,会发现备份实际上把整个创建数据库,建表,导入数据的语句都装载这个文件中。
还原
source 数据库备份存储的文件路径**;**
还原要在MySQL服务中操作。
备份的不是整个数据库,而是其中的一张表
同时备份多个数据库
如果备份一个数据库时,没有带上**-B****参数**,在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。
4.查看库连接状态
show processlist
可以查看当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。
二.表的操作
1.基本操作
创建表
create table 表名称(
列名称 列类型 comment ‘列的描述’,
…
)character set 字符集 collate 校验规则 engine 存储引擎;
列名可以有很多个,字符集和校验规则如果没有指定,则保持与所在数据库一致。comment也可以省略。
查看表列表
show tables;
查看表结构
desc 表名称;
查看创建表的详细信息
show create table 表名称;
能够查看当时创建表的具体语句信息。
表插入数据
insert into 表名称 (列名称…) values (列数据…);
可以仅给指定的列添加数据,如果不指定特定的列,则默认表示为所有的列添加数据。
修改表名称
alter table 表名称 rename to 新名称;
删除表
drop table 表名称;
表添加新列
alter table 表名称 add 列名 列类型 comment ‘列的描述’ after 列名称;
after表示要将新列添加在那一列的后边,如果不使用,则默认添加为最后一列。
修改列类型
alter table 表名称 modify 列名称 新类型;
删除列
alter table 表名称 drop 列名称;
修改列名称
alter table 表名称 change 列原名称 列新名称 列类型;
修改列名称需要给出完整的列定义。
三.视图
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。
创建视图:
create view 视图名 as select语句;
删除视图:
drop view 视图名;
视图规则:
- 与表一样,必须唯一命名(不能出现同名视图或表名)
- 创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响
- 视图不能添加索引,也不能有关联的触发器或者默认值
- 视图可以提高安全性,必须具有足够的访问权限
- order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图 中的 order by 将被覆盖
- 视图可以和表一起使用
视图的作用主要是将一张表中常用的若干字段提取出来作为单独的一张虚拟表,以方便读取数据。