MySQL入门(1)- SQL语句分类&查询语句
2018-02-20 21:21
405 查看
SQL语句分类&查询语句
此系列记录PN视频学习笔记* 本博客涉及到的数据为bjpowernode.sql,数据见文末,SQL文见MySQL入门(9)文末。
* 该数据有三张表,分别是部门表dept(deptno部门编号、dname部门名称、loc位置)、
员工表emp(empno工号、ename员工姓名、job职位、mgr直属领导工号、
hiredate入职日期、sal月薪、comm补贴、deptno部门编号)、
薪水等级表salgrade(grade等级、losal区间下限、hisal区间上限)
一、SQL语句分类
1、SQL的分类数据查询语言(DQL - data querylanguage):select(针对表中数据)
数据操纵语言(DML - datamanipulationlanguage):insert、delete、update(针对表中数据)
数据定义语言(DDL - data definitionlanguage):create、drop、alter(针对表的结构)
事务控制语言(TCL - transactionalcontrol language):commit、rollback
数据控制语言(DCL - data controllanguage):grant、revoke
2、几种语句的简单说明
SQL不区分大小写,每个语句后面要有分号,可以用\c结束一个语句
create database bjpowernode; 创建数据库
use database bjpowernode; 使用数据库
drop database bjpowernode; 删除数据库
source 直接拖文件 导入SQL脚本文件
show tables; 查看表格
desc dept;查看表结构
show databases;查看所有database
show tables from world; 查看其它库的表
show create table city;查看建表语句
select database();查看当前所使用数据库名称
select version();查看版本
在cmd:mysql--version(v) 看版本
关闭:ctrl+c, exit, quit
二、查询语句
1、简单查询1)查询一个字段
select ename from emp;
select empno from emp;
2)查询多个字段,用‘,’隔开
select empno,ename,mgr from emp
3)全选
select empno,ename,job,mcr,hiredate,sal,comm,deptno fromemp;
select * from emp;
select只能用来显示查询结果,而不能改变原数据
select empno,ename,sal*12 from emp;
修改上面字段名sal*12为yearsal(as可省略,sal*12和yearsal不能用逗号连接)
select empno,ename,sal*12 as yearsal from emp;
select empno,ename,sal*12 yearsal from emp;
select empno,ename,sal*12 ‘年薪’ from emp;(一般没必要用中文来命名)
select empno,ename,sal*12 “年薪” from emp;(一般数据库都只支持单引号扩字符串,但是mysql支持双引号)
2、条件查询
select empno,ename,sal from emp where sal = 5000;(先查询,再过滤,最后呈现)
select empno,ename,sal from emp where sal = 3000;
sal是double(浮点)
select empno,ename,sal from emp where sal = ‘3000’;(字符串也可以,但是最好不要用)
select empno,ename,sal from emp where sal >= 3000;
select empno,ename,sal from emp where sal <> 3000;
select empno,ename,sal from emp where sal >= 3000 and sal <= 5000;(and且优先级高,or或)
select empno,ename,sal from emp where sal between 3000 and 5000;(闭区间,前面必须小于后面)
select empno,ename,sal from emp where ename between ‘A’ and ‘L’;(字符型,左闭右开)
select empno,ename,sal,comm from emp;(NULL没有值,什么都不是)
select empno,ename,sal from emp where comm is null;(NULL要用is,不能用=)
select empno,ename,sal from emp where comm is not null;
找出工作岗位是manager和salesman的员工
select empno,ename,job from emp where job = ‘SALESMAN’ or job = ‘MANAGER’;
select empno,ename,job from emp where job in(‘SALESMAN’,‘MANAGER’);(括号内为选项)
找出工资大于1800,要求部门编号为20或者30
select empno,ename,sal,deptno from emp where sal > 1800 and deptno= ‘20’or deptno = ‘30’;(and优先级高于or,所以运行结果是大于1800且部门20,以及部门为30)
select empno,ename,sal,deptno from emp where sal > 1800 and (deptno = ‘20’or deptno= ‘30’);
select ename,sal fromemp where sal in (1500,5000);(括号内不是区间而是两个备选项)
select ename,sal fromemp where sal not in (1500,5000);
3、模糊查询(%,_)
找出名字里有o的
select ename from emp where ename like ‘%o%’;(%是占位符,表示0-n个任意字符)
找出第一个字符为s的
select ename from emp where ename like ‘s%’;
找出最后一个字符是t的
select ename from emp where ename like ‘%T’;
找出第2个字母为a的
select ename from emp where ename like ‘_A%’;(下划线表示任意一个字符)
第三个字母为a的
select ename from emp where ename like ‘__A%’;
倒数第二个字符为n的
select ename from emp where ename like ‘%N_’;
DEPTNO | DNAME | LOC |
10 | ACCOUNTING | NEW YORK |
20 | RESEARCHING | DALLAS |
30 | SALES | CHICAGO |
40 | OPERATIONS | BOSTON |
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
7369 | SMITH | CLERK | 7902 | 1980/12/17 | 800 | NULL | 20 |
7499 | ALLEN | SALESMAN | 7698 | 1981/2/20 | 1600 | 300 | 30 |
7521 | WARD | SALESMAN | 7698 | 1981/2/22 | 1250 | 500 | 30 |
7566 | JONES | MANAGER | 7839 | 1981/4/2 | 2975 | NULL | 20 |
7654 | MARTIN | SALESMAN | 7698 | 1981/9/28 | 1250 | 1400 | 30 |
7698 | BLAKE | MANAGER | 7839 | 1981/5/1 | 2850 | NULL | 30 |
7782 | CLARK | MANAGER | 7839 | 1981/6/9 | 2450 | NULL | 10 |
7788 | SCOTT | ANALYST | 7566 | 1987/4/19 | 3000 | NULL | 20 |
7839 | KING | PERSIDENT | NULL | 1981/11/17 | 5000 | NULL | 10 |
7844 | TURNER | SALESMAN | 7698 | 1981/9/8 | 1500 | NULL | 30 |
7876 | ADAMS | CLERK | 7788 | 1987/5/23 | 1100 | NULL | 20 |
7900 | JAMES | CLERK | 7698 | 1981/12/3 | 950 | NULL | 30 |
7902 | FORD | ANALYST | 7566 | 1981/12/3 | 3000 | NULL | 20 |
7934 | MILLER | CLERK | 7782 | 1982/1/23 | 1300 | NULL | 10 |
GRADE | LOSAL | HISAL |
1 | 700 | 1200 |
2 | 1201 | 1400 |
3 | 1401 | 2000 |
4 | 2001 | 3000 |
5 | 3001 | 9999 |
相关文章推荐
- 移动文章分类的sql语句,查询并更新同一个表的方法 You can't specify target table 'news_articles' for update in FROM clause
- Mysql使用入门(一)sql语句分类
- Day57-Oracle01 - oracle体系结构、sql语句分类和结构、基本查询、函数入门
- 从Mysql某一表中随机读取n条数据的SQL查询语句
- SQL 入门 & MySql 简单函数
- 如何查找MySQL中查询慢的SQL语句
- 转 mysql 中sql 语句查询今天、昨天、7天、近30天、本月、上一月 数据
- MySQL循环遍历执行查询SQL语句结果的方法
- Sql查询语句优化心得MySQL优化
- 从Mysql某一表中随机读取n条数据的SQL查询语句
- 如何解决:mysql中文查询不出结果(软件与SQL语句都正常)
- MySQL常用SQL查询语句
- PHP获取MySQL执行sql语句的查询时间
- 浅谈MySQL中优化sql语句查询常用的30种方法
- sql查询语句_多字段分类汇总_多表合并
- 从Mysql某一表中随机读取n条数据的SQL查询语句
- TP 查询时候标题带有&的字符,查询没有结果!打出SQL语句去数据库查,返回有结果!
- hibernate+mysql中文查询不出结果,其他查询正常,SQL语句也正常
- 浅谈MySQL中优化sql语句查询常用的30种方法
- MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适