MySQL学习
目录
表的重命名
- 重命名一张表有多种形式
1. rename table <原来的表名> to <新的表名>;
2. alter table <原来的表名> rename <新的表名>;
3. alter table <原来的表名> rename to <新的表名>;
表的添加
alter table <表的名字> add column <新列名字> <数据类型> <约束>;
alter table <表的名字> add <新列的名字> <数据类型> <约束>;
如果想要添加到某一列的后面,那么使用关键字after
比如:alter table <表的名字> add <新列的名字> <数据类型> <约束> after <原有列的名字>;
如果需要添加到第一位,那么使用first
关键字
alter table <表的名字> add <新列的名字> <数据类型> <约束> first;
表的删除
alter table <表的名字> drop <列的名字>;
alter table <表的名字> drop column <列的名字>;
表中的列的删除与添加比较类似,关键字不一样。
删除一张表可以使用drop table <表名>;
表的一列重命名
alter table <表的名字> change <原列名字> <新列名字> <数据类型> <约束>;
请注意,这条语句中的
数据类型
不能丢失,否则是失效的。
这条语句不仅仅是更改名字,还可以更改这一列的数据类型以及约束
表中列更改数据类型
alter table <表的名字> change <原来列的名字> <列新的名字> <数据类型> <约束条件>
alter table <表的名字> modify <列的名字> <新的数据类型>
请注意,更改数据类型的时候,可能会导致值丢失
某个值的修改
update <表的名字> set <列1>=<值1>,<列2>=<值2>... where <条件>;
如果除去了
where
后面的条件,那么修改的是这一列全部的值
通过这条命令,便可以进行修改了。
删除一行记录
delete from <表的名字> where <条件>;
如果除去了
where
后面的条件,那么删除的是全部的值,置为空表
索引
解释: 索引是一种与表有关的结构,他的作用相当于书的目录,可以根据书的内容从而快速寻找到相对应的页码。建立索引可以加快查询的速度。
当含有大量的数据的时候,没有索引的情况下,是进行全表搜索。将所有的记录取出,然后一一匹对,再然后返回满足的记录。但是有一个缺点,会大量消耗磁盘的I/O操作,
并花费大量的数据库系统的时间。
建立索引的方法
alter table <表的名字> add index <索引名> <(列名)>;
create index <索引名> on <表名字> <(列名)>;
可以使用语句show index from <表名>;
来查看新建立的索引。
有一些字段不适合创建索引,比如存在大量的重复记录的列,因为存在着大量的重复记录,所以无法享受索引带来的速度加成,不利于数据库的搜查。
当使用where
关键时,会自动搜索是否有可用的索引信息可供查询,如果有索引信息,那么会自动调用索引信息进行查询。有索引信息进行查询的时候,速度比没有索引信息的快。
视图
create view <视图名称><(列1,列2,列3...)> as select <列1,列2,列3...> from <表名>;
查看视图可以使用select * from <列表名字>
语句中,select
后面部分属于select
查询语句,可以使用子查询或者连接查询
视图只是虚拟的表
- 数据库中只存放视图的定义,并没有存放视图中的数据,视图中的数据是存放在原来的表中。视图只是把原来的数据拿过来用。
- 查询视图的时候,只是把原来的数据拿过来用。
- 视图中的数据会依赖原来的数据,如果原来的数据发生改变,那么视图中的数据会发生改变
- 使用视图时,可以把他当成一张表
导入
show variables like '%secure%'
使用上面的这一句语句,可以清楚那个文件是适合导入的,然后把相对应的文件放到该对应的文件夹中,从而使用load
语句进行导入。
load data infile '<文件路径>' into table <表的名字>;
使用这句语句可以从文件中导入数据。因为导入数据属于敏感内容,因此必须得放文件在其相对应的路径上才能进行数据导入。
在windows中,可以通过修改mysql
中的配置文件,从而修改其保护目录。在输入目录中,必须使用\
双斜杠,否则会出错。
导出
有导入语句自然有导出语句。导出是从表中导出文件到磁盘下。
select <列1>,<列2>... into outfile '<文件目录名称>' from <表的名字>;
请注意,文件如果有相同的名字,是不能够导出的,导出的必须是在其目录下并且不能与其有的名字相同。
备份
数据库中的数据通常情况下是十分重要的,因此我们需要备份其中的数据内容
我们进行数据库的备份,是使用mysqldump
实用程序,这个程序的使用并非是在mysql
终端下进行操作的,如果是Linux
系统,则是在其终端下进行操作,如果是windows
系统,则是在cmd(命令提示符)
下进行操作。
mysqldump -u root <数据库名> > <备份文件名>;#备份整个数据库
mysqldump -u root <数据库名> <数据库中的表的名> > <备份文件名>; #这是备份数据库中的一份表
恢复
数据库的恢复本质是重新导入备份出来的东西。
sourse <目录+文件>
上面是在mysql
终端下进行操作的
还有一种方式
mysql -u root
create database <数据库名字>;
mysql -u root <刚刚创建的数据库名字> < <备份文件>
所有的<>应该去掉,保留里面部分内容。