在学习了mysql的基础内容后,我们接下来要讲解一些有关于对库与表的相关操作
库的操作
1、创建数据库
语法:

\]中的是可选项,可以不写 大写的表示关键字,CHARACTER SET是指定数据库采用的字符集,COLLATE指定数据库字符集校验规则。 关于数据库的存放,我们可以在/var/lib/mysql下查找(ls可能需要root权限)  #### 2、删除数据库 drop database name;(删除name库) 创建/删除数据库本质是在该目录下新建/删除目录 #### 3.字符集和校验规则 也就是说我们使用的库采用对应的字符集及其相应的校验规则,我们可以用以下命令查看系统默认的字符集和校验规则。 ```cpp show variables like 'character_set_database'; show variables like 'collation_database'; ```  我们存储以及读取数据时候必须保持二者均一致不然会出现问题。除此之外我们还可以查看其他的字符集和校验规则 ```cpp show charset; show collation; ``` 不同的规则对数据库也有影响,假如我们要一个不区分大小写的库 > create database test1 collate utf8_general_ci; > > create database test2 collate utf8_bin;(区分大小写的库) #### 4.对库的使用 我们在对某一个库进行插入数据等操作前,还要用以下语句 > use name;(使用name库) 相当于我想使用必须先进入到该目录下 #### **操纵数据库** ##### 1.删除数据库 > drop database name; 但我们不建议对数据库直接删除,因为一旦删除里面对应的所有内容也会被全部删除,也内部看不到数据库。 ##### 2.查找数据库 :show databases; show create database name:查看当时创建该库时的语句。 ##### 3.查看当前所在数据库:select database();  ##### 4.修改数据库------关键字alter 比如我们想改字符集和校验规则:alter database name charset=... collate ...; #### **数据库的备份与恢复** 备份语法:# mysqldump -P3306 -u root -p 密码 -B 数据库名 \> 数据库备份存储的文件路径 恢复语法:mysql\> source 路径;(目标路径下的备份库) 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据 库,再使用source来还原。 有了库的相关操作,接下来我们就要进入到数据库内创建表然后对表进行相关操作。 ### 表的操作 #### 创建表 语法: > create table table_name ( > > field1 datatype, > > field2 datatype, > > field3 datatype ) > > character set 字符集 collate 校验规则 engine 存储引擎; > > (也可以都写在一行,为了美观写完一行按换行键在下一行写) > > ***field 表示列名 datatype 表示列的类型 character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准 collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准*** 创建以后我们会发现当前库的目录下会增加几个文件(不同引擎对应的文件数量不同),这些文件就是记录着表的数据。  #### 查看表 语法:show tables;  查看表的详细信息:desc tablename;  #### 修改表 在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型, 表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。 > 修改表名:alter table tablename1 rename to(to可省) tablename2; > > 在表中插入一套新数据:insert into tablename values(参数);  在表中新增加一行属性: > alter table tablename add 属性名 类型 comment '描述' (comment及其后可不写)after name;(在name后增加一列)  插入新字段后,对原来表中的数据没有影响。 修改属性名的类型: > alter table tablename modify 属性名 新类型; 删除某列: > alter table tablename drop name;(删除tablename表中的name列) 修改表中的某一列的名称: > alter table tablename change name name1 类型;(把表中的name列修改名为name1,且需声明新列的类型,也可以与之前同类型) #### 删除表 > 语法: drop table name;