【数据库笔记】MySQL简单查询

目录

选择与投影:

算术运算符:

空值null:

列别名:

消除重复行:

查看表结构:

限定条件:

特殊比较运算符:

逻辑运算符:

运算符的优先级:

扫描二维码关注公众号,回复: 6063560 查看本文章

ORDER BY子句:

限制记录的行数:


选择与投影:

查询emp表(选择——行):

    SELECT * FROM  emp;


查询emp表的其中两列(投影——列):

    SELECT empno,ename FROM emp;

算术运算符:

运算规则:先乘除后加减,括号可以提高计算优先权

工资涨了300

SELECT ename, sal, sal+300 FROM	emp;

空值null:

  • 空值是指一种无效的、未赋值、未知的或不可用的值。
  • 空值不同于零或者空格。
  • 任何包含空值的算术表达式运算后的结果都为空值NULL。
SELECT ename, job, sal, comm ,sal+comm FROM  emp;

列别名:

使用列别名的方法:

  •   方式1:列名 列别名
  •   方式2:列名 AS 列别名

以下三种情况列别名两侧需要添加双引号

  • 列别名中包含有空格
  • 列别名中要求区分大小写
  • 列别名中包含有特殊字符
SELECT ename AS nname, sal nsal  FROM   emp;
SELECT empno "编 号",ename "姓 名" FROM emp;

消除重复行:

distinct

SELECT DISTINCT deptno FROM   emp;

查看表结构:

DESC emp;

限定条件:

SELECT ename, job, deptno FROM emp WHERE deptno=20;

字符型数据作为被比较的值时,必须用单引号引起来

字符型数值区分大小写

日期型数值作为被比较的值时,必须用单引号引起来

比较运算符的不等于:<>

SELECT ename, job, deptno FROM emp WHERE job='CLERK';
SELECT ename, hiredate, deptno FROM emp WHERE  hiredate > '1985-01-01';

特殊比较运算符:

  • BETWEEN..AND..(可用>= <=等价替换)

       使用BETWEEN .. AND.. 运算符来判断要比较的值是否在某个范围内。

SELECT	ename, sal FROM emp WHERE sal BETWEEN 1000 AND 1500;
  • IN运算符(与or等价)

      使用IN运算符判断要比较的值是否和集合列表中的任何一个值相等。

SELECT	empno, ename, sal, mgr FROM emp WHERE mgr IN (7902, 7566, 7788);
  • LIKE运算符

使用LIKE运算符判断要比较的值是否满足部分匹配,也叫模糊查询。

模糊查询中两个通配符:

    % 代表零或任意更多的字符

    _ 代表一个字符

查询名字首字母是S的人

SELECT	ename FROM emp WHERE ename LIKE 'S%';

查询名字第二个字母是L的人

SELECT	ename FROM emp WHERE ename LIKE '_L%';

查询 JOB 以“MAN_”开头的雇员信息。

SELECT	ename,job FROM 	emp WHERE job LIKE 'MAN@_%' ESCAPE '@';
  • IS NULL 运算符

使用 IS NULL 运算符来判断要比较的值是否为空值NULL

 SELECT  ename, mgr FROM emp WHERE mgr IS NULL;

逻辑运算符:

  • 逻辑与(AND):

AND: 要求两个条件都为真,结果才为真

SELECT empno, ename, job, sal FROM emp WHERE sal>=1100 AND job='CLERK';
  • 逻辑或(OR):

OR: 只需要两个条件中的一个为真,结果就返回真

SELECT empno, ename, job, sal FROM emp WHERE sal>=1100 OR job='CLERK';
  • 逻辑非(NOT) 

NOT运算符还可以和BETWEEN…AND、LIKE、IS NULL一起使用

... WHERE deptno NOT IN (10, 20)

... WHERE sal NOT BETWEEN 3000 AND 5000

... WHERE ename NOT LIKE 'D%’

... WHERE mgr IS NOT NULL

SELECT ename, job FROM emp WHERE job NOT IN ('CLERK','MANAGER','ANALYST');

运算符的优先级:

()优先于所有优先级!


ORDER BY子句:

使用ORDER BY子句能对查询结果集进行排序:

  • 可以按照列名、表达式、列别名、结果集的列序号排序
  • ASC: 升序,默认值 DESC: 降序
  • ORDER BY 子句必须写在SELECT语句的最后
  • 参与排序的多列都可以指定升序或者降序
  • ORDER BY子句中可以写没在SELECT列表中出现的列
SELECT ename, job, deptno, hiredate  FROM emp ORDER BY hiredate;
SELECT ename, job, deptno, hiredate FROM emp ORDER BY hiredate DESC;

限制记录的行数:

SELECT  字段列表 FROM 数据源  LIMIT [start,]length;  

说明:  

1.limit接受一个或两个整数参数。start表示从第几行记录开始输出,length表示输出的记录行数。  

2.表中第一行记录的start值为0(不是 1)。

查询员工表的前5条记录

SELECT ename, deptno, sal FROM emp LIMIT 0,5;

猜你喜欢

转载自blog.csdn.net/weixin_43068329/article/details/89673644