2024/10/17日 日志 --》关于MySQL中的 约束、多表查询的初步学习笔记与整理
1.2024/10/16 日 日志 --》关于MySQL的中 基础操作的整理以及 DQL的初步学习笔记与整理
2.2024/10/17日 日志 --》关于MySQL中的 约束、多表查询的初步学习笔记与整理
3.2024/10/18日 日志 --》关于MySQL中的 事务 以及JDBC的初步学习笔记与整理4.2024/10/19日 日志--》关于MySQL中 JDBC的API 详解的整理简述5.2024/10/21 日 日志 --》关于Mysql中的数据库连接池 简述笔记整理6.2024/10/22日 日志 --》关于Maven的基础学习 笔记整理7.2024/10/23日 日志--》关于Maven的基础学习--2 坐标与依赖范围8.2024/10/24日 日志 --》关于Mybatis的学习笔记整理 - 环境与性质 以及ResultMap9.2024/10/25日 日志 --》关于使用Mybatis进行增删改查 ---1 查询10.2024/10/26 日 使用Mybatic --》关于Mybatis 进行增删改查 ---2 添加、修改与删除11.2024/10/28日 使用Mybatic --》关于Mybatis 的参数传递与注解开发12.2024/10/29 HTML --》关于HTML的快速入门与标签13.2024/10/30 日 日志 --》关于CSS的学习14.2024/11/1日 日志 关于JavaScript简介&引入方式 以及基础语法的学习15.2024/11/4日 日志 关于JavaScript 变量、数据类型、类型转换和流程控制语句以及对象的学习16.2024/11/5日 日志 关于BOM浏览器对象模型和DOM文档对象模型的学习与笔记整理17.2024/11/6日 日志 正则表达式,web与HTTP18.2024/11/7日 日志 Tomcat简介&基本使用19.2024/11/8日 日志 关于Servlet ----(上)20.2024/11/11日 日志 关于Servlet ----HttpServlet(下)21.2024/11/12日 日志 关于Servlet ---- Request(请求)& Response(响应) 的补充22.2024/11/13日 日志 代码优化 以及 JSP 的快速入门、原理、脚本、缺点 和 EL表达式 以及 JSTL标签23.2024/11/14日 日志 关于 MVC 分层开发模式24.2024/11/15日 日志 关于 会话跟踪技术--- Cookie & Session25.2024/11/20日 日志 关于 Filter & Listener26.2024/11/21日 日志 关于AJAX & Axious异步框架 & JSON27.2024/11/27日 日志 关于Vue && Element28.JavaWeb案例整体分析---》差旅费报销管理信息系统->>题目详情29.JavaWeb案例整体分析---》差旅费报销管理信息系统->>登录与注册30.JavaWeb案例整体分析---》差旅费报销管理信息系统->>数据库操作和Mybatis配置以及pom.xml31.JavaWeb案例整体分析---》差旅费报销管理信息系统->>出差申请与报销部分32.2024/1/13日 日志 关于Vue && Element 的后续---》综合案例(1)33.2024/1/14日 日志 关于Vue && Element 的后续---》综合案例(2)34.2024/1/16日 日志 关于Vue && Element 的后续---》综合案例(4)35.2024/1/17日 日志 关于Vue && Element 的后续---》综合案例(5)36.2024/1/18日 日志 关于Vue && Element 的后续---》综合案例(6)37.2024/1/19日 日志 关于Vue && Element 的后续---》综合案例(7)38.2024/1/20日 日志 关于Vue && Element 的后续---》综合案例(8.1)39.2024/1/21日 日志 关于Vue && Element 的后续---》综合案例(8.2)40.2024/1/22日 日志 期末考试案例回顾与分析---》综合案例(1)41.2024/1/23日 日志 期末考试案例回顾与分析---》综合案例(2)42.2024/1/24日 日志 期末考试案例回顾与分析---》综合案例(3)43.2024/1/25日 日志 期末考试案例回顾与分析---》综合案例(4)44.2024/1/26日 日志 期末考试案例回顾与分析---》综合案例(5)45.2024/1/27日 日志 期末考试案例回顾与分析---》综合案例(6)46.2024/2/3日 日志 期末考试案例回顾与分析---》综合案例(7)47.2024/2/4日 日志 期末考试案例回顾与分析---》综合案例(8)48.2024/2/5日 日志 期末考试案例回顾与分析---》综合案例(9)49.2024/2/6日 日志 期末考试案例回顾与分析---》综合案例(10)50.2024/2/7日 日志 期末考试案例回顾与分析---》综合案例(汇总)51.2024/2/24日 日志 第一次测试案例分析(1)--题目52.2024/2/25日 日志 第一次测试案例分析(2)--数据库层面53.2024/2/26日 日志 第一次测试案例分析(3)--基础准备54.2024/2/27日 日志 第一次测试案例分析(4)--登录与注册和仓库方面今天推进了关于约束以及多表查询的内容,下一步是事务以及关于连接数据库JDBC的学习。
点击查看代码
-- -- 约束
-- 1.概念:
-- ·约束是作用于列上的规则用于限制加入表的数据
-- ·约束的存在保证了数据库中数据的正确性、有效性和完整性
-- 2.约束的分类
-- 非空约束 NOT NULL :保证列中所有数据不能有null值
-- 唯一约束 UNIQUE :保证列中所有数据各不相同
-- 主键约束 PRIMARY KEY :主键是一行数据的唯一标识,要求非空且唯一
-- 检查约束 CHECK :保证列中的数值满足某一条件
-- 默认约束 DEFAULT :保存数据时,未指定值则采用默认值
-- 外键约束 FOREIGN KEY :外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性
-- MySQL不支持检查约束
--
-- 示例:
-- CREATE TABLE emp(
-- id INT PRIMARY KEY auto_increment, 员工id 主键且自增长
-- --自动增长: auto_increment :当列是数字类型并且唯一约束
-- ename VARCHAR(50) NOT NULL UNIQUE, 员工姓名,非空且唯一
-- joindate DATE NOT NULL , 入职日期,非空
-- salary DOUBLE(7,2) NOT NULL, 工资,非空
-- bonus DOUBLE(7,2) DEFAULT 0 奖金,如果没有奖金默认为 0
-- );
-- 此外也可以建表后添加
-- 非空约束
-- ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;
-- 删除非空约束
-- ALTER TABLE 表名 MODIFY 字段名 数据类型;
-- 唯一约束
-- ALTER TABLE 表名 MODIFY 字段名 数据类型 UNIQUE;
-- 删除唯一约束
-- ALTER TABLE 表名 DROP INDEX 字段名;
-- 主键约束
-- ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
-- 删除主键约束
-- ALTER TABLE 表名 DROP PRIMARY KEY;
-- 默认约束
-- ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值;
-- 删除默认约束
-- ALTER TABLE 表名 ALTER 列名 DROP DEFAULT;
-- 外键约束
-- 1.概念:外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性
-- 添加约束
-- CREATE TABLE 表名(
-- 列名 数据类型,
-- ...
-- [CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列 名)
-- );
-- 或
-- ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段名称) REFERENCES 主表名称(主列表名);
-- 删除约束
-- ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
--
-- 需要注意的是如过添加了外键约束应该先创建主表且应该先添加主表数据
--
--
-- 多表查询
-- 如果 SELECT * from emp,dept;其中emp和dept是两个表名,那么将会进行笛卡尔积,即A,B集合所有组合。
-- 所以,需要消除无效数据。
-- 如 连接查询示例(内连接) :SELECT * FROM emp,dept WHERE emp. dep_id = dept.did;
-- 多表查询即从多张表查询数据
-- 包括:
-- 连接查询:
-- · 内连接:相当于查询A,B交集数据
-- · 外连接:
-- --------· 左外连接:相当于查询A表所有数据和交集部分数据
-- --------· 右外连接:相当于查询B表所有数据和交集部分数据
--
-- 内连接查询语法:
-- 隐式内连接:SELECT 字段列表 FROM 表一,表二...WHERE 条件;
-- 显示内连接:SELECT 字段列表 FROM 表1 [INNER] JOIN表2 on 条件;
-- 隐式内连接示例:查询emp的name,gender和dept表的dname
-- SELECT emp.name,emp.gender,dept.dname from emp,dept where emp. dep_id = dept.did;
-- 给表可以起别名:
-- SELECT t1.name,t1.gender,t2.dname from emp t1,dept t2 where emp. t1_id = t2.did;
-- 显示内连接示例:
-- SELECT *from emp inner join dept on emp.dep_id = dept.did;
--
-- 外连接查询语法:
-- 左外连接:SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件;
-- 右外连接:SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;
-- 左外连接示例:查询emp表所有数据和对应的部门信息
-- SELECT *from emp LEFT join dept on emp.dep_id = dept.did;
-- 右外连接示例: 查询dept表所有数据和对应的员工信息
-- SELECT *from emp RIGHT join dept on emp.dep_id = dept.did;
--
-- 子查询;查询中会嵌套查询,称嵌套查询为子查询
-- 子查询根据查询结果不同,作用不同:
-- ·单行单列:作为条件值,使用 = != > < 等进行条件判断
-- SELECT 字段列表 FROM 表 WHERE 字段名 = (子查询);
-- ·多行单列:作为条件值,使用 in 等关键字进行条件判断
-- SELECT 字段列表 FROM 表 WHERE 字段名 in (子查询);
-- ·多行多列:作为虚拟表
-- SELECT 字段列表 FROM (子查询) WHERE 条件;
--
-- 简单示例:
-- 1.查询工资高于猪八戒的员工信息-->单行单列
-- SELECT *FROM emp where salary > (SELECT salary from emp where name = '猪八戒'); //嵌套
-- 2.查询 '财务部'和'市场部'所有的员工信息-->多行多列
-- SELECT * FROM emp where dep_id in (SELECT did from dept WHERE dname = '财务部 ' OR '市场部');
-- 3.查询入职日期是'2011-11-11'之后的员工信息和部门信息
-- SELECT * from (SELECT *from emp where join_date > '2011-11-11') t1 ,dept where t1.dep_id = dept.did;
--
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署