为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
与MySQL的零距离接触_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • 创建完表后往表中添加列: ALTER TABLE user2 ADD id SMALLINT UNSIGNED PRIMARY KEY; 为列添加主键约束: ALTER TABLE user2 ADD PRINMARY KEY (id); 为列添加唯一约束: ALTER TABLE user2 ADD UNIQUE (username); 为列添加外键约束: ALTER TABLE user2 ADD FOREIGN KEY (pid) REFERENCES province (id); 为列添加默认约束: ALTER TABLE use2 ALTER age SET DEFAULT 20; 删除默认约束: ALTER TABLE user2 ALTER age DROP DEFAULT; 删除表中的某一字段: ALTER TABLE t3 DROP username;
    查看全部
  • 添加主键约束: ALTER TABLE tbl_name ADD[CONSTRAINT [SYMBOL]]PRIMARY KEY[INDEX|KEY][index_name] [index_type](index_col_name,....) 添加唯一约束: ALTER TABLE tbl_name ADD[CONSTRAINT [SYMBOL]]UNIQUE [INDEX|KEY][index_name] [index_type](index_col_name,....) 添加外键约束: ALTER TABLE tbl_name ADD[CONSTRAINT [SYMBOL]]FOREIGN KEY[INDEX|KEY][index_name] [index_type](index_col_name,....) reference_definition 添加默认约束:ALTER TABLE users2(表名称) ALTER age(列名称) SET DEFAULT 15;//把users2中age的默认值改为15 删除默认约束:ALTER TABLE users2(表名称) ALTER age(列名称) DROP DEFAULT;//把users2中age的默认值删除清空,变为NULL --------------------------------- 添加外键约束:ALTER TABLE users2 ADD FOREIGN KEY(pid) REFERENCES provinces (id); 添加默认约束:ALTER TABLE users2 ALTER age SET DEFAULT 15; 删除默认约束:ALTER TABLE users2 ALTER age DROP DEFAULT; 数据表的修改操作:无非就是添加列,删除列,添加约束,删除约束。用的是ALTER,而INSERT是对数据表添加插入记录用的。 -------------------------
    查看全部
  • 添加单列示例:ALTER TABLE users1(表名称) ADD password(要添加的列的名称) VARCHAR(32) NOT NULL AFTER username(添加到username列的后面); //添加到某数据库的某个数据表的某个列后 添加多列:ALTER TABLE tbl_name ADD (col_name column_definition,...); 删除列:ALTER TABLE tbl_name(表名称) DROP col_name(列名称); 展示表中的列:SHOW COLUMNS FROM users1(表名称); 删除多列示例:ALTER TABLE users1(表名称) DROP password(列名称),DROP age(列名称);
    查看全部
  • 表级约束 与 列级约束
    查看全部
  • 对一个数据列建立的约束,称为列级约束 对多个数据列建立的约束,称为表级约束 表级约束只能在列定义后声明 ------------------------ 对于一个列所创建的约束,称之为列级约束,而对于两个或两个以上的列所创建的约束,我们称之为表级约束,列级约束在使用的时候,既可以在列定义的时候声明,也可以在列定义以后声明,而表级的约束只能在列定义以后来声明,在实际开发中,用列级约束比较多,表级约束很少用,除此之外,在所有的约束中,并不是说每种约束都存在着表级或列级约束,其中,NOT NULL 非空约束,DEFAULT约束这两种约束就不存在表级约束,它们只有列级约束,而对于其他的三种,像主键,唯一,外键,它们都可以存在表级和列级约束。 -------------------------------- 表级约束和列级约束 对于一个列所创建的约束,称之为列级约束,而对于两个或两个以上的列所创建的约束,我们称之为表级约束。 列级约束在使用的时候,既可以在列定义的时候声明,也可以在列定义以后声明 表级的约束只能在列定义以后来声明 在实际开发中,用列级约束比较多,表级约束很少用,除此之外,在所有的约束中,并不是说每种约束都存在着表级或列级约束,其中,NOT NULL 非空约束,DEFAULT约束这两种约束就不存在表级约束,它们只有列级约束,而对于其他的三种,像主键,唯一,外键,它们都可以存在表级和列级约束。 -------------------------------- 表级约束与列级约束 对一个数据列建立的约束,称为列级约束 对多个数据列建立的约束,称为表级约束 列级约束既可以在列定义时声明,也可以在列定义后声明 表级约束只能在列定义后声明。 ------------------------------------ 实际开发中,列级约束用的较多,表级约束很少用到 另外NOT NULL,和DEFAULT约束只有列级约束,没有表级约束 而对主键,唯一,外键这三者都有表级和列级约束 =--------------------------- 表级约束与列级约束 * 对一个数据列建立的约束,称为列级约束 * 对多个数据列建立的约束,称为表级约束 * 列级约束既可以在列定义时声明,也可以在列定以后声明 * 表级约束只能在列定义后声明
    查看全部
  • 外键约束的参照操作
    查看全部
  • CASCADE:删除或更新父表中的数据相应的删除或更新子表中的相匹配的行; SHOW CREATE TABLE tb_name;//显示数据表创建时的命令; 创建子表:users1; >CREATE TABLE users( >id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, >username VARCHAR(10) NOT NULL, >pid(外键) SMALLINT(与参照键类型相同) UNSIGNED(与参照键有无符号类型也要相同),//外键的作用体现在这:如果我们要添加一个省份的字段,需要添加个char型的,现在有了关系型数据库,我们只需要存储省份的id即可; >FOREIGN KEY (pid) PREFERENCES provinces (id) ON DELETE CASCADE, >); INSERT provinces(pname) VALUES('A'); INSERT provinces(pname) VALUES('B'); INSERT provinces(pname) VALUES('C'); INSERT users1(username,pid) VALUES('Tom',1); INSERT users1(username,pid) VALUES('Jerry',2); INSERT users1(username,pid) VALUES('Lucy',3); 当删除provinces中的id=3的数据C时,相应的users1中的Lucy也会被删掉,更新的话同样如此; SET NULL://从父表删除或更新行,会设置子表中的外键列为NULL,如果使用该选项,必须保证子表列没有指定NOT NULL RESTRICT://拒绝对父表的删除或更新操作; NO ACTION://标准的SQL语句,在MYSQL当中与RESTRICT相同 实际开发中,我们很少使用物理的外键约束,而是使用逻辑约束;物理的外键约束只有innoDB这种存储引擎才会支持,MYISAM这种引擎就不支持物理的外键约束。反过来说,当我们使用到的引擎为MYISAM时,只能使用逻辑外键(即两个表的设计的逻辑关系)。
    查看全部
  • 1、父表在更新表的时候,子表是否进行相应操作; 2、在两张表中插入记录,必须现在父表中插入记录,然后再在子表中插入记录;因为只有父表中存在记录,子表才能参照。 3、即使插入出错,auto_increment 也会给一个序号。 4、在设置外键约束时,如果加上on delete cascade 则父表删除该键数据,子表也会自动清除对应键值数据; 5、restrict 和 no action 都会拒绝对父表的删除或更新操作; 6、实际中很少使用物理的外键约束,一般使用逻辑的外键约束;逻辑外键是指,字段设置时不需要额外通过数据库语法设置成外键关联,而是通过代码去限制表之间的关联;物理外键实际通过数据库语法设置为外键,硬性限制表之间的关联; 7、物理外键约束只有innodb引擎才支持,其他引擎不能支持。 8、CASCADE:在父表上update/delete记录时,同步update/delete掉子表的匹配记录 ; SET NULL:在父表上update/delete记录时,将子表上匹配记录的列设为null (要注意子表的外键列不能为not null); NO ACTION:如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作 ; RESTRICT:同no action, 都是立即检查外键约束;
    查看全部
  • 外键约束的参照CASCAD、SET NULL、RESTRICT、NO ACTION CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行 CASCADE使用示例:CREATE TABLE users1(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,username VARCHAR(10) NOT NULL,pid SMALLINT UNSIGNED,FOREIGN KEY (pid) REFERENCES provinces (id) ON DELETE CASCADE); 外键参照了主键,不能创建没有主键值的外键。 删除id为3的那行信息:DELECT FROM provinces WHERE id=3 ------------------------------------ 外键约束的参照操作 CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行 SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL RESTRICT:拒绝对父表的删除或更新操作 NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同 -------------------------------------
    查看全部
  • 编辑数据表的默认存储引擎
    查看全部
  • 参照列provinces(id)指定AUTO_INCREMENT PRIMARY KEY创建索引,外键列users(pid)没有创建索引,SHOW INDEXES FROM users\G中Seq_in_index为索引列的序列号,外键列没有创建索引,MySQL自动创建。视频中PPT对着,应该是口误。 ---------------------- 1.父表和子表必须使用相同的存储引擎,而且禁止使用临时表。 2.数据表的存储引擎只能为InnoDB。 3.外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。 4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
    查看全部
  • 第4点的“外键列”和“参照列”与“自动创建索引”之间的关系是不是搞反了?
    查看全部
  • 外键约束的要求
    查看全部
  • 外键约束
    查看全部
  • 1、父表和子表必须有相同的存储引擎,且禁止使用临时表; 2、在Mysql中只能为InnoDB; 在my.ini中设置storage 3、外键列和参照列必须具有相似的数据类型,其中数字的长度和sign符号位必须相同,字符类型长度可以不同; 4、外键列和参照列必须创建索引,若参照列不存在索引,mysql会自动创建索引,外键列不存在索引,mysql不会自动创建索引。 5、主键在创建是会自动创建索引;show indexes from tbname\G;
    查看全部

举报

0/150
提交
取消
课程须知
要想学习本课程,你只需要知道数据库是个什么东东就足够了,是不是很easy?!
老师告诉你能学到什么?
1、MySQL安装与配置 2、数据类型 3、流程控制与运算符 4、DDL、DCL、DQL、DML 5、常用函数 6、表类型(存储引擎) 7、图形化工具
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!