mysql的语法总结3

查询表

精确查找

举例

去除重复行

假设您有一个名为 students 的表,其中包含 name 和 age 两列,您想要查询所有不重复的年龄,可以使用以下查询

详细匹配

查询emp表中在部门10工作、工资高于1000或岗位是CLERK的所有雇员的姓名、工资、岗位信息

SELECT ename,job,sal FROM emp
    WHERE deptno='10' AND (sal>1000 OR job='CLERK');

之间判断

用between...and...来确定一个连续的变量

举例:查询emp表中工资为2500~3000,1981年聘用的所有雇员的姓名、工资、聘用日期信息。

SELECT ename,sal,hiredate FROM emp
    WHERE sal BETWEEN 2500 AND 3000
     AND hiredate BETWEEN '1981-01-01' AND '1981-12-31';

字符串的模糊匹配

    LIKE ‘匹配字符串’

在匹配字符串中使用通配符“%”和“_”。

“%”用于表示0个或任意多个字符,“_”表示任意一个字符

举例:查询emp表中所有姓名以K开头或姓名的第2个字母为C的员工的姓名、部门号及工资信息。

SELECT ename,deptno,sal FROM emp
    WHERE ename LIKE 'K%' OR ename LIKE '_C%';

空值判断

举例:查询emp表中1981年聘用没有补助的员工的姓名和职位信息。

SELECT ename,job FROM emp
    WHERE hiredate>='1981-01-01' AND hiredate<='1981-12-31'
      AND comm IS NULL;

之内判断

        可以使用IN实现数值之内的判断,例如sal IN(2000,3000),它相当于sal=2000 OR sal =3000的表达式。

举例:查询emp表中部门20和30中的岗位是CLERK的所有雇员的部门号、姓名、工资信息。

SELECT deptno,ename,sal FROM emp
    WHERE deptno IN(20,30) AND job='CLERK';

使用ORDER BY字句对查询结果排序

注意!ORDER BY子句必须是最后一个子句

举例:以部门号的降序、姓名的升序查询emp表中工资为2000~3000元的员工的部门号、姓名、工资和补助信息。

 deptno DESC (部门号的降序)            ename(姓名的升序)

SELECT deptno,ename,sal,comm FROM emp
    WHERE sal BETWEEN 2000 AND 3000,
    ORDER BY deptno DESC,ename;

数据分组group by

        通常与聚合函数诸如 SUM()、COUNT()、AVG() 等一起使用,以便对每个组单独执行计算。

aggregate_function 是用于对 column2 中的分组数据执行计算的函数。

例如,如果你有一个名为 sales 的表,其中包含 product 和 sales_amount 列,并且你想要找出每个产品的总销售额,你可以像这样使用 GROUP BY:

用一个例子来解释所有情况:

SELECT AVG(sal) AS 平均工资,SUM(COMM) AS 总补助款,
       COUNT(*) AS 总人数,COUNT(comm) AS 补助人群,
       MAX(sal) AS 最高工资
 FROM emp WHERE deptno = 30;

group by可以按单列分组,也可以按多列分组

使用HAVING子句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值