MYSQL入门到精通【7】:navicate和mysqldump的数据导入导出

MYSQL入门到精通【7】:navicate和mysqldump的数据导入导出

  • 1. navicate
  • 2. mysqldump
  • 3. 索引

1. navicate

(客户端)

(1) 下载地址
链接:https://pan.baidu.com/s/1me1fvnHGwUhlN-qAXEBodw
提取码:qf1q

① 连接数据库

#查看主机和用户名
select user,host from mysql.user;

MYSQL入门到精通【7】:navicate和mysqldump的数据导入导出_第1张图片
MYSQL入门到精通【7】:navicate和mysqldump的数据导入导出_第2张图片

连接mysql数据库后的效果图:
MYSQL入门到精通【7】:navicate和mysqldump的数据导入导出_第3张图片
① 创建表
表→右击,设计表
MYSQL入门到精通【7】:navicate和mysqldump的数据导入导出_第4张图片

② 查询
查询→SQL语句
MYSQL入门到精通【7】:navicate和mysqldump的数据导入导出_第5张图片

show databases;
use test1;
show tables;
select count(*) from account; #19944条数据

(2) 数据导入导出

表→右击,导入向导或导出向导
MYSQL入门到精通【7】:navicate和mysqldump的数据导入导出_第6张图片

phpmyadmin(不推荐)

2. mysqldump

(系统自带)

(1) 数据导入导出

#导出
#退出mysql,输入以下语句
mysqldump -u root -p112233 test account >dump_account.sql 
#112233是登录密码
#导出dump_account.sql文件,在命令运行的根目录下

在这里插入图片描述

MYSQL入门到精通【7】:navicate和mysqldump的数据导入导出_第7张图片

#导入数据到数据库,不连接数据库
mysql -u root -p112233 test < dump_account.sql
#注意导入的文件要在对应的根目录下

mysql -u root -p
select count(*) from test.account;

navicate 和 mysqldump在数据导入和导出的区别:
-navicate:操作简单,但反应速度很慢
-mysqldump:反应速度更快(千万级别数据)。
-xtrabackup:可以处理更大数据

3. 索引

索引:目录,在查询的时候,加快查询速度

添加索引
alter table 表名 add index/unique/fulltext[索引名] (字段名);

删除索引
drop table 表名 drop index 索引名];

查看表的所有索引
show index from 表名;

注意:索引在提供查找速度的同时,降低增删改的速度。

普通索引:key(字段名1,字段名2,…)
唯一索引:unique key(字段名1,字段名2,…) #数据不能重复
主键索引:primary key(字段名1,字段名2,…)
全文索引:fulltext(字段名1,字段名2,…) #解决模糊查询的情况,只支持英文
组合索引:index(字段名1,字段名2,…)

create database test2;
use test2;
show tables;
create table user(
id int unsigned not null auto_increment,
user_name varchar(20) not null,
password varchar(32) not null,
email varchar(32) not null,
age tinyint unsigned not null,
primary key(id),
unique(user_name),
key(age),
index(email)
);

desc user; #查看表
show index from user\G  #查看索引

MYSQL入门到精通【7】:navicate和mysqldump的数据导入导出_第8张图片
全文索引:解决模糊查询的情况
select * from articles
where match(title,body)
against(‘database’ in natural language mode)

# 唯一索引
insert into user(user_name,...) values('aaa');
insert into user(user_name,...) values('aaa');  #报错,数据重复

# 添加全文索引
alter table user add fulltext(password);
desc user;
show index from user\G  #查看索引
select * from user where match(passport) against('%***%')  #全文索引的应用
# match:字段名;against:查询内容;解决模糊查询的情况

外键约束:foreign key(字段) references 表名(字段名);只用 innodb支持

show databases;
use test2;
show tables;
show create table user; # 图①

create table mark(
id int unsigned not null auto_increment,
mark int unsigned not null,
stu_id int unsigned not null,
primary key(id),
foreign key(stu_id) references user(id)  # 设置外外键
);

desc mark;
show index from mark;

insert into user(user_name) values('aaa');
insert into user(user_name) values('bbb');

# 外键:成绩是依附于学生,如果没有相应id的学生,那么这个成绩就插不进去
# 外键:B表与A表有依附关系
insert into mark(mark,stu_id) values(33,1);  #成功
insert into mark(mark,stu_id) values(44,3);  #失败

图①:
MYSQL入门到精通【7】:navicate和mysqldump的数据导入导出_第9张图片

你可能感兴趣的:(SQL,mysql,数据库)