#创建表中,选择适合做主键的列,添加主键约束
#学生表
CREATE TABLE Student(
stuid INT PRIMARY KEY,#主键约束,每一个编号是唯一的,不能为null
stuName VARCHAR(20),
phone VARCHAR(11)
)CHARSET=utf8;
INSERT INTO Student(stuid,stuName,phone)
VALUE (001,‘kaka’,100015);
UNIQUE 唯一、标识表中的一行数据,不可重复,可以为NULL;
#表中的手机号列,添加唯一约束!不能重复,但是可以为NULL
CREATE TABLE Student(
stuid INT PRIMARY KEY,
stuName VARCHAR(20),
phone VARCHAR(11) UNIQUE#唯一的约束,可以为空;
)CHARSET=utf8;
INSERT INTO Student(stuid,stuName,phone)
VALUE (002,‘kaka’,1000154);
INSERT INTO Student(stuid,stuName,phone)
VALUE (003,‘kaka’,NULL);
SELECT * FROM Student;
AUTO_INCREMENT 主动增长,给主键数值列添加主动增长。从1开始,每次++;不能单独使用,和主键搭配;
#主动增长,避免ID重复
CREATE TABLE Student(
stuid INT PRIMARY KEY AUTO_INCREMENT,#必须搭配主键
stuName VARCHAR(20),
phone VARCHAR(11)
)CHARSET = utf8;
INSERT INTO Student(stuName,phone)
VALUE (001,‘kaka’,100015);
INSERT INTO Student(stuName,phone)
VALUE (002,‘kaka’,1000154);
INSERT INTO Student(stuName,phone)
VALUE (003,‘kaka’,NULL);
域完整性约束
限制列的每一个单位格的数据精确性
NOT NULL 非空,约束此列的每一个单位格不允许有NULL值;
#非空约束,必须有值
CREATE TABLE emp(
id INT PRIMARY KEY AUTO_INCREMENT,
empName VARCHAR(20) NOT NULL,#约束名字一列必须有值
address VARCHAR(50) NOT NULL
)CHARSET = utf8;
INSERT INTO emp (empName,address) VALUE (‘kaka’,‘xi`an’);
DEFAULT 为列赋予默认值,当新增的数据不指定值时,写DEFAULT,以界说好的默认值举行填充;
#默认值约束
CREATE TABLE emp(
id INT PRIMARY KEY AUTO_INCREMENT,
empName VARCHAR(20) NOT NULL,#约束名字一列必须有值
address VARCHAR(50) NOT NULL,
sex CHAR(1) DEFAULT ‘女’#不给值填充默认值女
)CHARSET = utf8;
INSERT INTO emp (empName,address,sex) VALUE (‘kaka’,‘xi`an’,DEFAULT);
语法:CONSTRAINT 引用名 FOREIGN KEY (列名) REFERENCES 被引用表名(列名)
FOREIGN KEY 引用外部表的某5个列的值,新增数据时,约束此列的值必须是被引用表中存在的值
#引用完整性约束
#专业表
CREATE TABLE Speciality(
id INT PRIMARY KEY AUTO_INCREMENT,#主动增长
SpecialName VARCHAR(20) UNIQUE NOT NULL#唯一且不为空
)CHARSET = utf8;
#课程表
CREATE TABLE subject(
subjectid INT PRIMARY KEY AUTO_INCREMENT,
subjecname VARCHAR(20) UNIQUE NOT NULL,
subjecthours INT DEFAULT 20,#默认值20
specialid INT NOT NULL,
CONSTRAINT fk_subject_specialid#外键
FOREIGN KEY(specialid)
REFERENCES Speciality(id)
)CHARSET=utf8;
#存在引用关系的表。要先添加被引用的表数据(主键表).再添加引用表的数据(外键表)
INSERT INTO Speciality (SpecialName) VALUES(‘Java’);
INSERT INTO Speciality (SpecialName) VALUES(‘HTML5’);
INSERT INTO subject(subjecname,subjecthours,specialid)
VALUES(‘JavaSE’,10,1);
INSERT INTO subject(subjecname,subjecthours,specialid)
VALUES(‘JavaScript’,20,2);
- 两张表存在引用关系时,执行删除操纵注意,先删除从表(引用表、外键表),再删除主表(被引用表、主键表;
#eg:删除Speciality
DROP TABLE Speciality;#先删除主表,容易造成外键表数据孤立,不可先删除
DROP TABLE subject;#先删除引用表后删除主表
约束创建整合
创建带有约束的表
#Grade
CREATE TABLE Grade(
GradeId INT PRIMARY KEY AUTO_INCREMENT,#主键、自增
GradeName VARCHAR(20) UNIQUE NOT NULL#唯一、非空
)CHARSET = utf8;
SELECT * FROM Grade;
INSERT INTO Grade(GradeName) VALUES(‘JAVA’);
INSERT INTO Grade(GradeName) VALUES(‘HTML’);
自我先容一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里不停到现在。
深知大多数Java工程师,想要提拔技能,往往是自己摸索发展或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易遇到天花板技能停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是盼望能够帮助到想自学提拔又不知道该从何学起的朋侪,同时减轻各人的负担。
既有适合小白学习的零基础资料,也有适合3年以上履历的小伙伴深入学习提拔的进阶课程,根本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目次大纲截图出来,每个节点里面都包含大厂面经、学习条记、源码讲义、实战项目、讲解视频,而且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
总结
谈到口试,实在说白了就是刷题刷题刷题,天天作死的刷。。。。。
为了准备这个“金三银四”的春招,狂刷一个月的题,狂补超多的毛病知识,像这次美团口试问的算法、数据库、Redis、设计模式等这些题目都是我刷到过的
而且我也将自己刷的题全部整理成了PDF或者Word文档(含详细答案剖析)
66个Java口试知识点
架构专题(MySQL,Java,Redis,线程,并发,设计模式,Nginx,Linux,框架,微服务等)+大厂口试题详解(百度,阿里,腾讯,华为,迅雷,网易,复兴,北京中软等)
算法刷题(PDF)
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感爱好,欢迎戳这里加入程序员的圈子,让我们一起学习发展!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产物经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
4)]
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感爱好,欢迎戳这里加入程序员的圈子,让我们一起学习发展!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产物经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |