数据导入
作用:把文件系统的内容导入到数据库中
操作步骤:
1.在数据库中创建对应的表
create table userinfo( username varchar(20),
passwd char(1),
uid int,
gid int,
comment varchar(50),
homedir varchar(50),
shell varchar(50) );
2.把要导入的文件拷贝到数据库搜索路径中
1.查看数据库的搜索路径
show variables like "secure_file_priv";
2.sudo cp / etc / passwd / var / lib / mysql - files /
3.执行数据导入语句(mysql输入四条命令一起写)
load data infile "/var/lib/mysql-files/passwd"
into table userinfo(库名)
fields terminated by ":" # 表示以冒号分割
lines terminated by "\n";
数据导出
作用:将数据库中的表记录保存到系统文件中
语法格式:
select(...字段名) from 表名
into outfile "/var/lib/mysql-files/user1.txt"
fields terminated by "分隔符"
lines terminated by "\n";
数据备份(mysqldump,Linux终端操作)
命令格式 : mysqldump -u用户名 -p 源库名 > 路径/xxx.sql
源库名的表示方式:
--all-databases 备份所有库
库名 备份单个库
-B 库1 库2... 备份多个库
库名 表1 表2... 备份指定库的指定表
示例:
1.备份所有库all.sql,放到mydata目录中
mysqldump -root -p --all-databases > all.sql
2.备份db4库中的sheng,city 和xian三张表为 db4scx.sql
mysqldump -uroot -p db4 sheng city xian > db4scx.sql
数据恢复
命令格式 : mysql -u用户名 -p 目标库名 < xxx.sql
示例:
mysql -uroot -p --one-database MOSHOU < all.sql
注意:
恢复库时,原库中表中记录会被覆盖,新增表不会被覆盖
事务和事务回滚
定义:一件事从开始发生到结束的过程
作用:确保数据一致性
事务应用
开启事务:begin;
## autocommit 被禁用,SQL命令不会提交到数据库执行
终止事务:commit;
rollback;
注意:
事务和事务回滚只针对表记录操作:增、删、改有效,对键库建表无效
示例:
1.背景 你:建行卡 你朋友:工商卡 你在建行自动取款机上给你朋友工商卡转5000元
2.过程
表1:CCB
create table CCb(name char(15),money init );
insert into CCB values ("xhuanwian",10000);
表2:ICBC
create table ICBC(name char(15),money int);
insert into ICBC values ("shouqian",4000);
3.
mysql>begin;
mysql>update CCB set money=5000 where name
mysql>update ICBC set money=9000 where name
存储引擎(代表表的处理器)
MySQL存储引擎(处理表的处理器)
基本操作:
查看所有存储引擎
show engines;
查看表存储引擎
show create table 表名;
指定存储引擎
create table 表名(……)engine = innodb,character set utf8;
修改已有表的存储引擎
alter table 表名 engine=myisam;
工作常用
InnoDB MyISAM
修改表的默认存储引擎(修改配置文件)
sudo -i
cd /etc/mysql/mysql.conf.d/
(复制一下,以防丢失)
[mysqld]
default-storage-engine=myisam
(修改默认引擎)
重启mysql
存储引擎特点
MyISAM特点
独享表空间
表名.frm bi结构
表名.myd 表记录
表名.myi 索引文件
只支持表级锁
InnoDB特点
共享表空间
表名.frm 表结构和索引信息
表名.ibd 表记录
支持行级锁
memory
表结构存储于硬盘,表记录存储于内存
表名.frm
服务重启后表结构还在,表记录都消失
决定表使用什么存储引擎
主要用来查询的表用MyISAM
写操作多的表用InnoDB