优快云话题挑战赛第2期
参赛话题:学习笔记
目录
1.主键约束 —— primary key
- 不允许插入null
- (null:表示空,是暂时无法确定的值,例如:暂时无法确定一个员工信息..
null是关键字,使用的过程中不能加引号)
- (null:表示空,是暂时无法确定的值,例如:暂时无法确定一个员工信息..
- 不允许相同
-
CREATE TABLE laptop( lid INT PRIMARY KEY AUTO_INCREMENT, );
2.非空约束 —— not null
- 声明了非空约束的列,不允许插入null
-
CREATE TABLE laptop( price DECIMAL(7,2) NOT NULL, );
3.唯一约束 —— unique
- 声明了唯一约束的列不允许插入重复的值,允许插入null,甚至多个null
- 可能会影响到排序
-
CREATE TABLE laptop( title VARCHAR(64) UNIQUE, );
4.默认值约束 —— default
- 插入一条数据的时候,如果不提供值,会使用默认值
- 设置默认值:使用default设置默认值
- 调用默认值
- 给指定的列提供值,没有出现列会自动调用默认值
insert into 数据表名称(列名称,…) values(值,…) - 哪个列要使用默认值,只需要提供关键字default就会自动调用默认值
insert into 数据表名称 values(值, default,…)
- 给指定的列提供值,没有出现列会自动调用默认值
-
CREATE TABLE laptop( --这里默认值为TRUE isindex BOOLEAN DEFAULT TRUE, );
5.检查约束 —— check
- 也称为自定义约束,用户可以自己指定约束条件
-
create table student( score tinyint check(score>=0 and score<=100) );
- mysql不支持检查约束,会严重影响数据的插入速度。后期JS可以实现
6.外键约束
- 为了确保两个表直接建立关联。
- 声明了外键约束的列,插入的值必须在另一个表的主键列中出现过
- 注意事项:外键约束的列必须和另一个表主键列,类型要保持一致。
- oreign key(外键列) references 另一个表(主键列)
-
create table student( familyid INT, #将familyid设置外键约束,所插入的值,必须在family表中的主键列fid中出现过,并且两者类型需要保持一致 FOREIGN KEY(familyid) REFERENCES family(fid) );
7.自增列
- AUTO_INCREMENT
- 自动增长,声明了自增列,在插入数据的时候,只需要提供值为null,就会获取最大值然后加1插入
- 注意事项:必须添加在整数形式的主键列允许手动赋值
-
create table student( lid INT PRIMARY KEY AUTO_INCREMENT, );
8.整体代码
--设置编码
SET NAMES utf8;
--先丢弃在创建
DROP DATABASE IF EXISTS zyh;
--创建数据库
CREATE DATABASE zyh CHARSET=utf8;
--进入数据库
USE zyh;
--创建表family
CREATE TABLE yh_user(
uid ,
fname VARCHAR(32) UNIQUE
);
--插入数据 fid fname 10 联想 20 戴尔 30 小米
INSERT INTO family VALUES(10,'联想');
INSERT INTO family VALUES(20,'戴尔');
INSERT INTO family VALUES(30,'小米');
--创建表laptop
CREATE TABLE laptop(
lid INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(64) UNIQUE,
price DECIMAL(7,2) NOT NULL DEFAULT 5000,
shelf DATE DEFAULT '1999-09-09',
detail VARCHAR(128),
isindex BOOLEAN DEFAULT TRUE,
familyid INT,
#将familyid设置外键约束,所插入的值,必须在family表中的主键列fid中出现过,并且两者类型需要保持一致
FOREIGN KEY(familyid) REFERENCES family(fid)
);
--插入数据包含的列有编号lid,标题title,价格price上架时间shelf,详情detail,是否为首页推荐isindex,所属分类编号familyid
--插入数据
INSERT INTO laptop VALUES(1,'这里是联想','39999.99','2022-07-04','联想的详情',TRUE,10);
INSERT INTO laptop VALUES(2,'这里是戴尔','4000.99','2022-07-04','戴尔的详情',FALSE,20);
INSERT INTO laptop VALUES(3,NULL,7888.99,'2022-07-04','小米的详情',FALSE,30);
INSERT INTO laptop VALUES(4,NULL,7888.99,'2022-07-04','小米的详情',FALSE,20);
INSERT INTO laptop VALUES(5,'小新',DEFAULT,DEFAULT,'小米的详情',DEFAULT,30);
INSERT INTO laptop VALUES(NULL,'小新2',DEFAULT,DEFAULT,'小米的详情',DEFAULT,30);
每日一句
君子坦荡荡,小人长戚戚。
君子心胸开朗,思想上坦率洁净,外貌动作也显得十分舒畅安定。小人心里欲念太多,心理负担很重,就常忧虑、担心,外貌、动作也显得忐忑不安,常是坐不定,站不稳的样子。