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;
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;
相关文章推荐
- MySQL 基础得不能再基础的基本语句【学习笔记】
- MySql学习笔记之:基本的建表语句和增删改
- Mysql学习笔记五之查询的五种语句
- MySQL基础语句【学习笔记】
- Mysql学习笔记十七——表、视图的管理语句
- MySQL学习笔记--DQL、DML、DDL、TCL语句,约束(主键、外键)
- mysql学习笔记(常用语句)
- mysql常用语句(学习笔记)
- 50.笔记 MySQL学习——利用事务处理保证语句
- MySQL语法大全_自己整理的学习笔记(MySQL语句 整理二)
- 【MySQL学习笔记(十)】:关于条件判断if语句
- MySql学习笔记3:where语句
- MySql学习笔记—数据库简介及SQL语句的分类
- MYSQL学习笔记——sql语句优化工具
- mysql查询语句(mysql学习笔记七)
- MySql学习笔记2:排序语句
- MySQL学习笔记 - 查询语句
- MySQL学习笔记---基础概念和一些基础SQL语句(一)
- MySql学习笔记(三)SQL简单入门语句--Fenby摘抄笔记
- mysql学习笔记(三)select语句