3.MySQL库和表的操作
目录
- 数据库的操作
- 创建数据库
- 数据库删除
- 字符集和校验规则
- 指定编码创建数据库
- 校验规则对数据库的影响
- 数据库的改
- 数据库的查
- 数据库的备份与恢复
- 表的增删查改
- 创建表:
- 查看表
- 修改表
- 删除表:
数据库的操作
创建数据库
语法:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification[, create_specification] ...]
create_specification:[DEFAULT] CHARACTER SETcharSet_name[DEFAULT] COLLATE collation_name
说明:
- 大写的表示关键字
- []是可选项
- CHARACTER SET指定数据库采用的字符集
- COLLATE指定数据库字符集的校验规则
示例:
在对应的目录下查看
发现多了一个目录文件。所以创建数据库:create database db_name;本质就是在/var/lib/mysql创建一个目录
数据库删除
语法:
DROP DATABASE [IF EXISTS] db_name;
注意:删数据库的时候,在linux下整个目录就被删了,数据库里的数据也会被删除,在生产环境中的时候,特别不建议直接对数据库直接删除,如果想删除,最好先备份再删除
示例:
在对应的目录下查看
发现没有helloworld这个目录了。所以删除数据库:drop database db_name;本质就是在/var/lib/mysql删除一个目录
字符集和校验规则
只要是数据就一定要有编码格式,数据库与数据打交道,要求编码必须是统一的,程序员写数据的时候设定编码格式,数据库处理数据并存数据的时候就要采用该编码来处理,所以取数据的时候我必须以同样的编码来取。好比在现实生活中,一个人往本子上写汉语,它采用的是汉语的编码格式,另一个人想要读懂写的文字,就必须用汉语的方式来读取。
创建数据库的时候有两个编码集:
1。数据库编码集 – 数据库未来存储数据时采用什么编码
2。数据库校验集 – 把数据存到数据库里了,未来对数据的增删查改,在读的时候要校验,使用的校验规则必须是一样的,校验规则影响数据排序等方面
查看编码集和校验集
show charset;查看数据库所支持的字符集
show collation; 查看数据库支持的字符集校验规则
指定编码创建数据库
当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8(utf8mb3可以认为就是utf8),校验规则时:utf8_general_ci。这和我们之前配置的数据库有关
创建d2数据库时,指明了编码规则,又指明了校验规则
校验规则对数据库的影响
创建一个数据库,校验规则使用utf8_general_ci[不区分大小写]
不区分大小写的查询结果:
不区分大小写的排序结果
创建一个数据库,校验规则使用utf8_bin[区分大小写]
区分大小写的查询结果:
区分大小写的排序结果:
数据库的改
修改数据库
语法:
ALTER DATABASE db_name [alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
说明:
对数据库的修改主要指的是修改数据库的字符集,校验规则。
示例
数据库的查
查看数据库
show databases;
显示创建语句
show create database db_name;
示例
说明:
MySQL建议我们关键字使用大写,但是不是必须的
数据库名字名字的反引号,是为了防止使用的数据库名刚好是关键字
/!40100 default…*/这个不是注释,表示当前mysql版本大于4.01 版本,就执行这句话
数据库的备份与恢复
在linux下是如何备份的呢?就是cp命令copy一份,数据库的数据当然也可以这样做,但这样会存在一个问题,版本可能会不匹配导致一系列的问题。
mysql提供了备份的解决方案
语法:
备份数据库
linux命令# mysqldump -P3306 -uroot -p -B 指定的数据库 > 指定备份的路径
示例:备份test1数据库
备份表
linux命令# mysqldump -P3306 -uroot -p -B 指定的数据库 表名1 表名2... > 指定备份的路径
示例:
还原:
sql命令> source 指定的路径(/home/test1.sql);
示例:还原数据库
还原表
表的增删查改
创建表:
语法:
CREATE TAB LE table_name(field1 datatype,field2 datatype,field3 datatype
)character set 字符集 collate 校验规则 engine 存储引擎;
说明:
- field表示列名
- datatype表示列的类型
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
示例:
查看表
查看表的详细信息:
查看创建表的时候的信息:
修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,大小,类型,表单字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这是我们就需要修改表(并不是对表里的内容进行操作)。
语法:
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);ALTER TABLE tablename MODIFY (column datatype [DEFAULT expr][,column datatype]...);ALTER TABLE tablename DROP (column);
示例:
下面来尝试对表的修改
修改表名:
删除表:
语法:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
示例: