数据库学习第四节SELECT语句详解

SELECT 语句详解

搭建数据库

    source /home/shiyanlou/Desktop/SQL4/MySQL-04-01.sql
    source /home/shiyanlou/Desktop/SQL4/MySQL-04-02.sql

image.png

基本语句

打印表中所有信息

    SELECT * FROM table_name;
    #打印出符合条件的信息
    SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;//条件可以包括><,=

image.png

IN/NOT IN(在或不在)

    SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN ('dpt3','dpt4');
    SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt NOT IN ('dpt1','dpt3');

image.png

LIKE(通配符)

    指定个数   _
    SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';
    不指定个数  %
    SELECT name,age,phone FROM employee WHERE name LIKE 'J%';

image.png

按升降序排序 ORDER

    #降序
    SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;
    #升序(也可以不写ASE默认升序)
    SELECT name,age,salary,phone FROM employee ORDER BY salary ASE;

image.png

SQL内置函数

函数名CIOUNTSUMAVGMAXMIN
作用计数求和求平均值求最大值求最小值
    #例如
    SELECT MAX(salary) AS max_salary,MIN(salary) FROM employee;

image.png

子查询

应用:例如:想要知道名为 “Tom” 的员工所在部门做了几个工程。员工信息
储存在 employee 表中,但工程信息储存在 project 表中。
对于这样的情况,我们可以用子查询:

    SELECT of_dpt,COUNT(proj_name) AS count_project FROM project GROUP BY of_dpt HAVING of_dpt IN (SELECT in_dpt FROM employee WHERE name='Tom');

上面代码包含两个 SELECT 语句,第二个 SELECT 语句将返回一个集合的数据形式,然后被第一个 SELECT 语句用 in 进行判断。

HAVING 关键字可以的作用和 WHERE 是一样的,都是说明接下来要进行条件筛选操作。区别在于 HAVING 用于对分组后的数据进行筛选

子查询可以扩展到更多层

image.png

链接操作

在处理多个表时,子查询只有在结果来自一个表时才有用。但如果需要显示两个表或多个表中的数据,这时就必须使用连接 (join) 操作。 连接的基本思想是把两个或多个表当作一个新的表来操作。

  #第一种
  SELECT id,name,people_num FROM employee,department WHERE employee.in_dpt = department.dpt_name ORDER BY id;
   #第二种JOIN ON(结果与第一种一样)
   SELECT id,name,people_num FROM employee JOIN department ON employee.in_dpt = department.dpt_name ORDER BY id;

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值