目录一、查询关键字1、表准备2、查询关键字(1) 查询关键字之where(2) 查询关键字之group by分组(3) 聚合函数(4) 查询关键字之having过滤(5) 查询关键字之distinct去重(6) 查询关键字之order by排序(7) 查询关键字之limit分页(8) 查询关键字之regexp正则二、多表查询1、前期表准备2、子查询3、连表操作
一、查询关键字
1、表准备
# 创建表
create table emp(id int primary key auto_increment,姓名 varchar(20) not null,性别 enum...
合并结果集:
SELECT * FROM A UNTION B :上下合并,没有新增列 保留重复 UNTION ALL
合并的连接结果以字段的数量是一样的
内连接
取两张都有的 INNER A JOIN B ON A.字段=B.字段 A JOIN B ON A.字段=B.字段
外连接
左连接
LEFT A JOIN B ON A.字段=B.字段
右连接
RIGHT A JOIN B ON A.字段=B.字段
自然连接
不需要条件,自动按照字段名和数值类型完全一样的连接 NATURAL A JOIN B
多个表关联查询需要依据多表之间列关系将其连接起来,这种连接方式分为三种:内连接(inner join)、外连接(outer join)及交叉连接(cross join)。
举例:1、内连接(多个表的交集):
如果依据多个表之间列关系进行内连接,查询结果集仅包括满足连接条件的数据行。内连接分为等值连接、不等值连接以及自然连接,其中等值连接最为常见。
等值连接:在连接条件中使用等号(=)运算符比较被连接列的列值是否相等,分显式等值连接和隐式等值连...
多表查询时如果表名太长应该考虑使用表别名 原文:http://www.cnblogs.com/xiongjiawei/p/7169451.html
通过两个表具有相同意义的列,建立连接条件。查询结果只显示两个列中的值是等值条件的行数据。表中同名列被选择时必须添加表名前缀进行修饰,否则无法确定这一列是属于哪个表。按deptno的等值关系联合两张表的所有列idle> select * from dept,emp where dept.deptno=emp.deptno;DEPTNO DNAME LOC EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------- ------------- ---------- ---------- --------- --------...
1.格式化时间sql语句本例中本人随便做了两张表,和实际不是很相符,只是想说明sql语句的写法。例1表格式如下:需求:查询出本表,但需要使time字段的时间格式为yyyy-MM-dd,比如:2013-08-13sql写法:SELECT u.id,u.userId,u.timeType,DATE_FORMAT(time,%Y-%m-%d) AS time,secondId FROM `user` u运行结果:2.多表查询(三表查询)例二三表结构如下:需求:查询出主表,要求在主表中显示username和secondnamesql写法:SELECT u.id,...