1, 定义: 对数据库表的一列或多列的值进行排序的一种结构 (Btree 方式)
2, 优点: 加快数据检索速度
3, 缺点: 占用物理存储空间; 当对表中数据更新时, 索引需要动态维护, 降低数据维护速度
4, 索引示例
1, 开启运行时间检测 :set profiling=1;
2, 执行查询语句
select name from t1 where name="lucy99999";
3, 查看执行时间
show profiles;
4, 在 name 字段创建索引
create index name on t1(name);
5, 再执行查询语句
select name from t1 where name="lucy88888";
6, 查看执行时间
show profiles;
5, 索引
1, 普通索引 (index)
1, 使用规则
1, 可设置多个字段
2, 字段值无约束
3,key 标志 :MUL
2, 创建 index
1, 创建表时
create table 表名 (...
index(字段名),index(字段名));
2, 已有表
create index 索引名 on 表名 (字段名);
create index name on t3(name);
3, 查看索引
1,desc 表名; --> KEY 标志为: MUL
2,show index from 表名 \ G;
4, 删除索引
drop index 索引名 on 表名;
2, 唯一索引 (unique)
1, 使用规则
1, 可设置多个字段
2, 约束 : 字段值不允许重复, 但可为 NULL
3,KEY 标志 :UNI
2, 创建
1, 创建表时创建
- unique(字段名),
- unique(字段名)
2, 已有表
create unique index 索引名 on 表名 (字段名);
3, 查看, 删除 同 普通索引
3, 主键索引 (primary key)
自增长属性 (auto_increment, 配合主键一起使用)
1, 使用规则
1, 只能有一个主键字段
2, 约束 : 不允许重复, 且不能为 NULL
3,KEY 标志 :PRI
4, 通常设置记录编号字段 id, 能唯一锁定一条记录
2, 创建
1, 创建表时
- (id int primary key auto_increment,
- )auto_increment=10000;## 设置自增长起始值
已有表添加自增长属性:
alter table 表名 modify id int auto_increment;
已有表重新指定起始值:
alter table 表名 auto_increment=20000;
2, 已有表
alter table 表名 add primary key(id);
3, 删除
1, 删除自增长属性 (modify)
alter table 表名 modify id int;
2, 删除主键索引
alter table 表名 drop primary key;
4, 外键索引
4, 数据导入
1, 作用 : 把文件系统的内容导入到数据库中
2, 语法
load data infile "/var/lib/mysql-files / 文件名"
into table 表名
- fields terminated by "分隔符"
- lines terminated by "\n";
3, 将 scoretable.csv 文件导入到数据库的表中
1, 在数据库中创建对应的表
- create table scoretab(
- id int,
- name varchar(15),
- score float(5,2),
- number bigint,
- class char(7)
- );
2, 把文件拷贝到数据库的默认搜索路径中
1, 查看默认搜索路径
- show variables like "secure_file_priv";
- /var/lib/mysql-files/
2, 拷贝文件
sudo cp ~/scoretable.csv /var/lib/mysql-files/
3, 执行数据导入语句
- load data infile "/var/lib/mysql-files/scoretable.csv"
- into table scoretab
- fields terminated by ","
- lines terminated by "\n";
4, 文件权限
rwxrw-rw- 1 tarena tarena scoretable.csv
所有者 所属组
rwx : tarena 用户
rw- : 同组其他用户
rw- : 其他组的其他用户 (mysql 用户)
- r -> 4
- w -> 2
- x -> 1
chmod 644 文件名 rw-r--r--
5,Excel 表格如何转化为 CSV 文件
1, 打开 Excel 文件 -> 另存为 -> CSV(逗号分隔)
6, 更改文件编码格式
1, 用记事本 / 编辑器 打开, 文件 -> 另存为 -> 选择编码
5, 数据导出
1, 作用
将数据库中表的记录导出到系统文件里
2, 语法格式
select ... from 表名
- into outfile "/var/lib/mysql-files / 文件名"
- fields terminated by "分隔符"
- lines terminated by "\n";
3, 把 MOSHOU 库下的 sanguo 表英雄的姓名, 攻击值, 国家导出来, sanguo.txt
- select name,gongji,country from MOSHOU.sanguo
- into outfile "/var/lib/mysql-files/sanguo.txt"
- fields terminated by " "
- lines terminated by "\n";
- $ sudo -i
- $ cd /var/lib/mysql-files/
- $ ls
- $ cat sanguo.txt
4, 将 mysql 库下的 user 表中 user,host 两个字段的值导出到 user.txt
- select user,host from mysql.user
- into outfile "/var/lib/mysql-files/user.txt" fields terminated by " "
- lines terminated by "\n";
来源: http://www.bubuko.com/infodetail-2710666.html