增insert删delete改update查select 更新update 改变alter
创建数据库 create database 数据库;
查看指定数据库 show create database 数据库;
查看数据库(所有的) show databases;
使用数据库 use 数据库
删除数据库 drop database 数据库;(不能一次删除多个!)
创建表 create table 表名(列名 数据类型 [not null] [primary key],列名 数据类型 [not null],..)
查看所有表 show tables
查看一个表数据 select * from 表名 *代表所有列 也可以select 列名 from 表名
删除表 drop table 表名
更改表名 rename table 旧表名 to 新表名
增加表内容 插入数据 insert into 表名(列名,列名...)values(值,值...)
修改列中的一条记录 update 表名 set 列=值 where 列=值
删除列中的一条记录 delete from 表名 where 列=值
增加一个列 Alter table 表名 add 列名 数据类型
删除一个列 Alter table 表名 drop column 列名
修改一个列名 Alter table 表名 change 列名 新列名 数据类型;
desc 降序排列
asc 升序排列
delete 删除记录 结构依然存在 即还可以找到 执行后有提交过程
drop 结构和数据都删除 一步操作完成
unique 去掉相同的
查找前5条数据 select *from 表 limit 5;
select * from表 order by id asc limit 5
select *from 表 limit 0,5;从0开始,取5条
查找后5条数据 select * from表 order by id desc limit 5
Mysql索引的使用
一、按类型区分
索引类型:定义表索引的类型
normal索引是最近本的索引,没有对唯一性的限制
普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。
unique索引和normal类似,只是索引列的全部值必须只能出现一次
创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。
full text索引用于mysql全文索引,用于在一篇文章中,检索文本信息。InnoDB不支持,Myisam支持性能比较好,一般在 CHAR、VARCHAR 或 TEXT 列上创建。
主键索引 针对主键的检索,设置某字段为primary key主键
主索引与唯一索引的唯一区别是:前者在定义时使用的关键字是PRIMARY而不是UNIQUE。
主键就是唯一索引的一种,主键要求建表时指定,一般用auto_increatment列,关键字是primary key
索引方法:当创建索引时,指定索引类型,btree或者hash(全文搜索的时候没有)
如果为某个外键字段定义了一个外键约束条件,MySQL就会定义一个内部索引来帮助自己以最有效率的方式去管理和使用外键约束条件。
二、按字段数量分
1.mysql索引分为单列索引和组合索引
单列索引:一个索引包含单个列,一个表可以有多个单列索引。
组合索引:一个索引包含多列。(符合最左前缀)
索引可以是单列索引也可以是多列索引(也叫复合索引)。按照上面形式创建出来的索引是单列索引,现在先看看创建多列索引:
create table test3 (id int not null primary key auto_increment, account int(12) not null default '',account_type int(2) not null,INDEX(account,account_type))type
=myisam;
注意:INDEX(a, b, c)可以当做a或(a, b)的索引来使用,但和b、c或(b,c)的索引来使用这是一个最左前缀的优化方法。
三、创建索引
sql语句创建索引
创建索引:
create unique index 索引名 on 表名(列名);
alter table 表名 add unique index 索引名 (列名);
CREATE
[
UNIQUE
|FULLTEXT|SPATIAL]
INDEX
index_name
[USING index_type]
ON
table_name (index_col_name,...)
删除索引:
drop index 索引名 on 表名;
alter table 表名 drop index 索引名;
修改索引
在MySQL中并没有提供修改索引的直接指令,一般情况下,我们需要先删除掉原索引,再根据需要创建一个同名的索引,从而变相地实现修改索引操作。
1 2 3 4 5 |
|
查看索引
在MySQL中,要查看某个数据库表中的索引也非常简单,只需要使用以下两个命令中的任意一种即可。
1 2 3 4 |
|
四、合理建立索引
1.在表中有where和join中出现的列需要建立索引,mysql只针对<,<=,=,>,>=,between,in以及like才会使用索引
2.表中某属性的字段(如user_key)是唯一的不能为空。可以建立unique索引。
3.索引不是越多越好,如果索引过多,更新表数据时候也会很耗时。
参考文件:
建立索引的原则http://blog.csdn.net/u013412790/article/details/51612304
mysql索引优化http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html
索引的原理http://blog.csdn.net/debug_zhang/article/details/52168552