概要
查询语句用法进阶
主键 PRIMARY KEY
外键 FOREIGN KEY
- 外键指向的列,要求是
primary key也可以是unique - 外键类型要和主键类型一致
长度可以不同 - 外键字段的值,必须在主键字段中出现过
- 外键字段可以是
NULL(前提是字段允许为NULL) - 一旦建立主外键关系,数据不能随意删除(因为存在已关联主外键的数据)
CHECK约束数据范围
CREATE TABLE [tablename](
[columnname] VARCHAR(6) CHECK (sex IN("man","woman"))
[columnname] DOUBLE CHECK (sal > 1000 AND sal < 2000)
)
索引
-- 查询表是否有索引
SHOW INDEX FROM [tablename];
SHOW INDEXES FROM [tablename];
SHOW KEYS FROM [tablename];
--唯一索引
CREATE UNIQUE INDEX [index_name] ON [tablename] ([columnname]);
--普通索引
CREATE INDEX [index_name] ON [tablename] ([columnname]);
ALTER TABLE [tablename] ADD INDEX [index_name] ([columnname])
--删除索引
DROP INDEX [index_name] ON [tablename]
--删除主键索引
ALTER TABLE t26 DROP PRIMARY KEY
- 主键索引,主键自动的为主索引(类型为
PRIMARY KEY) - 唯一索引(UNIQUE)
- 普通索引(INDEX),值可以重复
- 全文索引(FULLTEXT)试用于MyISAM,一般开发不使用mysql自带的索引,而是使用全文索引框架,Solr 和 ElasticSearch (ES)