索引: 1、普通索引: create index 自定义索引名称 on 库名.表名(表中的字段); 如:create index student on aa.学生表(学号);
2、唯一性索引: create unique index 自定义索引名称 on 库名.表名(表中的字段); 如:create unique index tudent on aa.学生表(学号); 注:删除索引 DROP INDEX 索引名称 ON 表名
3、主键索引: create table 表名(字段1,字段2……,PRIMARY KEYS(前面的某个字段)); alter table 库名.表名 add PRIMARY KEYS(表的某个字段); 如:create table studentss(id int(4), name char(6),age int(4),PRIMARY KEY(id)); 如:alter table studentss add primary key(id)
注:主键索引和唯一性索引的区别是,唯一性索引可以允许有空值。
注: 删除主键 如果一个主键是自增长的,不能直接删除该列的主键索引,
应当先取消自增长,再删除主键特性
alter table 表名 drop primary key; 【如果这个主键是自增的,先取消自增长.】
具体方法如下:
alter table articles modify id int ; 【重新定义列类型】
alter table articles drop primary key;
4、全文索引:仅在MyISAM存储引擎下使用。
ALTER TABLE 表名 ADD FULLTEXT(字段1);
create table 表名("字段1" 类型 ,FULLTEXT(字段1))engine=MyISAM;
5、单列索引:一个索引只包含一个列,一个表可以有多个单列索引. 方法一:CREATE INDEX 索引名 ON 表名(字段);
方法二:ALTER TABLE 表名 ADD INDEX 索引名(字段);
6、组合索引: CREATE INDEX 索引名 On 表名(字段1(length),字段2(length),...);
ALTER TABLE 表名 ADD INDEX 索引名(字段1,字段2);
7,查看索引的方法 show index from 表名 \G; show keys from 表名 \G;
注:所有的索引名称不能重复
事务命令控制事务: begin; 表示开始一个事务
中间输入sql语句;
commit; 表示提交一个事务
rollback; 回滚事务,会撤销所有之前的操作,在提交
savepoint s1; 定义回滚点 rollback to savepoint s1; 在提交之前执行
set设置控制事务: set authcommit = 0; 禁止自动提交
设置禁止自动提交后,输入SQL语句命令后,需要手动使用"commit"去提交执行。
set authcommit=1; 开启自动提交
MySQL存储引擎:
MySQL5.5支持的存储引擎有InnoDB、MyISAM、MEMORY、MRG_MyISAM、ARCHIVE、FEDERATED、CSV、BLACKHOLE、PERFORMANCE_SCHEMA共9种。
可在数据库中使用"SHOW ENGINES" 查看系统所支持的引擎类型
功能 InnoDB MyISAM 支持事务 支持 不支持 支持全文搜索 不支持 支持 外键约束 支持 不支持 表空间大小 较大 较小 数据行锁定 支持 不支持
MyISAM存储引擎:该存储引擎不支持事务,也不知外键约束,访问速度比较快。因此对不需要事务处理,以访问为主的应用适合使用该引擎。
InnoDB存储引擎:对需要日夕频繁的更新、删除操作,同时还对事务的完整性要求比较高,需要实现并发控制的应用,适合使用该存储引擎。
MySQL5.5以上版本默认的存储引擎是InnoDB。
1、查看默认存储引擎 SHOW VARIABLES LIKE '%storage_engine%';
注:%storage_engine%:表示查询默认存储引擎。
2、查看数据库中的所有数据表使用的引擎: show table status from 数据库名 \G;
查看数据库中某个数据表使用的引擎: show table status from 数据库名 数据表名 \G;
查看创建表时使用的命令: show create table 表名;
注:\G表示以垂直形式显示内容。
3、修改默认存储引擎: 通过修改配置文件my.cnf来实现,修改以下内容: [mysqld]下添加: default-storage-engine=MyISAM 注: 改完后,删除/mysql/data目录下的ib_logfile0,ib_logfile1 否则在启动mysql时会报错,重启数据库服务。
4、指定表的存储引擎 (1)、在数据表已存在的情况下,修改表的存储引擎: alter table 表名 engine=存储引擎名称;
(2)、在创建数据表的情况下制定数据表的存储引擎: CREATE TABLE 表名( …. )ENGINE=存储引擎;
(3),修改默认存储引擎: 通过修改配置文件my.cnf来实现,修改以下内容: [mysqld]下添加: default-storage-engine=MyISAM
5、MySQL数据文件 在MySQL中,不同的存储引擎涉及 的数据文件不同. 可通过配置文件/etc/my.cnf来制定路径。 [mysqld] datadir = /usr/local/mysql/data
该目录下,每个数据库相关文件均存放在以数据库命名的目录中。
/usr/lcoal/mysql/data mysql的文件目录
MyISAM类型的表文件有3个,分别为:
.frm文件 :表结构文件。主要存放表的元数据,包括表结构定义信息等。该文件与存储引擎无关,即任何存储类型的表都会有这个文件
MYI文件 :索引文件。其主要存放MyISAM类型表的索引信息,每个MyISAM类型的表会有一个.MYI文件,存放的位置与.frm文件相同。
.MYD文件 :数据文件。存放表中数据的文件
InnoDB类型的表文件有.frm和.idb相关文件
.frm文件:表结构文件。主要存放表的元数据,包括表结构定义信息等。该文件与存储引擎无关,即任何存储类型的表都会有这个文件
.idb文件 :数据文件,保存所有InnoDB类型表的数据