- 浏览: 188278 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
1. 联结表
2. 高级联结
创建联结,有where子句 SQL> select vend_name, prod_name, prod_price from vendors, products where vendors.vend_id = products.vend_id order by vend_name, prod_name; 创建联结,没有where子句,返回的结果并不匹配 SQL> select vend_name, prod_name, prod_price from vendors, products order by vend_name, prod_name; 内部联结 SQL> select vend_name, prod_name, prod_price from vendors inner join products on vendors.vend_id = products.vend_id; 联结多个表(非常耗费资源) SQL> select prod_name, vend_name, prod_price, quantity from orderitems, products, vendors where products.vend_id = vendors.vend_id and orderitems.prod_id = products.prod_id and order_num = 20005; 子查询与联结查询 SQL> select cust_name, cust_contact from customers where cust_id in (select cust_id from orders where order_num in (select order_num from orderitems where prod_id = 'TNT2')); 1. 外键:外键为某个表中的一列,它包含另一个表的主键值,定义了两个表直接的关系。 2. 笛卡儿积:由没有联结条件的表关系返回的结果为笛卡儿积。检索出的行的数目将是第一个表中的行数乘以第二个表中的行数。 3. 内部联结:inner join ... on ... 基于两个表之间的相等测试,叫做等值联结。也叫做内部联结。
2. 高级联结
使用表别名 SQL> select concat(rtrim(vend_name), '(', rtrim(vend_country), ')') as vend_title from vendors order by vend_name; SQL> select cust_name, cust_contact from customers as c, orders as o, orderitems as oi where c.cust_id = o.cust_id and oi.order_num = o.order_num and prod_id = 'TNT2'; 使用不同类型的联结 子查询自联结 SQL> select prod_id, prod_name from products where vend_id = (select vend_id from products where prod_id = 'DTNTR'); 自联结 SQL> select p1.prod_id, p1.prod_name from products as p1, products as p2 where p1.vend_id = p2.vend_id and p2.prod_id = 'DTNTR'; 自然联结 SQL> select c.*, o.order_num, o.order_date, oi.prod_id, oi.quantity, oi.item_price from customers as c, orders as o, orderitems as oi where c.cust_id = o.cust_id and oi.order_num = o.order_num and prod_id = 'FB'; 外部联结 SQL> select customers.cust_id, orders.order_num from customers left outer join orders on customers.cust_id = orders.cust_id; SQL> select customers.cust_id, orders.order_num from customers right outer join orders on customers.cust_id = orders.cust_id; 使用带聚集函数的联结 SQL> select customers.cust_name, customers.cust_id, count(orders.order_num) as num_ord from customers inner join orders on customers.cust_id = orders.cust_id group by customers.cust_id; 1. 使用表别名 orders as o 2. 自然联结:排除多次出现,使每个列只返回一次。 3. 外部联结 left/right outer join ... on ... 4. 使用联结和联结条件 注意所使用的联结类型,一般我们使用内部联结,是使用外部联结也是有效的; 保证使用正确的联结条件,否则将返回不正确的数据; 应该总是提供联结条件,否则会得出笛卡儿积; 在一个联结中可以包含多个表,甚至对于每个联结可以采用不同的联结类型。虽然这样做是合法的,一般也很有用,但应该在一起测试它们前,分别测试每个联结。这将使故障排除更为简单;
发表评论
-
sql两表关联查询结果
2019-02-27 00:15 0student class 1 1 1 一 ... -
MySQL附录:示例表与数据
2018-09-27 15:08 7001. 下载地址 http://www.forta.com/bo ... -
MySQL附录:语句语法
2018-09-27 08:48 5001. 语句语法 1. alter table alter ... -
MySQL附录:数据类型
2018-09-27 08:48 5391. 数据类型 1. 串数据类型 char ... -
MySQL改善性能
2018-09-26 14:06 4291. 改善性能 1. MySQL时用一系列的默认设置预先 ... -
MySQL数据库维护
2018-09-26 14:05 7231. 数据库维护 检查表 ... -
MySQL安全管理
2018-09-26 14:04 4461. 安全管理 管理用户 ... -
MySQL全球化和本地化
2018-09-26 14:03 6871. 全球化和本地化 查看所支持的字符集完整列表 SQ ... -
MySQL管理事物处理transaction
2018-09-26 14:02 5681. 管理事物处理 开启事务 start transac ... -
MySQL使用触发器trigger
2018-09-23 12:18 7141. 使用触发器 创建触 ... -
MySQL使用游标cursor
2018-09-23 11:43 5511. 使用游标 创建游标 create procedur ... -
MySQL存储过程procedure
2018-09-20 20:57 8391. 存储过程 存储过程:就是为了以后的使用而保存的一条或 ... -
MySQL使用视图view
2018-09-20 20:28 5311. 视图 创建视图 create view produ ... -
MySQL创建和操纵表create、alter
2018-09-20 20:18 5601. 创建表 创建表 SQL> create t ... -
MySQL更新和删除数据update、delete
2018-09-19 19:29 6781. 更新数据 更新数据 SQL> update ... -
MySQL插入数据insert
2018-09-19 19:25 4351. 插入数据 插入完整的行 SQL> inse ... -
MySQL全文本搜索match、against
2018-09-19 19:22 7131. 全文本搜索 使用全文本搜索 SQL> se ... -
MySQL组合查询union
2018-09-19 19:17 5011. 组合查询 组合查询union SQL> s ... -
MySQL使用子查询
2018-09-18 19:06 6751. 使用子查询 使用子查询 1) select ord ... -
MySQL分组数据group by
2018-09-18 19:03 10901. 分组数据 分组计数 SQL> select ...
相关推荐
基于JAVA的mysql数据库管理软件,可以做毕业设计,有专门论文,如果需要另行联系,实现可视化的mysql数据库操作,以及对数据库服务器的监控,界面友好
以上总结了MySQL查询优化的一些关键知识点,包括LEFT JOIN的优化策略、常数表达式的处理、WHERE与HAVING子句的优化、常数表的读取、联结表的最佳组合、临时表的使用、DISTINCT和ORDER BY的优化、索引的选择以及使用...
此外,优化还包括合理选择索引、避免在WHERE子句中使用函数或表达式、优化联结查询、使用子查询替代临时表等策略。 在Linux环境下安装MySQL时,可以通过一系列的命令来完成,例如使用rpm命令来安装或卸载MySQL,...
10. 连接查询:`JOIN`语句用于将多个表的数据联结在一起,如`INNER JOIN`, `LEFT JOIN`, `RIGHT JOIN`, `FULL OUTER JOIN`。 "MYSQL_EMP_DEPT_TABLES_练习题.txt"提供了90多道与"emp"和"dept"表相关的练习题,这些...
书中继承了《MySQL必知必会》的优点,没有过多阐述数据库基础理论,而是紧贴实战需要,直接从数据检索开始,逐步深入各种复杂的内容,包括联结的使用、子查询、正则表达式和基于全文本的搜索、存储过程、游标、...
它涵盖了如何使用联结、子查询、正则表达式以及基于全文本的搜索,还包括了存储过程、游标、触发器、表约束等高级主题。本书的目标是帮助读者不仅理解基本的SQL语句,还要掌握高级SQL特性,从而在实际工作中应用自如...
- 内联结、自然联结和外联结:不同类型表连接,内联结只返回匹配的行,自然联结是内联结的特殊类型,外联结则可以返回左表、右表或两者的所有行。 13. 组合查询: - 使用UNION来组合多个SELECT语句的结果集。 14...
例如,当我们在`java`表和`mysql`表之间执行内联结,基于`name`字段相等时,只有`blue`这一行会被返回,因为它是唯一一个在两个表中都存在的名字。内联结的几种语法形式包括: 1. `SELECT * FROM java, mysql WHERE...
书中继承了《MySQL必知必会》的优点,没有过多阐述数据库基础理论,而是紧贴实战需要,直接从数据检索开始,逐步深入各种复杂的内容,包括联结的使用、子查询、正则表达式和基于全文本的搜索、存储过程、游标、...
- 联结查询包括内联结、左联结、右联结和全联结,用于将不同表中的数据结合在一起。 - 子查询是嵌套在SELECT、INSERT、UPDATE或DELETE语句中的查询,可以是相关子查询或非相关子查询。 - 聚合函数如COUNT、SUM、AVG...
- **自联结**:一个表与自身进行连接,通常用于查找关联信息,如员工的上下级关系。 2. **外连接**: - **左外连接**:返回左表所有记录及右表符合条件的记录,若右表无匹配项,则显示NULL。 - **右外连接**:...
除此之外,MySQL的一些变量,如max_connections(最大连接数)、table_cache(表缓存大小)和open_files_limit(打开文件限制),都需要根据实际工作负载进行配置。一个计算最大打开文件数的公式为:max(max(wanted_...
- 集合运算:`UNION`, `INTERSECT`, `EXCEPT`操作表的加减法和联结。 - 联结:内联结(`INNER JOIN`), 外联结(`LEFT JOIN`, `RIGHT JOIN`), 交叉联结(`CROSS JOIN`)。 - 子查询:在查询中嵌套查询,如关联子查询、...