小广告清理,seo短视频网页,wordpress插件怎么做,包头企业网站建设文章目录 数据类型索引的建立普通索引唯一索引使用ALTER 命令添加和删除索引使用ALTER 命令添加和删除主键显示索引信息 数据的约束非空约束#xff1a;not null#xff0c;值不能为null唯一约束#xff1a;unique#xff0c;值不能重复主键约束#xff1a;primary key外键… 文章目录 数据类型索引的建立普通索引唯一索引使用ALTER 命令添加和删除索引使用ALTER 命令添加和删除主键显示索引信息 数据的约束非空约束not null值不能为null唯一约束unique值不能重复主键约束primary key外键约束foreign key 数据类型 数值类型INT、BIGINT、FLOAT、DOUBLEDECIMAL等。 字符串类型CHAR、VARCHAR、TEXT等。 日期和时间类型DATE、DATETIME、TIMESTAMP等。 二进制类型BLOB、LONGBLOB、VARBINARY等。 枚举类型ENUM。 集合类型SET。 数值类型 字符串类型 字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。 字符串类型主要是varchar 和 char, UTF8一个汉字3个字节 GBK一个汉字2个字节 日期和时间类型 表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR 示例 CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,email VARCHAR(100) UNIQUE,password VARCHAR(100) NOT NULL,created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,age INT CHECK(age 18),address TEXT,role ENUM(admin, user) DEFAULT user
);
这个语句将创建一个名为users的表包含多个列和约束。其中id列是主键name列是非空字符串email列是唯一的password列是非空字符串created_at列是日期时间类型updated_at列是日期时间类型但在更新时会自动更新age列使用检查约束以确保其值大于等于18address列是文本类型role列是枚举类型且默认值为’user’。
索引的建立 MySQL索引的建立对于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;数据的约束
概念对表中的数据进行限定保证数据的正确性、有效性和完整性。
分类 非空约束NOT NULL确保列中不包含空值。唯一约束UNIQUE保证列中的所有值都是唯一的可以包含空值。主键约束PRIMARY KEY用于唯一标识表中的每一行数据通常使用整数类型的列。外键约束FOREIGN KEY用于定义列与其他表的关系保证引用完整性。
非空约束not null值不能为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值不能重复 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 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;外键约束foreign key 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