MySql教程

MySQL19

本文主要是介绍MySQL19,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

唯一约束

唯一约束,其特点是:
不允许表中有重复记录;
允许表中有NULL记录;
创建唯一约束后,系统将自动创建唯一索引;

-- 创建数据表时添加列级唯一约束 
CREATE TABLE t7( 
    id SMALLINT UNSIGNED PRIMARY KEY, 
    username VARCHAR(20) NOT NULL UNIQUE KEY, 
    email    VARCHAR(30) NOT NULL UNIQUE KEY 
); 
DESC t7; 
-- 创建数据表时添加表级唯一约束 
CREATE TABLE t8( 
    id SMALLINT UNSIGNED PRIMARY KEY, 
    username    VARCHAR(20) NOT NULL, 
    clASses        VARCHAR(20) NOT NULL, 
    UNIQUE KEY (username,clASses) 
); 
DESC t8; 
-- 创建表时,添加唯一约束
CREATE TABLE word05(
	id INT(8) PRIMARY KEY,
	name VARCHAR(30) UNIQUE,
	sex CHAR(3),
	age INT(3),
	email VARCHAR(50),
	address VARCHAR(50)
);
DESC word05;
INSERT INTO word05 VALUES(1,'rose','女',25,'rose@164.com','北京');
INSERT INTO word05 VALUES(2,'rose','男',20,'rose1@164.com','北京1');---错误
INSERT INTO word05(id,sex,age,email,address) VALUES(3,'男',20,'jack@164.com','上海');

修改表时,添加唯一约束

语法格式:

ALTER TABLE 表名 ADD UNIQUE(列名1,列名2,.....列名n);
-- 修改word05表,对email列添加唯一约束,并验证
ALTER TABLE word05 ADD UNIQUE(email);
DESC word05;
-- 修改word05表,对address列添加唯一约束,并验证
ALTER TABLE word05 ADD UNIQUE(address);
DESC word05;

删除唯一约束

语法格式:

ALTER TABLE 表名 DROP INDEX KEY_name值;
-- 查看KEY_name值格式:
SHOW KEYS FROM 表名;
-- 删除word05表中,name列上的唯一约束,并验证
-- (1) 查看name列对应的KEY_name值
SHOW KEYS FROM word05;  --name
-- (2)根据语法格式删除
ALTER TABLE word05 DROP INDEX name;
-- (3)验证
DESC word05;
-- 删除word05表中,email列上的唯一约束,并验证
SHOW KEYS FROM word\G; -email
ALTER TABLE word05 DROP INDEX email;
DESC word05;

主键约束与唯一约束的区别

每张数据表只能有一个主键约束;但是可以存在多个唯一约束;
主键约束不能为空;唯一约束可以为空;

这篇关于MySQL19的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!