-
1.添加主键约束 ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name, ...); CREATE TABLE users2( username VARCHAR(20) NOT NULL, pid SMALLINT UNSIGNED ); SHOW CREATE TABLE users2; ALTER TABLE users2 ADD id SMALLINT UNSIGNED; SHOW COLUMNS FROM users2; ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id); SHOW COLUMNS FROM users2; 2.添加唯一约束 ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...); ALTER TABLE users2 ADD UNIQUE (username); SHOW COLUMNS FROM users2; 3.添加外键约束 ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] FOREIGN KEY [index_name] (index_col_name, ...) reference_definition ALTER TABLE users2 ADD FOREIGN KEY (pid) REFERENCES province (id); 4.添加、删除默认约束 ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} ALTER TABLE users2 ADD age TINYINT UNSIGNED NOT NULL; ALTER TABLE users2 ALTER age SET DEFAULT 15; SHOW一下 ALTER TABLE users2 ALTER age DROP DEFAULT;查看全部
-
1.修改数据表 添加单列 ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]; SHOW COLUMNS FROM users1; ALTER TABLE users1 ADD age TINYINT UNSIGNED NOT NULL DEFAULT 10; ALTER TABLE users1 ADD passwd VARCHAR(30) NOT NULL AFTER username; ALTER TABLE users1 ADD truename VARCHAR(20) NOT NULL FIRST; 2.添加多列 ALTER TABLE tbl_name ADD [COLUMN] (col_name column_definition, ...); 3.删除列 ALTER TABLE tbl_name DROP [COLUMN] col_name; ALTER TABLE users1 truename;//单次删除 ALTER TABLE users1 DROP passwd, DROP age; SHOW COLUMN FROM users1; 修改数据表 添加单列 ALTER TABLE table_name ADD [COLUNM] col_name column_definition [FIRST | AFTER col_name] --FIRST AFTER指定添加的位置 --添加多列 ALTER TABLE table_name ADD [COLUNM] (col_name column_definition,...) 删除列 ALTER TABLE tbl_name DROP [COLUMN] col_name 删除多列 ALTER TABLE tbl_name DROP [COLUMN] col_name, DROP [COLUMN] col_name,DROP [COLUMN] col_name.查看全部
-
对一个数据列建立的约束,称为列级约束. 对多个数据列建立的约束,称为表级约束. 列级约束既可以在列定义时声明,也可以在列定义后声明。 表级约束只能在列定义后声明。 NOT NULL和DEFAULT约束不存在表级约束查看全部
-
1.外键约束的参照操作 CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行 SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL.如果使用该选项,必须保证子表列没指定非空 RESTRICT:拒绝对父表的删除或更新操作。 NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同 CREATE TABLE user1( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL, pid SMALLINT UNSIGNED, FOREIGN KEY (pid) REFERENCES province('id') ON DELETE CASCADE ); SHOW CREATE TABLE user1; INSERT province(pname) VALUES('A'); INSERT province(pname) VALUES('B'); INSERT province(pname) VALUES('C'); SELECT * FROM province; INSERT users1(username, pid) VALUES('TOM', 3); INSERT users1(username, pid) VALUES('John', 7);//不符合外键约束 INSERT users1(username, pid) VALUES('John', 1); INSERT users1(username, pid) VALUES('Rose', 3); SELECT * FROM users1; DELETE FROM province WHERE id=3; SELECT * FROM province; SELECT * FROM users1; 很少使用物理外键约束,常用逻辑的外键约束。 实际的使用中,一般不去定义物理的外键约束。查看全部
-
1.约束 保证数据的完整性和一致性 约束分为表级约束和列级约束 约束类型包括 NOT NULL(非空约束) PRIMARY KEY(主键约束) UNIQUE KEY(唯一约束) DEFAULT(默认约束) FOREIGN KEY(外键约束) 2.外键约束 - FOREIGN KEY 保持数据一致性, 完整性 实现一对一或一对多关系 3.外键约束的要求 父表和子表必须使用相同的存储引擎,而且禁止使用临时表 数据表的存储引擎只能为InnoDB 外键列和参照列必须具有类似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。 外键列和参照列必须参加索引。如果外键列不存在索引的话,MySQL将自动创建索引。 4.编辑数据表的默认存储引擎 MySQL配置文件 default-storage-engine=INNODB mysql -uroot -p USE test; CREATE TABLE province( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(20) NOT NULL ); SHOW CREATE TABLE province; CREATE TABLE users( id SMALLINT UNSIGNED PRIMARY KEY AUTOINCREMENT, username VARCHAR(10) NOT NULL, pid BIGINT, FOREIGN KEY (pid) REFERENCE province (id) ); //有错 CREATE TABLE users( id SMALLINT UNSIGNED PRIMARY KEY AUTOINCREMENT, username VARCHAR(10) NOT NULL, pid SMALLINT UNSIGNED, FOREIGN KEY (pid) REFERENCE province (id) ); //成功 SHOW INDEXES FROM province; SHOW INDEXES FROM users; SHOW CREATE TABLE users;查看全部
-
1.默认约束 - DEFAULT 默认值 当插入记录时,如果没有明确为字段赋值,则自动赋予默认值 CREATE TABLE tb6( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20) NOT NULL UNIQUE KEY, sex ENUM('1', '2', '3') DEFAULT '3' ); SHOW COLUMNS FROM tb6; INSERT tb6(username) VALUES('TOM'); SELECT * FROM tb6;查看全部
-
1.唯一性约束 - UNIQUE KEY 唯一约束 唯一约束可以保证记录的唯一性 唯一约束的字段可以为空值 每张数据表可以存在多个唯一约束 CREATE TABLE tb5( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20) NOT NULL UNIQUE KEY, age TINYINT UNSIGNED ); SHOW COLUMNS FROM tb5; INSERT tb5(username, age) VALUES('TOM', 22); INSERT tb5(username, age) VALUES('TOM', 23);//报错,违反唯一性约束查看全部
-
1.主键 - PRIMARY KEY 主键约束 每张数据表只能存在一个主键 主键保证记录的唯一性 主键自动为NOT NULL CREATE TABLE tb3( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(30) NOT NULL ); SHOW COLUMNS FROM tb3; INSERT tb3(username) VALUES('A'); INSERT tb3(username) VALUES('BB'); INSERT tb3(username) VALUES('C'); INSERT tb3(username) VALUES('D'); SELECT * FROM tb3; CREATE TABLE tb4( id SMALL UNSIGNED PRIMARY KEY, username VARCHAR(20) NOT NULL ); SHOW COLUMNS FROM tb4; INSERT tb4 VALUES(4, 'TOM'); INSERT tb4 VALUES(22, 'John'); INSERT tb4 VALUES(22, 'Rose'); //主键字段不允许有重复值出现 auto_increment必须和主键一起使用,而主键不一定要设成auto_increment查看全部
-
1.自动编号 - AUTO_INCREMENT 自动编号,且必须与主键配合使用 自动编号AUTO_INCREMENT 1、自动编号:保证记录的唯一性 2、类型必须为整型(可以是FLOAT(5,0)等,小数点后必须为0),必须和主键PRIMARY KEY组合使用 3、默认情况下,起始值为1,每次的增量为1 默认情况下,起始值为1, 每次增量为1. CREATE TABLE tb3( id SMALLINT UNSIGNED AUTO_INCREMENT, username VARCHAR(30) NOT NULL); //有错,自动增量字段必须设置成主键查看全部
-
1.空值与非空 NULL,字段值可以为空 NOT NULL, 字段值禁止为空 CREATE TABLE tb2( username VARCHAR(20) NOT NULL, age TINYINT UNSIGNED NULL); SHOW COLUMNS FROM tb2; INSERT tb2 VALUES('TOM', NULL); SELECT * FROM tb2; INSERT tb2 VALUES(NULL, 25);查看全部
-
1.插入记录 INSERT [INTO] tbl_name [(col_name, ...)] VALUES(val, ...) INSERT tb1 VALUES('TOM‘, 23, 7898.25); INSERT tb1 VALUES('Tom', 25); //有error INSERT tb1(username, salary) VALUES('John', 4005.55); 2.记录查找 SELECT expr, ... FROM tbl_name; SELECT * FROM tb1; //* 是字段的过滤查看全部
-
【查看数据表列表】 SHOW TABLES [FROM db_name] 【查看数据表结构】 SHOW COLUMNS FROM tbl_name查看全部
-
1.查看数据表列表 SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr] SHOW TABLES; //查看当前数据库中的表 SHOW TABLES FROM mysql; FROM之后,当前数据库不会发生改变 SELECT DATABASE(); 1、查看数据表是否存在:SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr ] 2、FROM db_name 可以查看其它数据库中的表查看全部
-
1.数据表 是数据库最重要的组成部分之一,是其他对象的基础。行称为记录,列称为字段 2.打开数据库 USE 数据库名称; mysql -uroot -proot -P3306 -h127.0.0.1 SHOW DATABASES; USE test; SELECT DATABASE(); 3.创建数据表 CREATE TABLE [IF NOT EXISTS] table_name( column_name data_type, ... ) CREATE TABLE tb1( username VARCHAR(20), age TINYINT UNSIGNED, salary FLOAT(8,2) UNSIGNED );查看全部
-
字符型 1、CHAR(M):定长类型,比如CHAR(5),如果我们只赋值abc,那么系统会自动在后面补两个空格 2、VARCHAR(M):变长类型,L+1个字节,其中L<=M且0<=M 3、ENUM('value1','value2'...)枚举值,提供几个选项,选择其中一个,如:性别('男','女','保密') 4、SET('value1','value2'...) 最多64个成员,可以任选里面其中几个,任意排列组合~查看全部
举报
0/150
提交
取消