SQL基本操作——库操作:对数据库的增删改查
一、新增数据库(创建)
基本语法:create database 数据库名字 [库选项];
库选项用来约束数据库,分为两个选项:1.字符集设定:charset/character set 具体字符集(数据存储的编码格式) 常用的字符集:GBK和utf8(utf8中间不能加中划线或者下划线)
2.校对集设定:collate 具体校对集(数据比较的规则)
创建一个扩展名为sql的文件,比如sql_2018_0503.sql(将其内容复制到Mysql命令窗口中)
-- sql_2018_0503.sql内容: -- 双中划线+空格:注释(单行注释),也可以使用#号 # 创建数据库 create database mydatabase charset utf8;-- 创建一个名为mydatabase的数据库
其中:数据库名字不能用关键字(已经被使用的字符)或者保留字(将来可能会用到的)
# 创建关键字数据库(出错) create database database charset utf8;-- 创建一个名为database的数据库
如果非要使用关键字或者保留字,name必须使用两个反引号(esc键下面的键在英文状态下的输出:`)
# 使用反引号 create database `database` charset utf8;
使用中文数据库是可以的,但是有前提条件:保证服务器能够识别(建议不用)
-- 创建中文数据库(直接创建是错误的,无论加不加反引号),本身不需要加反引号 create database 中国 charset utf8; create database `中国` charset utf8; -- 解决方法:告诉服务器当前中文的字符集是什么(查看方法:命令窗口左上角->属性->选项) set names gbk; create database 中国 charset utf8;-- 没有必要加反引号
当创建数据库的SQL语句执行之后,发生了什么?
- .在数据库系统中,增加了对应的数据库信息
- 会在保存数据的文件夹下:Data目录,创建一个对应数据库名字的文件夹
3.每个数据库下都有一个opt 文件:保存了数据库选项
注:校对集依赖字符集指的是:字符集改变校对集也会改变
二、查看数据库
1.查看所有数据库:
-- 查看所有数据库 show databases;
2.查看指定部分的数据库:模糊查询
show databases like 'pattern'; --pattern是匹配模式, %:表示匹配多个字符, _:表示匹配单个字符 -- 举例 创建两个数据库 create database informationtest charset utf8; create database information_schema charset utf8; -- 匹配以informationtes开头的数据库 show databases like 'informationtes_'; -- 匹配以information开头的数据库 show databases like 'information%'; -- 匹配以information_开头的数据库:_需要被转义 show databases like 'information\_%'; --如果不转义将匹配到informationtest,information_schema
3.查看数据库的创建语句:show creat database 数据库名字;
-- 查看数据库创建语句 show create database mydatabase; show create database `database`; --关键字需要使用反引号
三、更新数据库
数据库名字不可以修改。
数据库的修改仅限库选项:字符集和校对集(校对集依赖字符集,字符集改动,校对集会跟随改动)
Alter database 数据库名字 [库选项];
charset/character set [=] 字符集
collate [=] 校对集
-- 修改数据库informationtest的字符集() alter database informationtest charset GBK; -- 以前是utf8的
四、删除数据库
所有的操作中:删除是最简单的
drop database 数据库名字;
-- 删除数据库 drop database informationtest;
当删除数据库语句执行之后,发生了什么?
1.在数据库内部看不到对应的数据库 利用show databases;查看
2.在对应的数据库存储的文件夹内:数据库对应的文件夹也被删除(级联删除:里面的数据表全部删除)
注意:数据库的删除不是闹着玩的,不要随意删除,应该先进行备份后操作。(删除不可逆,需负法律责任)