MySQL学习-Day3

MySQL学习-Day3

P12简单查询

语法格式:
		select 字段名1,字段名2,字段名3,.... from 表名;

	提示:
		1、任何一条sql语句以“;”结尾。
		2、sql语句不区分大小写。
	
	查询员工的年薪?(字段可以参与数学运算。)
		select ename,sal * 12 from emp;
		+--------+----------+
		| ename  | sal * 12 |
		+--------+----------+
		| SMITH  |  9600.00 |
		| ALLEN  | 19200.00 |
		| WARD   | 15000.00 |
		| JONES  | 35700.00 |
		| MARTIN | 15000.00 |
		| BLAKE  | 34200.00 |
		| CLARK  | 29400.00 |
		| SCOTT  | 36000.00 |
		| KING   | 60000.00 |
		| TURNER | 18000.00 |
		| ADAMS  | 13200.00 |
		| JAMES  | 11400.00 |
		| FORD   | 36000.00 |
		| MILLER | 15600.00 |
		+--------+----------+
	
	给查询结果的列重命名?
		select ename,sal * 12 as yearsal from emp;
	
	别名中有中文?
		select ename,sal * 12 as 年薪 from emp; // 错误
		select ename,sal * 12 as '年薪' from emp;
		+--------+----------+
		| ename  | 年薪        |
		+--------+----------+
		| SMITH  |  9600.00 |
		| ALLEN  | 19200.00 |
		| WARD   | 15000.00 |
		| JONES  | 35700.00 |
		| MARTIN | 15000.00 |
		| BLAKE  | 34200.00 |
		| CLARK  | 29400.00 |
		| SCOTT  | 36000.00 |
		| KING   | 60000.00 |
		| TURNER | 18000.00 |
		| ADAMS  | 13200.00 |
		| JAMES  | 11400.00 |
		| FORD   | 36000.00 |
		| MILLER | 15600.00 |
		+--------+----------+
	
	注意:标准sql语句中要求字符串使用单引号括起来。虽然mysql支持双引号,尽量别用。

	as关键字可以省略?对
		mysql> select empno,ename,sal * 12 yearsal from emp;
		+-------+--------+----------+
		| empno | ename  | yearsal  |
		+-------+--------+----------+
		|  7369 | SMITH  |  9600.00 |
		|  7499 | ALLEN  | 19200.00 |
		|  7521 | WARD   | 15000.00 |
		|  7566 | JONES  | 35700.00 |
		|  7654 | MARTIN | 15000.00 |
		|  7698 | BLAKE  | 34200.00 |
		|  7782 | CLARK  | 29400.00 |
		|  7788 | SCOTT  | 36000.00 |
		|  7839 | KING   | 60000.00 |
		|  7844 | TURNER | 18000.00 |
		|  7876 | ADAMS  | 13200.00 |
		|  7900 | JAMES  | 11400.00 |
		|  7902 | FORD   | 36000.00 |
		|  7934 | MILLER | 15600.00 |
		+-------+--------+----------+

	查询所有字段?
		select * from emp; // 实际开发中不建议使用*,效率较低。

P13条件查询

语法格式:
		select 
			字段,字段...
		from
			表名
		where
			条件;

	执行顺序:先from,然后where,最后select

	查询工资等于5000的员工姓名?
		select ename from emp where sal = 5000;
		+-------+
		| ename |
		+-------+
		| KING  |
		+-------+
	查询SMITH的工资?
		select sal from emp where ename = 'SMITH'; // 字符串使用单引号括起来。
		+--------+
		| sal    |
		+--------+
		| 800.00 |
		+--------+
	找出工资高于3000的员工?
		select ename,sal from emp where sal > 3000;

		select ename,sal from emp where sal >= 3000;

		select ename,sal from emp where sal < 3000;

		select ename,sal from emp where sal <= 3000;
	
	找出工资不等于3000的?
		select ename,sal from emp where sal <> 3000;
		select ename,sal from emp where sal != 3000;

P14 条件查询between and

找出工资在1100和3000之间的员工,包括1100和3000?
		select ename,sal from emp where sal >= 1100 and sal <= 3000;

		select ename,sal from emp where sal between 1100 and 3000; // between...and...是闭区间 [1100 ~ 3000]

		select ename,sal from emp where sal between 3000 and 1100; // 查询不到任何数据

		between and在使用的时候必须左小右大。

		between and除了可以使用在数字方面之外,还可以使用在字符串方面。
		select ename from emp where ename between 'A' and 'C';
		+-------+
		| ename |
		+-------+
		| ALLEN |
		| BLAKE |
		| ADAMS |
		+-------+
		select ename from emp where ename between 'A' and 'D'; // 左闭右开(不同于数字,不过一般用不到)。[A,D)

P15 条件查询is null和is not null

找出哪些人津贴为NULL?
			在数据库当中NULL不是一个值,代表什么也没有,为空。
			空不是一个值,不能用等号衡量。
			必须使用 is null或者is not null
			select ename,sal,comm from emp where comm is null;
找出哪些人没有津贴?
			select ename,sal,comm from emp where comm is null or comm = 0;

P16 and和or的优先级问题

找出工作岗位是MANAGER和SALESMAN的员工?
			select ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';
			+--------+----------+
			| ename  | job      |
			+--------+----------+
			| ALLEN  | SALESMAN |
			| WARD   | SALESMAN |
			| JONES  | MANAGER  |
			| MARTIN | SALESMAN |
			| BLAKE  | MANAGER  |
			| CLARK  | MANAGER  |
			| TURNER | SALESMAN |
			+--------+----------+
and和or联合起来用:找出薪资大于1000的并且部门编号是20或30部门的员工。
			select ename,sal,deptno from emp where sal > 1000 and deptno = 20 or deptno = 30; // 错误的
			select ename,sal,deptno from emp where sal > 1000 and (deptno = 20 or deptno = 30); // 正确的。
			注意:当运算符的优先级不确定的时候加小括号。

P17 条件查询in

in等同于or:找出工作岗位是MANAGER和SALESMAN的员工?
			select ename,job from emp where job = 'SALESMAN' or job = 'MANAGER';
			select ename,job from emp where job in('SALESMAN', 'MANAGER');

			select ename,job from emp where sal in(800, 5000); // in后面的值不是区间,是具体的值。
			+-------+-----------+
			| ename | job       |
			+-------+-----------+
			| SMITH | CLERK     |
			| KING  | PRESIDENT |
			+-------+-----------+
		
		not in: 不在这几个值当中。
			select ename,job from emp where sal not in(800, 5000);

小结

学习了简单条件查询;is null和is not null ; and和or,都是比较简单的内容。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值