表与表之间的关系:
一对一:例如t_person表和t_card表,即人和身份证。这种情况需要找出主从关系,即谁是主表,谁是从表。人可以没有身份证,但身份证必须要有人才行,所以人是主表,而身份证是从表。设计从表可以有两种方案:
在t_card表中添加外键列(相对t_user表),并且给外键添加唯一约束;
给t_card表的主键添加外键约束(相对t_user表),即t_card表的主键也是外键。
要描述一对一关系,可以在任意的一方添加外键。
一对多(多对一):最为常见的就是一对多!一对多和多对一,这是从哪个角度去看得出来的。t_user和t_section的关系,从t_user来看就是一对多,而从t_section的角度来看就是多对一
描述一对多或多对一关系时,一般都是在多的一方加外键。
多对多:例如t_stu和t_teacher表,即一个学生可以有多个老师,而一个老师也可以有多个学生。这种情况通常需要创建中间表来处理多对多关系。例如再创建一张表t_stu_tea表,给出两个外键,一个相对t_stu表的外键,另一个相对t_teacher表的外键。
注意:无论是什么样的关系,最终都是外键的设置。
多表查询:
1、 内连接
a) cross join 交叉连接(了解) 会产生迪卡尔积
b) natural join 相等连接(了解)
c) join using join 表名 on 条件 可以指定字段来消除迪卡尔积。
显示内连接
join on格式:select * from 表1 join 表2 on 条件。
select * from 表1 inner join 表2 on 条件
隐式内连接
Select * from表1,表2 where 条件;
内连接只能获取有关联的数据。
2、外连接:
OUTER JOIN ON
左外连接 LEFT OUTER JOIN ON [左表全部查出] 右外连接 RIGHT OUTER JOIN ON [右表全部查出]
全外连接(MySQL不支持)FULL JOIN 自然连接 NATURAL JOIN
3、子查询:
一个select语句中包含另一个完整的select语句。
子查询就是嵌套查询,即SELECT中包含SELECT,如果一条语句中存在两个,或两个以上SELECT,那么就是子查询语句了。
子查询可以出现在任何位置:select、from、where。。。
1). 单行单列子查询
就是一个值 = > < >= <= !=
查找出与小刘一个部门的人
SELECT * FROM emp WHERE dept_id=(SELECT dept_id FROM emp WHERE NAME='小刘') AND NAME!='小刘';
2). 单列多行子查询
就是多个值 可以使用in all any
查询出与3部门工次一样的员工信息
SELECT * FROM emp WHERE salary IN(SELECT salary FROM emp WHERE dept_id=3) AND dept_id!=3;
>any:大于子查询中的最小值。
>all: 大于子查询中的最大值。
<any:小于子查询中的最大值。
<all: 小于子查询中的最小值。
>=any:大于等于子查询中的最小值。
>=all:大于等于子查询中的最大值。
<=any:小于等于子查询中最大值。
<=all:小于等于子查询中最小值。
!=any或<>any:不等于子查询中的任意值。
!=all或<>all:不等于子查询中的所有值。
=any:等于子查询中任意值。
=all:等于子查询中所有值(无意义)。
3). 多行多列子查询(单行多列)
可以将它们做为一张表处理。
显示出id<3的所有部门的员工信息,并显示出部门名称
SELECT * FROM emp ,(SELECT * FROM dept WHERE id<3) mydept WHERE emp.dept_id=mydept.id;
- 浏览: 14716 次
相关推荐
在本例中,该JAR文件包含了实现JDBC驱动所需的类和资源,使得Java程序能够连接到MySQL数据库,执行SQL查询,操作数据等。 MySQL Connector/J的工作原理: 1. **连接建立**:当Java应用程序需要访问MySQL数据库时,...
MySQL 8.0.20是MySQL数据库的一个重大更新,它引入了多项性能优化、新功能以及安全改进。这些改进包括增强的查询性能、新的数据类型、JSON字段的增强操作、更好的事务处理和隔离级别,以及更强大的安全特性。 ### ...
`mysql-connector-odbc-5.1.13` 是MySQL官方提供的一个ODBC驱动程序,它为Windows、Linux和macOS等多平台提供了连接MySQL数据库的能力。 首先,我们需要理解ODBC的工作原理。ODBC本身并不直接与数据库通信,而是...
rm -rf 上边查找到的路径,多个路径用空格隔开 #或者下边一条命令即可 find / -name mysql|xargs rm -rf; mkdir -p /usr/local/mysql8 cd /usr/local/mysql8 ll 将下载的资源包(mysql-8.0.18-1.el7.x86_64...
5. **数据库管理**:MySQL Shell可以帮助用户执行常见的数据库管理任务,如创建、删除和管理数据库、表,以及导入和导出数据。 6. **性能分析**:内置的性能顾问模块可以分析查询性能,提供改进建议,帮助优化...
这个版本(3.51.30)支持多个操作系统平台,意味着无论是在Windows、Linux还是其他系统上,开发者都能利用它来连接和操作MySQL数据库。 ODBC的工作原理是通过一个中间层,即ODBC驱动管理器,将应用程序与特定的...
在开发Java应用时,如果你需要连接到MySQL数据库执行SQL查询、更新数据或者管理数据库,那么你需要在项目中引入这个JAR文件。你可以通过Maven或Gradle等构建工具添加依赖,或者直接将jar文件复制到项目的类路径下。...
MySQL Connector/J是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在MySQL数据库上执行SQL查询和操作。在这个"mysql-...
例如,InnoDB存储引擎得到显著改进,支持更大的表空间,提高了并发处理能力,并且支持更多的事务隔离级别。此外,它还增强了SQL查询的性能,特别是对于大型数据集的查询。 2. **MySQL安装文件**:`mysql-5.5.28-win...
这个驱动程序符合JDBC接口规范,使得Java开发者可以使用标准的JDBC API来与MySQL进行交互,包括创建数据库连接、执行SQL查询和更新、管理事务等。 `mysql-connector-java-5.1.27.jar`中的主要知识点包括: 1. **...
`mysql-connector-java-8.0.20.jar`是MySQL Connector/J的特定版本,它实现了这些JDBC接口,使得Java开发者可以方便地在代码中执行SQL查询、操作数据以及管理数据库连接。 在MySQL 8.0版本中,引入了许多新特性、...
5. **改进的查询优化器**:MySQL 8.3.0可能有更智能的查询优化器,能做出更好的执行计划选择,提高查询速度。 6. **分区表改进**:分区表是大型数据库中常见的优化手段,新的版本可能扩展了分区策略,提升了处理大...
开发者在Java程序中引入这个JAR文件,就能通过JDBC API与MySQL服务器进行通信,执行SQL查询、事务处理等操作。 标签"mysql-connector-"是对该文件类型的识别,表明这与MySQL的JDBC驱动有关。 压缩包内的文件包括:...
`mysql-connector-java-5.1.25.jar`是这个驱动程序的二进制文件,包含了Java类和其他资源,用于连接到MySQL服务器并执行SQL查询。这个特定的版本兼容性广泛,适用于许多基于Java的应用场景。当下载并将其添加到项目...
MySQL for Visual Studio 是一个插件,它允许开发人员在Visual Studio环境中直接管理MySQL数据库,进行数据操作、设计表结构、编写SQL查询以及执行其他数据库相关的任务。版本1.2.7提供了与Visual Studio的紧密集成...
5. **性能优化**:通过优化网络通信和查询执行,提高与MySQL服务器交互的效率。 6. **错误处理**:提供了详细的错误和异常处理机制,帮助开发者快速定位和解决问题。 “mysql-connector-java-8.0.22.jar.txt”可能...
这个驱动包允许Java程序通过JDBC(Java Database Connectivity)接口连接到MySQL服务器,执行SQL查询、事务处理等数据库操作。 `mysql-connector-java-5.1.27.jar`是该驱动包的核心文件,包含了所有必要的类和资源...
这款软件提供了直观的界面,使得数据库管理员和开发者能够更轻松地执行常见的数据库任务,如创建、编辑、查询以及管理MySQL数据库。 在MySQL-Front 6.1中,你可以体验到以下主要功能和知识点: 1. **数据库设计**...
3. **JSON支持**:MySQL 5.7开始支持JSON数据类型,使得非结构化数据的存储和查询变得可能,增强了对NoSQL场景的支持。 4. **增强的性能监控**:通过Performance Schema,用户可以更深入地了解数据库的运行情况,...
2. MySQL Connector/J: 这是MySQL公司提供的JDBC驱动程序,它实现了JDBC API,使得Java开发者能够在Java应用程序中连接、查询和操作MySQL数据库。MySQL Connector/J支持多种功能,包括事务处理、预编译语句、批处理...