数据导入
- 作用
把文件系统的内容导入到数据库 - 语法
- 语法(一)
load data infile “文件名” into table 表名 fields terminated by “分隔符” lines terminated by “\n”
load data infile "scoreTable.csv" into table stu_score fields terminated by "," lines terminated by "\n";
注:在Linux系统中要求将文件存放在数据库搜索路径中,可用show variables like 'secure_file_priv';
命令查看数据库搜索路径
create table stu_score(rak int,name varchar(16) not null,score float(5,2),phone char(11),class char(7))charset=utf8mb4; - 语法(二)
source 文件名.sql
数据导出
- 作用
将数据库中表的记录保存到系统文件里 - 语法格式
select … from 表名 into outfile “文件名” fields terminated by “分隔符” lines terminated by “分隔符”;
select name,class from student into outfile "文件名.csv" fields terminated by "," lines terminated by "\n";
注:导出的内容由SQL语句决定且执行导出命令时路径必须指定在对应的数据库目录下
表的复制
- 语法
create table 表名 select 查询命令
注:复制表的时候不会将原有表的KEY属性复制
表结构的复制:create table 表名 select 查询命令 where falsecreate table class_1704_1 select id,name,from_where from class_1704; select * from class_1704_1; create table class_1704_2 select * from class_1704 order by score DESC limit 3; select * from class_1704_2; # 复制表结构 create table class_1704_3 select id,name,hobby from class_1704 where false; ```![](https://img-blog.csdnimg.cn/2020121409101660.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUyNTY3NjEw,size_16,color_FFFFFF,t_70#pic_center)
锁(MySQL自动加锁与释放锁)
- 目的:解决客户端并发访问的冲突问题
- 锁类型:
-
读锁(共享锁):加读锁之后他人不能更改表记录,但可以进行查询
-
写锁(互斥锁、排它锁):加写锁之后他人不能查、不能改
- 锁粒度:
-
表级锁:myisam
-
行级锁:innodb
存储引擎
- 定义:处理表的处理器
- 基本操作
- 查看所有存储引擎:show engines;
- 查看已有标的存储引擎:show create table 表名;
- 创建表时指定:create table 表名()enging=引擎名;
- 已有表指定引擎:alter table 表名 engine=引擎名;
- 常用存储引擎及特点
- InnoDB:
支持行级锁
支持外键、事务、事务回滚
表字段和索引同存储在一个文件中(1).表名.frm :表结构及索引文件
(2).表名.ibd : 表数据 - MyISAM
1.支持表级锁
2.支持段和索引分开存储(1).表名.frm :表结构
(2).表名.myi : 索引文件
(3).表名.myd : 表数据 - MEMORY
表记录存储在内存中,效率高
服务或主机重启,表记录清除
- 如何选择存储引擎
- 执行查操作多的表用MyISAM
- 执行写操作多的表用InnoDB
- 临时表用MEMORY