数据库 表内容操作--查

-- 查询特定的列
-- 一般不特定说明 查询针对的是s_emp 员工表
--     查询表中所有数据 * 通配符 可以匹配到所有的列    
-- SELECT * FROM 表名;

-- 查询特定的列/表达式
-- SELECT 表达式1/列名1, 表达式2/列名2, 表达式3/列名3, .....-- FROM 表名;
-- 查询单行结果
-- SELECT 表达式;
SELECT 1 + 1;
SELECT (1 + 100/10 - 4) * 5;

-- 去除重复值
-- 使用关键字 DISTINCT ,这个关键字必须紧跟在SELECT的后面,
-- 它后面跟的是需要去除重复值的列名
SELECT DISTINCT dept_id
FROM s_emp;

        -- 多列的值不能同时发生重复,我们把这种现象称作联合唯一,
        -- 如果多列去重,需要把去重的列依次写在distinct关键字后面,
        -- 每个列名之间使用逗号隔开即可.

        SELECT dept_id 部门编号, title 职位
        FROM s_emp;
        SELECT DISTINCT dept_id 部门编号, title 职位
        FROM s_emp;
        SELECT DISTINCT manager_id 领导编号, dept_id 部门编号, title 职位
        FROM s_emp;

-- 排序子句
-- ORDER BY 需要排列的列明 排序规则
-- 排序规则;
--        升序 从小到大排序    ASC
--         降序 从大到小排序    DESC
-- 查询出员工的姓名,职位,月薪按照月薪降序排序

-- 升序是默认值,可以不写

-- 如果排序规则中使用多个列,
-- 先在order by后面写第一个排序的列名,
-- 排序规则,在用逗号隔开,写第二个,排序规则 ...

SELECT first_name 姓名, title 职位, salary 月薪
FROM s_emp
ORDER BY salary DESC;
-- 查询出员工的姓名,职位,部门编号
-- 并且按照部门编号降序排列
SELECT first_name 姓名, title 职位, dept_id 部门编号
FROM s_emp
ORDER BY dept_id DESC;

-- 条件子句
-- WHERE 子句 WHERE 后面跟的是一个条件,它起的作用是对查询的结果进行过滤,
-- 从而输出符合条件的结果
-- 条件 id = 1 id 的值和1 相等
-- > < >= <= != 使用比较运算符连接起来的表达式
-- 查询出41号部门的员工的姓名,职位,部门编号
SELECT first_name, title, dept_id
FROM s_emp
WHERE dept_id = 41;

-- 在maysql中,字符串的内容不区分大小写,
-- 但是如果要判断某行某列的值是否和另一个值相等,
-- 这个值必须带引号,不然会报错,不带引号的时候,
-- mysql会认为那个值是一个列名。

SELECT first_name, title, dept_id
FROM s_emp
WHERE first_name = first_name;

-- 逻辑运算符
-- 与 AND 或 OR 非 NOT
-- 与 表示多个条件要同时满足,缺一不可
-- 或 表示多个条件至少要满足其中一个
-- 非 相反

        SELECT first_name, dept_id, salary
        FROM s_emp
        WHERE NOT dept_id IN(41,43,44)
        ORDER BY salary;
-- 查询出月薪在1000到1500之间的员工信息
-- [1000,1500] 月薪要满足两个条件 >=1000
-- 并且<=1500
SELECT first_name, salary
FROM S_emp
WHERE salary >= 1000 AND salary <= 1500;

-- 在 ... 之间
-- between ... AND ...
SELECT first_name, salary
FROM S_emp
WHERE salary BETWEEN 1000 AND 1500;

-- 在... 里面
-- IN(值1,值2,...)

-- 查询出部门编号31,33,35,41号部门的员工信息
 SELECT first_name, dept_id
 FROM s_emp
 WHERE dept_id IN(31, 33, 35, 41);

-- 模糊查询
-- 使用 关键字 LIKE
-- 通配符:
--          % 0到任意多个字符
--            _ 一个任意字符
-- 查询 出姓名以M开头的员工信息
--        M%
SELECT first_name, title, salary
FROM s_emp
WHERE first_name like 'M%'
ORDER BY salary;

-- 分组排序
-- GROUP BY
-- 求每个部门的员工总数,最高工资,最低工资,平均工资
SELECT dept_id, COUNT(1), MAX(salary), MIN(salary), AVG(salary)
FROM s_emp
GROUP BY dept_id;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值