- 浏览: 249579 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (192)
- 技术研究学习 (19)
- 工作总结 (4)
- spring3.x (11)
- mail (2)
- jar (2)
- FCKeditor (1)
- quartz (2)
- json (1)
- jdbc (5)
- struts2 (6)
- java基础 (18)
- jboss (3)
- IT名称解析 (1)
- 测试工具 (2)
- 工作趣谈 (1)
- 数据库 (8)
- js (8)
- jquery (1)
- mysql (20)
- Sql (3)
- Oracle (1)
- easyui (0)
- log4j (1)
- 源码研究 (1)
- Jasper Report (0)
- Jbpm4 (4)
- xml (1)
- ireport (0)
- javavm (1)
- sitemesh (5)
- compass (1)
- jvm (1)
- ext (1)
- lucene (0)
- cxf (1)
- Blazeds (0)
- Resteasy (1)
- jaxb (1)
- tomcat (1)
- Rmi (1)
- BoneCP (1)
- velocity (3)
- OSCache (1)
- EHCache (1)
- 高性能开发 (9)
- 设计模式 (0)
- 网络协议应用 (1)
- Ibatis (1)
- powerdesigner (1)
- 架构师之路 (2)
- memcached (4)
- MapReduce (1)
- 测试组 (1)
- 图像处理 (2)
- LoadRunner (2)
- 报表 (1)
- 负载均衡 (1)
- 分布式 (3)
- c# (1)
- java中一些特殊问题 (3)
- java 8 (1)
- Mogodb (1)
- 项目设计与实现 (2)
- Ubuntu (1)
- eclipse (1)
- gradle (1)
- 私有云 (1)
- redis (1)
- 移动前端 (1)
最新评论
在MySQL中,使用AS关键字为字段、表、视图取别名,或者不用as,用空格隔开: SELECT (SELECT id a,title b FROM blog c limit 1)d; 使用字段别名,可以帮助我们有效的组织查询的输出结果。 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 在SQL标准中规划的(Join)联结大致分为下面四种: 1.内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。 2.外联结:分为外左联结和外右联结。 左联结A、B表的意思就是将表A中的全部记录和表B中联结的字段与表A的联结字段符合联结条件的那些记录形成的记录集的联结,这里注意的是最后出来的记录集会包括表A的全部记录。 右联结A、B表的结果和左联结B、A的结果是一样的,也就是说: Select A.name B.name From A Left Join B On A.id=B.id 和 Select A.name B.name From B Right Join A on B.id=A.id 执行后的结果是一样的。 3.全联结:将两个表中存在联结关系的字段的所有记录取出形成记录集的联结(这个不需要记忆,只要是查询中提到了的表的字段都会取出,无论是否符合联结条件,因此意义不大)。 4.无联结:不用解释了吧,就是没有使用联结功能呗,也有自联结的说法。 这里我有个比较简便的记忆方法, 内外联结的区别是内联结将去除所有不符合条件的记录,而外联结则保留其中部分。 外左联结与外右联结的区别在于如果用A左联结B则A中所有记录都会保留在结果中,此时B中只有符合联结条件的记录,而右联结相反,这样也就不会混淆了。 内联接取交集,外连接取并集。单独的join语句默认是inner join。 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 在MySQL现有版本中CROSS JOIN的作用和INNER JOIN是一样的(虽然在SQL Standard中是不一样的,然而在MySQL中他们的区别仅仅是INNER JOIN需要附加ON参数的语句,而CROSS JOIN不需要)。 ON语句其实和WHERE语句功能大致相当,只是这里的ON语句是专门针对联结表的,ON语句后面的条件的要求和书写方式和WHERE语句的要求是一样的,大家基本上可以把ON当作WHERE用。 MySQL联结查询中的某些参数的作用: 1.USING (column_list):其作用是为了方便书写联结的多对应关系,大部分情况下USING语句可以用ON语句来代替,如下面例子: a LEFT JOIN b USING (c1,c2,c3),其作用相当于下面语句 a LEFT JOIN b ON a.c1=b.c1 AND a.c2=b.c2 AND a.c3=b.c3 只是用ON来代替会书写比较麻烦而已。 2.NATURAL [LEFT] JOIN:这个句子的作用相当于INNER JOIN,或者是在USING子句中包含了联结的表中所有字段的Left JOIN(左联结)。 3.STRAIGHT_JOIN:由于默认情况下MySQL在进行表的联结的时候会先读入左表,当使用了这个参数后MySQL将会先读入右表,这是个MySQL的内置优化参数,大家应该在特定情况下使用,譬如已经确认右表中的记录数量少,在筛选后能大大提高查询速度。 最后要说的就是,在MySQL5.0以后,运算顺序得到了重视,所以对多表的联结查询可能会错误以子联结查询的方式进行。譬如你需要进行多表联结,因此你输入了下面的联结查询: SELECT t1.id,t2.id,t3.id FROM t1,t2 LEFT JOIN t3 ON (t3.id=t1.id) WHERE t1.id=t2.id; 但是MySQL并不是这样执行的,其后台的真正执行方式是下面的语句: SELECT t1.id,t2.id,t3.id FROM t1,( t2 LEFT JOIN t3 ON (t3.id=t1.id) ) WHERE t1.id=t2.id; 这并不是我们想要的效果,所以我们需要这样输入: SELECT t1.id,t2.id,t3.id FROM (t1,t2) LEFT JOIN t3 ON (t3.id=t1.id) WHERE t1.id=t2.id; 在这里括号是相当重要的,因此以后在写这样的查询的时候我们不要忘记了多写几个括号,至少这样能避免很多错误
发表评论
-
MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
2013-08-26 13:12 954来源:http://www.cnblogs.com/luckc ... -
日志回滚,mysql优化
2012-09-25 13:40 1955原创作品,允许转载,转载时请务必以超链接形式标明文章 原始 ... -
MySQL 自增字段为何出错
2012-09-25 13:39 1219来源:http://www.zioer.com/mysql-自 ... -
mysql 执行顺序 SQL语句执行顺序分析
2012-09-21 16:48 9511来源:http://blog.sina.com.c ... -
MySQL查询中的非空问题
2012-09-21 16:52 2149MySQL查询是我们经常 ... -
Mysql字符串截取函数SUBSTRING的用法说明
2012-09-24 09:52 952来源:http://www.jb51.net/article/ ... -
Mysql点滴-CAST/CONVERT 类型转换函数
2012-09-20 11:19 910CAST() 和CONVERT() 函数可用来获取一个 ... -
mysql字符串向整型转换
2012-09-20 11:19 1138mysql字符串向整型转换 SELECT MAX(C ... -
理解MySQL——复制(Replication)
2012-09-24 09:52 859来源:http://www.cnblogs.com/hustc ... -
mysql中的begin-end流程控制语句与局部变量
2012-09-24 09:53 3725来源:http://blog.sina.com.c ... -
MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题
2012-09-24 09:52 1090MySQL中涉及的几个字符集 character- ... -
MySql 申明变量以及赋值
2012-09-25 13:40 805sql server中变量要先申明后赋值: 局部变 ... -
mysql变量使用总结
2012-09-21 16:53 874来源:http://www.cnblogs.com ... -
Mysql中文乱码问题完美解决方案
2012-09-18 14:47 629MySQL会出现中文乱码的原因不外乎下列几点: 1.se ... -
MySQL中快速插入大数据量和语句优化的相关技巧
2012-09-18 14:00 1052来源:http://it.100xuexi.com/view/ ... -
mysql中利用insert对自增字段进行插值
2012-09-18 11:34 1629[color=blue][/color]INSERT和REPL ... -
mysql获取插入、添加记录的自动编号
2012-09-18 11:14 1576[color=indigo][/color]如何获取某个表中的 ... -
MYSQL中如何设置列默认值的介绍(时间)
2012-09-17 10:56 992来源:http://tech.it168.com/o/2006 ... -
mysql添加注释
2012-09-17 10:14 821mysql允许在sql 代码中使用注释。这对于说明存放在文件中 ...
相关推荐
在进行表连接时,MySQL还支持使用别名来简化查询语句,提高可读性。例如,可以在FROM子句中给表赋予一个简短的别名: ```sql SELECT a.column_name, b.column_name FROM table1 AS a JOIN table2 AS b ON a.id = b....
在MySQL中,多表查询通常涉及使用`JOIN`操作来连接不同的表。 ##### 1. 多表查询的操作与限制 多表查询的基本语法结构如下: ```sql SELECT [DISTINCT] * | 字段[别名], 字段[别名], ... FROM 表名称[别名], 表...
在MySQL数据库中,自连接是一种特殊的表连接方式,它允许我们把同一个表当作两个不同的实体进行操作,通过为表提供别名,使我们能够在查询中比较同一张表的不同行。这种技术在处理复杂的关联查询或者查找具有特定...
本文将全面介绍MySQL的基本语法,包括启动服务器、进入交互式界面、退出操作、执行查询、多行语句、显示数据库、选择数据库、查看表以及取消命令等核心概念。 1. 启动MySQL服务器: - 可以通过图形化工具...
这里,同一个employee_table被赋予了不同的别名,以便于表自身与自身连接。 CROSS JOIN(交叉连接):交叉连接返回两个表的笛卡尔积,即左表中的每一行与右表中的每一行组合。在上述内容中的CROSS JOIN写法为:...
根据给定的信息,我们可以深入探讨SQL中的多表查询技术,特别是针对Oracle、MySQL以及SQL Server数据库系统的应用。这里我们将重点放在几个关键的概念上:笛卡尔积、连接(Join)的不同类型,尤其是内连接(Inner ...
2. **SQL99(也称为SQL-99)语法**,使用`JOIN`来连接多表: ```sql UPDATE 表1 AS 别名 JOIN 表2 AS 别名 ON 连接条件 SET 列=新值, ... WHERE 筛选条件; ``` 同样的例子,使用`JOIN`语法可以写成: ```...
- 使用 CROSS JOIN、INNER JOIN等连接操作符可以合并来自多个表的数据。 - 如“SELECT * FROM CUSTOMER, ORDERS”为交叉连接的例子,而“SELECT c.* FROM CUSTOMER c INNER JOIN ORDERS o ON c.ID = o.CUSTOMER_ID...
多表连接可以使用Inner Join、Outer Join和Self-Join等方式进行连接。 * 多表等值连接:SELECT 字段|表达式 FROM 表名 1,表名 2,表名 3 WHERE 表名 1.列名=表名 2.列名 AND 表名 2.列名=表名 3.列名 * 多表Inner ...
这种方式中,表连接条件和数据查询条件混合在一起,使得SQL语句的结构不够清晰。 #### b. SQL99语法 相比之下,SQL99语法提供了更为清晰的结构,使用join关键字连接表,并用on子句明确指定连接条件。例如: ```sql...
5.7.4. 与MySQL服务器连接 5.7.5. 访问控制, 阶段1:连接核实 5.7.6. 访问控制, 阶段2:请求核实 5.7.7. 权限更改何时生效 5.7.8. 拒绝访问错误的原因 5.7.9. MySQL 4.1中的密码哈希处理 5.8. MySQL用户账户管理 ...
14. **连接查询(多表查询)** - **SQL92语法:** - **SQL99语法:** - 内连接(`INNER JOIN`)、左连接(`LEFT JOIN`)、右连接(`RIGHT JOIN`)、全连接(`FULL JOIN`)、交叉连接(`CROSS JOIN`) - 示例:`...
5.7.4. 与MySQL服务器连接 5.7.5. 访问控制, 阶段1:连接核实 5.7.6. 访问控制, 阶段2:请求核实 5.7.7. 权限更改何时生效 5.7.8. 拒绝访问错误的原因 5.7.9. MySQL 4.1中的密码哈希处理 5.8. MySQL用户账户管理 ...
5.7.4. 与MySQL服务器连接 5.7.5. 访问控制, 阶段1:连接核实 5.7.6. 访问控制, 阶段2:请求核实 5.7.7. 权限更改何时生效 5.7.8. 拒绝访问错误的原因 5.7.9. MySQL 4.1中的密码哈希处理 5.8. MySQL用户账户管理 ...
5.7.4. 与MySQL服务器连接 5.7.5. 访问控制, 阶段1:连接核实 5.7.6. 访问控制, 阶段2:请求核实 5.7.7. 权限更改何时生效 5.7.8. 拒绝访问错误的原因 5.7.9. MySQL 4.1中的密码哈希处理 5.8. MySQL用户账户...
5.7.4. 与MySQL服务器连接 5.7.5. 访问控制, 阶段1:连接核实 5.7.6. 访问控制, 阶段2:请求核实 5.7.7. 权限更改何时生效 5.7.8. 拒绝访问错误的原因 5.7.9. MySQL 4.1中的密码哈希处理 5.8. MySQL用户账户管理 ...
5.7.4. 与MySQL服务器连接 5.7.5. 访问控制, 阶段1:连接核实 5.7.6. 访问控制, 阶段2:请求核实 5.7.7. 权限更改何时生效 5.7.8. 拒绝访问错误的原因 5.7.9. MySQL 4.1中的密码哈希处理 5.8. MySQL用户账户...
MySQL SQL99 语法中的内连接(INNER JOIN)是非等值连接的一种常见应用,它用于合并两个或更多表的数据,返回的结果是满足特定条件的记录。在这个语法中,"非等值连接"指的是连接条件不局限于列之间的相等比较,而是...
5.7.4. 与MySQL服务器连接 5.7.5. 访问控制, 阶段1:连接核实 5.7.6. 访问控制, 阶段2:请求核实 5.7.7. 权限更改何时生效 5.7.8. 拒绝访问错误的原因 5.7.9. MySQL 4.1中的密码哈希处理 5.8. MySQL用户账户管理 ...