MySQL查询select

   查: select, 检索
     语法:
         select 字段列表
         from 表名
         where 条件1
            and/or 条件2
            ...
         order by 排序字段名 asc/desc
         limit 从第几条开始取结果, 取多少条

-- 1. *选择器
   # 注1: 使用*检索数据时, 会多执行一次查询
   # 注2: 先表结构中查询*所代表的字段列表, 然后在执行select语句

示例:

SELECT `empno`,`ename`,`sal`,`comm`, `deptno`
FROM emp;

SELECT * FROM emp;  #查询emp表中的所有字段内容

-- 2. 设置别名
SELECT `ename` 姓名, `job` AS 职务,
    `sal` AS 底薪, `comm` 奖金, `deptno` 部门ID
FROM emp e;

-- 3. 使用关系运算符作为条件, 使用and/or连接条件
   # 注1: 有多个条件时, 每多1个条件多查询1次
   # 注2: and连接条件, 会在上一次查询的结果集中查询
   # 注3: or连接的条件, 会在所有数据中查询
   # 注4: 使用and连接时, 尽量将筛选效果好的条放在前面

-- 查询20号部门的员工
SELECT * FROM emp
WHERE `deptno` = 20;

-- 查询底薪>=1000的员工
SELECT * FROM emp
WHERE `sal` >= 1000;

-- 查询20号部门底薪>=1000的员工
SELECT * FROM emp
WHERE `deptno` = 20
  AND `sal` >= 1000;

-- 4. between语句

/*查询底薪在1000-1500之间的员工*/
-- 方法一:
SELECT * FROM emp
WHERE `sal` >= 1000
  AND `sal` <= 1500;
  
-- 方法二:
SELECT * FROM emp
WHERE `sal` BETWEEN 1000 AND 1500;

-- 5. in语句

-- 查询在10或20号部门的员工
SELECT * FROM emp
WHERE `deptno` = 10
   OR `deptno` = 20;
  
-- 查询10和20号部门的员工 
SELECT * FROM emp
WHERE `deptno` IN (10, 20);

-- 查询10和20号部门以外其它部门的员工
SELECT * FROM emp
WHERE `deptno` NOT IN (10, 20);

-- 6. 空值条件

-- 查询没有奖金的员工
SELECT * FROM emp
WHERE `comm` IS NULL;

-- 查询有奖金的员工
SELECT * FROM emp
WHERE `comm` IS NOT NULL;

-- 7. like条件, 模糊查询
    # 通配符: 2种
    #    1. %: 匹配任意个数的任意字符
    #    2. _: 匹配1个任意字符

-- 查询S开头的姓名
SELECT * FROM emp
WHERE `ename` LIKE 'S%';
-- 查询S结尾的姓名
SELECT * FROM emp
WHERE `ename` LIKE '%S';
-- 查询含有S的姓名
SELECT * FROM emp
WHERE `ename` LIKE '%S%';
-- 查询含有A的姓名
SELECT * FROM emp
WHERE `ename` LIKE '%A%';
-- 查询第二个字母为A的姓名
SELECT * FROM emp
WHERE `ename` LIKE '_A%';
-- 查询第三个字母为A的姓名
SELECT * FROM emp
WHERE `ename` LIKE '__A%';

-- 8. 排序. order by

-- 8. 排序. order by
SELECT * FROM emp
ORDER BY sal; #默认为升序

SELECT * FROM emp
ORDER BY sal ASC; #升序

SELECT * FROM emp
ORDER BY sal DESC; #降序

SELECT * FROM emp
ORDER BY deptno, sal;

SELECT * FROM emp
ORDER BY deptno DESC, sal;

SELECT * FROM emp
ORDER BY deptno DESC, sal DESC;

SELECT * FROM emp
ORDER BY `hiredate`;

-- 9. 分页查询: limit

-- 取第1到第5条
SELECT * FROM emp
LIMIT 0, 5;
-- 取第6到第10条
SELECT * FROM emp
LIMIT 5, 5;

-- 例: 工资前5名
SELECT * FROM emp
ORDER BY sal DESC
LIMIT 0, 5;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中的SELECT查询是指在一个SELECT语句中嵌套另一个SELECT语句,用于从一个表中获取数据,并将其作为外部查询的条件或结果之一。子查询可以嵌套多层,每一层都可以根据需要进行筛选和操作。 以下是MySQLSELECT查询的一些常见用法和示例: 1. 子查询作为条件: 可以将子查询的结果作为外部查询的条件之一,例如: ``` SELECT column1, column2 FROM table1 WHERE column3 IN (SELECT column4 FROM table2); ``` 这个例子中,子查询 `(SELECT column4 FROM table2)` 返回一个结果集,然后外部查询根据这个结果集来筛选出满足条件的行。 2. 子查询作为列: 可以将子查询的结果作为外部查询的列之一,例如: ``` SELECT column1, (SELECT column2 FROM table2 WHERE condition) AS subquery_result FROM table1; ``` 这个例子中,子查询 `(SELECT column2 FROM table2 WHERE condition)` 返回一个结果,然后外部查询将这个结果作为一个新的列 `subquery_result` 返回。 3. 子查询作为表: 可以将子查询的结果作为外部查询的临时表来使用,例如: ``` SELECT t1.column1, t2.column2 FROM (SELECT column1 FROM table1 WHERE condition) AS t1 JOIN (SELECT column2 FROM table2 WHERE condition) AS t2 ON t1.column1 = t2.column2; ``` 这个例子中,子查询 `(SELECT column1 FROM table1 WHERE condition)` 和 `(SELECT column2 FROM table2 WHERE condition)` 分别作为临时表 `t1` 和 `t2`,然后外部查询通过JOIN操作将它们连接起来。 以上是一些常见的MySQL SELECT查询的用法和示例,希望对你有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值