您的位置:首页 > 数据库 > MySQL

MySQL学习笔记3SELECT 语句

2013-04-13 03:01 716 查看
#SELECT语句

CREATE TABLE tb_DEPT

(

DEPTNO INT PRIMARY KEY , #部门编号

DNAME VARCHAR(14), #部门名称

LOC VARCHAR(13) #地址

);

#查找 字段,字段 从表

SELECT deptno,dname,loc FROM tb_dept;

SELECT * FROM tb_dept #*表示所有的列

SELECT dname FROM tb_dept #查询单个列

#算术表达式

SELECT Ename, sal,sal*12

FROM tb_dept;

乘法和除法的优先级高于加法和减法

并且能通过括号改变其优先级

SELECT Ename, sal,sal*(12+10)

FROM tb_dept;

#NULL和0还有空字符串不是一个概念

SELECT *FROM tb_dept;

SELECT *FROM tb_dept where comm = 0;

SELECT *FROM tb_dept where comm is NULL;

改变列的标题头

用于表示计算结果的含义

作为列的别名

如果别名中使用特殊字符或者是强制大小写敏感,或有空格时,都可以通过为别名添加双引号实现

SELECT ename '姓名',sal'薪水'

FROM tb_emp;

SELECT ename ,sal*12 (AS) '年薪'

FROM tb_emp;

AS可以不加

缺省情况下查询显示所有的行,包括重复行

SELECT deptno

FROM tb_emp;

使用DISTINCT关键字可从查询结果中清除重复行

SELECT DISTINCT deptno

FROM tb_emp;

DISTINCT的作用范围是后面所有字段的组合

SELECT DISTINCT deptno,job

FROM tb_emp

WHERE deptno=20;

使用WHERE子句限定返回的记录

SELECT *

FROM tb_emp

WHERE deptno=10;

字符串和日期要用单引号括起来

SELECT *

FROM tb_emp

WHERE ename = 'king';

比较运算符:>,<,<=,>=,=,<>(不等于)

SELECT ename,sal,comm

FROM tb_emp

WHERE sal <=1500;

SELECT ename,sal,comm

FROM tb_emp

WHERE sal >=1500 AND sal <=3000;

使用BETWEEN 运算符显示某一值域范围的记录

包含最大值和最小值

SELECT ename,sal,comm

FROM tb_emp

WHERE sal BETWEEN 1500 AND 3000;

使用IN 运算符获得匹配列表值的记录

SELECT empno,ename,sal,mgr

FROM tb_emp

WHERE mgr IN(7902,7566,7788);

SELECT empno,ename,sal,mgr

FROM tb_emp

WHERE mgr NOT IN(7902,7566,7788);

使用LIKE运算符执行模糊查询

查询条件可包含文字字符或数字

(%)可表示零或多个字符

(_)可表示一个字符

SELECT ename

FROM tb_emp

WHERE ename LIKE '_密%';

SELECT ename

FROM tb_emp

WHERE ename LIKE '__克%';

SELECT ename

FROM tb_emp

WHERE ename LIKE '克%';

使用IS NULL运算符

SELECT ename,mgr

FROM tb_emp

WHERE mgr IS NULL;

SELECT ename,mgr

FROM tb_emp

WHERE mgr IS NOT NULL;

使用逻辑运算符

AND,OR,NOT

SELECT empno,ename,job,sal

FROM tb_emp

WHERE sal<=1100

AND job='文员';

SELECT empno,ename,job,sal

FROM tb_emp

WHERE sal<=1100

OR job='文员';

NOT取反的意思

SELECT ename,job

FROM tb_emp

WHERE job NOT IN('文员','经理','分析师');

优先级:job等于市场销售的全部查出来,或者满足后两个条件的数据

SELECT ename,job,sal

FROM tb_emp

WHERE job='市场销售'

OR job='董事长'

AND sal>1500;

通过括号限制优先级别

SELECT ename,job,sal

FROM tb_emp

WHERE (job='市场销售'

OR job='董事长')

AND sal>1500;

对结果集排序

order by 排序 按照薪水从高到低排序descend

SELECT *

FROM tb_emp

ORDER BY sal DESC;

order by 排序 默认 按照薪水从低到高排序ascend

SELECT *

FROM tb_emp

ORDER BY sal;

SELECT *

FROM tb_emp

ORDER BY sal ASC;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: