黑马mysql商品表_黑马MySQL数据库学习day02 表数据CRUD 约束CRUD

1 /*

2 约束分类: 4种约束的CRUD3 注意点:4 唯一 主键 外键 都可以约束多列。5 4种约束,建表后,添加约束,如果表中有数据,则可能出bug,导致约束添加失败。6

7 查询约束:8 查询约束信息:SHOW CREATE TABLE 表名;9 查询约束语法:help create talbe; help alter table10

11 1.非空12 NOT NULL 非空13 建表时加非空,删除非空,建表后加非空14

15 建表后添加非空约束:16 bug: 如果表中有数据,并且指定列有null值,则非空约束添加失败。17

18 2.唯一19 UNIQUE 唯一,可以有多个null值20 建表时加UNIQUE,删除UNIQUE,建表后加UNIQUE21

22 建表后添加唯一约束:23 bug: 如果表中有数据,并且指定的列有重复数据,则UNIQUE约束添加失败24

25 注意点:26 UNIQUE约束允许多个null值。27

28 3.主键29 PRIMARY KEY 唯一非空,一张表只能有一个主键约束30 建表时加PRIMARY KEY,删除PRIMARY KEY,建表后加PRIMARY KEY31

32 建表后添加主键约束:33 bug: 如果表中有数据,并且指定列含有null值或者重复数据,则添加主键失败。34

35 注意点:36 1.PRIMARY KEY != UNIQUE + NOT NULL(因为主键只能有一个,而UNIQUE + NOT NULL可以多个)37 2.删除PRIMARY KEY后还会有一个NOT NULL约束38

39 4.外键40 FOREIGN KEY 外键约束可以设置级联更新和级联删除41 建表时加FOREIGN KEY,删除FOREIGN KEY,建表后加FOREIGN KEY42

43 建表后添加外键约束:44 bug: 如果从表有数据,并且外键列引用了被引用列没有的值,则添加外键约束失败45

46 注意点:47 1.添加外键约束,主表必须存在48 2.表数据约束:49 1.从表不能引用主表中不存在的值50 2.主表不能删除被从表引用的记录51 3.删表:从表引用主表,不能直接删除主表。52

53 5.综合:54 唯一 主键 外键 都可以约束多列。55 4种约束,建表后,添加约束,如果表中有数据,则可能出bug,导致约束添加失败。56

57 6.自动增长58 AUTO_INCREMENT59 1.一张表只能有一个自动增长列,该列必须是数值类型60 2.自增的新值= 表数据最大值 + 161 7.默认值62 DEFAULT63

64 */

65 DROP TABLE IF EXISTSstudent;66

67 --建表时添加NOT NULL约束

68 CREATE TABLEstudent(69 name VARCHAR(50) NOT NULL

70 );71

72 --删除NOT NULL约束

73 ALTER TABLE student MODIFY name VARCHAR(50);74

75 --建表后添加NOT NULL约束

76 --bug: 如果表中有数据,并且指定列有null值,则非空约束添加失败。

77 ALTER TABLE student MODIFY name VARCHAR(50) NOT NULL;78 DELETE FROM student WHERE name IS NULL;79

80

81

82 DROP TABLE IF EXISTSstudent;83

84 --建表时,添加UNIQUE约束

85 CREATE TABLEstudent(86 name VARCHAR(50) UNIQUE

87 );88

89 CREATE TABLEstudent(90 name VARCHAR(50),91 CONSTRAINT uni_name UNIQUE(name)92 );93

94 --删除UNIQUE约束

95 ALTER TABLE student DROP INDEXname;96

97 --建表后,添加UNIQUE约束

98 --bug: 如果表中有数据,并且指定的列有重复数据,则UNIQUE约束添加失败

99 ALTER TABLE student MODIFY name VARCHAR(50) UNIQUE;100 ALTER TABLE student ADD CONSTRAINT uni_name UNIQUE(name);101

102 --查看表信息

103 SHOW CREATE TABLEstudent;104

105 /*

106 PRIMARY KEY 主键约束107 唯一非空,一张表只能有一个主键约束108 注意点:109 PRIMARY KEY != UNIQUE + NOT NULL(因为主键只能有一个,而UNIQUE + NOT NULL可以多个)110 */

111 DROP TABLE IF EXISTSstudent;112

113 --建表时,添加PRIMARY KEY约束

114 CREATE TABLEstudent(115 name VARCHAR(50) PRIMARY KEY

116 );117

118 CREATE TABLEstudent(119 name VARCHAR(50),120 PRIMARY KEY(name)121 );122

123 --删除主键

124 ALTER TABLE student DROP PRIMARY KEY; --删除后还有一个NOT NULL约束

125

126 --创建完表后,添加主键

127 --bug: 如果表中有数据,并且指定列含有null值或者重复数据,则添加主键失败。

128 ALTER TABLE student MODIFY name VARCHAR(50) PRIMARY KEY;129 ALTER TABLE student ADD PRIMARY KEY(name);130

131 --查看表:约束

132 SHOW CREATE TABLEstudent;133

134

135 /*

136 外键约束:137 注意点:138 1.添加外键约束,主表必须存在139 2.表数据约束:140 1.从表不能引用主表中不存在的值141 2.主表不能删除被从表引用的记录142 3.删表:从表引用主表,不能直接删除主表。143 */

144 DROP TABLE IF EXISTSemployee;145 DROP TABLE IF EXISTSdepartment;146

147 CREATE TABLEdepartment(148 id INT PRIMARY KEY,149 name varchar(50) UNIQUE NOT NULL

150 );151 --建表时,添加外键

152 CREATE TABLEemployee(153 id INT PRIMARY KEY,154 name varchar(50) NOT NULL,155 dep_id INT,156 CONSTRAINT emp_dep_fk FOREIGN KEY(dep_id) REFERENCESdepartment(id)157 );158 --删除外键

159 ALTER TABLE employee DROP FOREIGN KEYemp_dep_fk;160

161 --建表后,添加外键

162 --bug: 如果从表有数据,并且外键列引用了被引用列没有的值,则添加外键约束失败

163 ALTER TABLE employee ADD CONSTRAINT emp_dep_fk FOREIGN KEY(dep_id) REFERENCESdepartment(id);164

165 SHOW CREATE TABLE employee;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值