(客户端)
(1) 下载地址
链接:https://pan.baidu.com/s/1me1fvnHGwUhlN-qAXEBodw
提取码:qf1q
① 连接数据库
#查看主机和用户名
select user,host from mysql.user;
连接mysql数据库后的效果图:
① 创建表
表→右击,设计表
show databases;
use test1;
show tables;
select count(*) from account; #19944条数据
(2) 数据导入导出:
phpmyadmin(不推荐)
(系统自带)
(1) 数据导入导出:
#导出
#退出mysql,输入以下语句
mysqldump -u root -p112233 test account >dump_account.sql
#112233是登录密码
#导出dump_account.sql文件,在命令运行的根目录下
#导入数据到数据库,不连接数据库
mysql -u root -p112233 test < dump_account.sql
#注意导入的文件要在对应的根目录下
mysql -u root -p
select count(*) from test.account;
navicate 和 mysqldump在数据导入和导出的区别:
-navicate:操作简单,但反应速度很慢
-mysqldump:反应速度更快(千万级别数据)。
-xtrabackup:可以处理更大数据
索引:目录,在查询的时候,加快查询速度
添加索引:
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 #查看索引
全文索引:解决模糊查询的情况
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); #失败