5.数据查询语言DQL

查询语法和执行顺序

select columnname1 as alien1,columnname2 as alien2(*)......
from tablename
where clause
group by columnname having clause
order by columnname desc/asc
limit index,count

1.列运算

  • 数值类型(+ - * /)
  • 字符串拼接(contact(str1,str2,…))
  • null值转化(ifnull(cloumnname,defaultValue))

2.limit m,n

  • m:查询的起始行数,第一行为0
  • n:查询的行数

3.聚合函数

  • count():计数,不为null的值才参与计数
  • max():最大值
  • min():最小值
  • sum():求和
  • avg():平均值

4.分组

  • 查询的信息必须是列名称或者是聚合函数计算出来的组信息
  • 分组前的条件用where
  • 分组后的条件用having

连接(位置为表或者条件)

1.数据表准备
website.sql

CREATE TABLE `websites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
  `url` varchar(255) NOT NULL DEFAULT '',
  `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
  `country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

在这里插入图片描述
access.log

CREATE TABLE `access_log` (
  `aid` int(11) NOT NULL AUTO_INCREMENT,
  `site_id` int(11) NOT NULL DEFAULT '0' COMMENT '网站id',
  `count` int(11) NOT NULL DEFAULT '0' COMMENT '访问次数',
  `date` date NOT NULL,
  PRIMARY KEY (`aid`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

在这里插入图片描述
2.内连接
INNER JOIN返回2张表符合连接条件的部分。
在这里插入图片描述
在这里插入图片描述
3.左外连接
LEFT JOIN关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。
在这里插入图片描述
在这里插入图片描述
4.右外连接
RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。
在这里插入图片描述
在这里插入图片描述
5.结果集合并

  • 两个表的结果集相似,列数相同并且类型相似。
  • union all与union的区别

6.子查询

  • 单行单列(> < >= <=)
  • 单行多列(in any all)
  • 多行单列
  • 多行多列
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值