mysql基础——库与表的操作
在学习了mysql的基础内容后,我们接下来要讲解一些有关于对库与表的相关操作
库的操作
1、创建数据库
语法:
[]中的是可选项,可以不写
大写的表示关键字,CHARACTER SET是指定数据库采用的字符集,COLLATE指定数据库字符集校验规则。
关于数据库的存放,我们可以在/var/lib/mysql下查找(ls可能需要root权限)
2、删除数据库
drop database name;(删除name库)
创建/删除数据库本质是在该目录下新建/删除目录
3.字符集和校验规则
也就是说我们使用的库采用对应的字符集及其相应的校验规则,我们可以用以下命令查看系统默认的字符集和校验规则。
show variables like 'character_set_database';show variables like 'collation_database';
我们存储以及读取数据时候必须保持二者均一致不然会出现问题。除此之外我们还可以查看其他的字符集和校验规则
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;