wordpress 外贸企业模板,关键词排名优化公司,微网站地图定位,wordpress圈子文章目录 索引普通索引创建索引修改表结构(添加索引)创建表的时候直接指定删除索引的语法 唯一索引创建索引修改表结构创建表的时候直接指定 使用ALTER 命令添加和删除索引使用ALTER 命令添加和删除主键显示索引信息 约束非空约束#xff1a;唯一约束#xff1a;主键约束唯一约束主键约束外键约束 索引
MySQL索引是数据库表中的一个或多个列的值进行排序的一种结构它的作用是帮助MySQL快速高效地查询数据。索引可以极大地提高数据库的查询速度但同时也会占用额外的磁盘空间并且在插入、删除和更新数据时可能会降低性能因为索引也需要被更新。
普通索引
创建索引
CREATE INDEX indexName ON table_name (column_name)修改表结构(添加索引)
ALTER table tableName ADD INDEX indexName(columnName)创建表的时候直接指定
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) ); 删除索引的语法
DROP INDEX indexName ON mytable; 唯一索引
它与前面的普通索引类似不同的就是索引列的值必须唯一但允许有空值。如果是组合索引则列值的组合必须唯一。它有以下几种创建方式
创建索引
CREATE UNIQUE INDEX indexName ON mytable(username(length)) 修改表结构
ALTER table mytable ADD UNIQUE [indexName] (username(length))创建表的时候直接指定
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) ); 使用ALTER 命令添加和删除索引
有四种方式来添加数据表的索引 ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键这意味着索引值必须是唯一的且不能为NULL ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建索引的值必须是唯一的除了NULL外NULL可能会出现多次。 ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引索引值可出现多次。 ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list): 该语句指定了索引为 FULLTEXT 用于全文索引。
以下实例为在表中添加索引。
ALTER TABLE testalter_tbl ADD INDEX (c);你还可以在 ALTER 命令中使用 DROP 子句来删除索引。尝试以下实例删除索引:
ALTER TABLE testalter_tbl DROP INDEX c;使用ALTER 命令添加和删除主键
主键作用于列上可以一个列或多个列联合主键添加主键索引时你需要确保该主键默认不为空NOT NULL。实例如下
ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);你也可以使用 ALTER 命令删除主键
ALTER TABLE testalter_tbl DROP PRIMARY KEY;删除主键时只需指定PRIMARY KEY但在删除索引时你必须知道索引名。 显示索引信息
你可以使用 SHOW INDEX 命令来列出表中的相关的索引信息。可以通过添加 \G 来格式化输出信息。
尝试以下实例:
SHOW INDEX FROM table_name;约束
MySQL中的约束是用来限制表中数据的规则以保证数据的完整性、精确性和可靠性。MySQL中常见的约束包括非空约束NOT NULL、唯一约束UNIQUE、主键约束PRIMARY KEY、外键约束FOREIGN KEY。
非空约束
作用限制某个字段/某列的值不允许为空。关键字NOT NULL。注意空字符串‘’不等于NULL0也不等于NULL。创建方式在创建表时在字段定义后添加NOT NULL约束或使用ALTER TABLE语句修改现有字段添加NOT NULL约束。 1.创建表时添加约束 CREATE TABLE stu(id INT,NAME VARCHAR(20) NOT NULL -- name为非空
);2.创建表完后添加非空约束 ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;3.删除name的非空约束 ALTER TABLE stu MODIFY NAME VARCHAR(25);唯一约束
作用确保某一列/某一个字段的值不会重复。关键字UNIQUE。特点同一个表可以有多个唯一约束唯一约束可以是某一个列的值唯一也可以多个列组合的值唯一唯一性约束允许列值为空如果两条数据该字段都赋值NULL不会受到唯一性约束的限制。创建方式在创建表时在字段定义后添加UNIQUE约束或使用ALTER TABLE语句添加UNIQUE约束。 1.创建表时添加唯一约束 CREATE TABLE stu(id INT,phone_num VARCHAR(20) UNIQUE -- 添加了唯一的约束
);注意mysql中唯一约束限定的列的值可以有多个null MySQL默认也会对UNIQUE的列建立索引 2.删除唯一约束 alter table stu modify phone_num varchar(20);
-- 若无法删除可先将索引删除
ALTER TABLE stu DROP INDEX phone_num;3.在创建表后添加唯一约束 ALTER TABLE stu MODIFY phone_nume VARCHAR(20) UNIQUE;主键约束
作用用来唯一标识表中的一行记录。关键字PRIMARY KEY。特点主键约束相当于唯一约束非空约束的组合一个表最多只能有一个主键约束主键约束对应着表中的一列或者多列复合主键如果是多列组合的复合主键约束那么这些列都不允许为空值并且组合的值不允许重复。创建方式在创建表时在字段定义后添加PRIMARY KEY约束或在定义完所有字段后使用CONSTRAINT关键字指定主键约束或使用ALTER TABLE语句添加主键约束。 1.注意 含义非空且唯一 主键就是表中记录的唯一标识 2.在创建表时添加主键约束 CREATE TABLE stu (id INT PRIMARY KEY, -- 给id添加主键约束NAME VARCHAR(20)
);3.删除主键 ALTER TABLE stu DROP PRIMARY KEY; -- 去除主键
alter table stu modify id int; -- 移除not null的限约束4.创建完表后添加主键 ALTER TABLE stu MODIFY id INT PRIMARY KEY; 5.自动增长 1.概念如果某一列时数值类型的使用auto_increment可以来完成值的自动增长 2.在创建表时添加主键约束并且完成主键自动增长 CREATE TABLE stu(id INT PRIMARY KEY AUTO_INCREMENT, -- 给id添加主键约束 并完成主键自动增长NAME VARCHAR(20)
);3.删除自动增长 ALTER TABLE stu MODIFY id INT;4.添加自动增长 ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;外键约束
作用限定某个表的某个字段的引用完整性。特点从表的外键列必须引用/参考主表的主键或唯一约束的列在创建外键约束时如果不给外键约束命名默认名不是列名而是自动产生一个外键名如student_ibfk_1也可以指定外键约束名一个表可以建立多个外键约束。创建方式在创建表时使用FOREIGN KEY关键字指定外键列并通过REFERENCES关键字指定被引用的表和列或使用ALTER TABLE语句添加外键约束。 1.在创建表时可以添加外键 create table 表名(...外键列constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称) );2.删除外键 ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;3.创建表之后添加外键 ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键列名称) REFERENCES 主表名称(主表列名称) ;4.级联操作 添加级联操作 ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键列名称) REFERENCES 主表名称主表列名称 ON UPDATE CASCADE ON DELETE CASCADE;分类 级联更新ON UPDATE CASCADE级联删除ON DELETE CASCADE