初学者,推荐大家使用----emp(雇员信息表)和dept(部门表),这两张表的字段及数据内容都设计的比较经典。来吧!先跟着我的操作,导入我提供的数据库脚本。

导入两张表sql脚本到数据库create database testdb;

use testdb;

drop table if exists `emp`;

create table `emp` (

`empno` int(4) default null comment '雇员编号',

`ename` varchar(10) default null comment '雇员名称',

`job` varchar(9) default null comment '雇员工作',

`mgr` int(4) default null comment '上级领导编号',

`hiredate` date default null comment '雇佣日期',

`sal` decimal(7,2) default null comment '雇员工资',

`comm` decimal(7,2) default null comment '雇员奖金',

`deptno` int(2) default null comment '部门编号'

) engine=innodb default charset=utf8;

insert into `emp`(`empno`,`ename`,`job`,`mgr`,`hiredate`,`sal`,`comm`,`deptno`) values (7369,'smith','clerk',7902,null,'800.00',null,20),(7499,'allen','salesman',7698,null,'1600.00','300.00',30),(7521,'ward','salesman',7698,null,'1250.00','500.00',30),(7566,'jones','manager',7839,null,'2975.00',null,20),(7654,'martin','salesman',7698,null,'1250.00','1400.00',30),(7698,'blake','manager',7839,null,'2850.00',null,30),(7782,'clark','manager',7839,null,'2450.00',null,10),(7788,'scott','analyst',7566,null,'3000.00',null,20),(7839,'king','president',null,null,'5000.00',null,10),(7844,'turner','salesman',7698,null,'1500.00','0.00',30),(7876,'adams','clerk',7788,null,'1100.00',null,20),(7900,'james','clerk',7698,null,'950.00',null,30),(7902,'ford','analyst',7566,null,'3000.00',null,20),(7934,'miller','clerk',7782,null,'1300.00',null,10);

drop table if exists `dept`;

create table `dept` (

`deptno` int(2) not null comment '部门编号',

`dname` varchar(14) default null comment '部门名称',

`loc` varchar(13) default null comment '部门地址'

) engine=innodb default charset=utf8;

insert into `dept`(`deptno`,`dname`,`loc`) values (10,'accounting','new york'),

(20,'research','dallas'),(30,'sales','chicago'),(40,'operations','boston');

-- 投影操作

指定查询结果中能显示哪些列

-- 选择操作

指定哪些行出现在结果中

-- 排序操作

指定查询的结果以什么样的顺序显示

--查询语句 select

*是统配符,代表所有的字段。

--查询所有雇员信息

select * from emp;

--查询所有雇员的工资、名字、以及工作,

select sal,ename,job from emp;

--表前缀

select emp.ename from emp;

--列别名 -- 别名不影响表的结构

select ename as 雇员姓名 from emp;

--表别名

select e.ename from emp as e;

--计算列

select sal+100 from emp;

--排除重复数据 distinct -- 重要

--查询雇员信息表,工种有多少种。

select distinct job from emp;

--返回限定行数 limit --分页

select * from 表名 limit 开始序号,返回的行数;

select * from emp limit 0,5;

从emp表中查询第3页的数据,每页显示10条。

第几页 每页显示多少条

页数: pageSize = 2

条数: indexSize = 5

第一个参数:

int firstParam = (pageSize-1)*indexSize;

select * from emp limit firstParam,indexSize;

--选择条件 where

--查询雇员姓名为smith的员工信息

select * from emp where ename = 'smith';

--查询雇员工作为salesman的员工的姓名和工资

select ename,sal from emp where job = 'salesman';

--查询雇员工资大于1600的雇员姓名

select ename from emp where sal > 1600;

注意:写sql语句,先找输出什么字段内容,再找条件是什么。

条件运算符

--查询奖金大于100的雇员工资

select sal from emp where comm > 100;

--多条件的操作

and 与 并且

or 或

--查询工作为salesman并且工资大于1600的雇员信息

条件:job = 'salesman' and sal > 1600

输出信息:雇员信息

select * from emp where job = 'salesman' and sal > 1600;

--执行范围 between and []

--查询工资大于等于1600小于等于3000的雇员信息

select * from emp where sal >= 1600 and sal <= 3000;

select * from emp where sal between 1600 and 3000; -- 效率高

--定义集合关系(IN或NOT IN)

in

not in

--查询雇员编号为7369、7698、7788的雇员信息

select * from emp where empno = 7369 or empno = 7698 or empno = 7788;

select * from emp where empno in(7369,7698,7788);

--查询雇员编号除了7369、7698、7788以外的雇员信息

select * from emp where empno not in(7369,7698,7788);

--模糊查询 like

通配符

“_”通配符 ? 表示任何单个字符

“%”通配符 ? 表示包含零个或多个任意字符

--查询雇员姓名是以s开头的雇员信息

select * from emp where ename like 's%';

--查询雇员姓名中含s字母的雇员信息

select * from emp where ename like '%s%';

--查询雇员姓名是以s结尾的雇员信息

select * from emp where ename like '%s';

--查询雇员姓名是以s开头第三字母为o的雇员信息

select * from emp where ename like 's_o%';

--查询雇员姓名是以%开头的雇员信息

--当模糊查询中出现通配符_和%时,需用反斜杠\\转义

select * from emp where ename like '\\%%';

--处理空值数据 is null 、 is not null

--查询没有奖金的雇员信息

select * from emp where comm != null; --错误的

select * from emp where comm is null; --正确的

--查询有奖金的雇员信息

select * from emp where comm is not null and comm !=0;

--排序操作 order by

--查询雇员信息,工资从小到大排序。 asc 升序

select * from emp order by sal asc; --默认可以不写asc

--查询雇员信息,工资从大到小排序 desc 降序

select * from emp order by sal desc;

--查询雇员信息,工资从小到大排序,奖金从大到小。 ---顺序确定优先级

select * from emp order by sal asc,comm desc;

SQL操作顺序

第一步:执行FROM

第二步:WHERE条件过滤

第三步:执行SELECT投影列

第四步:执行ORDER BY 排序

--查询雇员工作为‘salesman’的雇员信息,并且按照工资多少降序排序。

select * from emp where job = 'salesman' order by sal desc;

聚合函数的分类

在查询分析的SQL中我们经常会对一些数据进行统计查询。

比如统计某个班有多少个学生、全班总分多少、平均分多少、最高分是多少、最低分是多少。要实现这些数据的统计就需要要用到SQL提供的聚合函数。

COUNT:统计行数量

SUM:获取单个列的合计值

AVG:计算某个列的平均值

MAX:计算列的最大值

MIN:计算列的最小值

--count:统计行数量

--统计emp表中有多少个员工

select count(*) from emp; -- * 所有行,包括null都行

select count(empno) from emp; -- 推荐 ,所有行,只是null排除。

--共计emp表中工作为salesman的人数

select count(empno) from emp where job = 'salesman';

--统计有奖金的人数

select count(comm) from emp;

select count(all empno) from emp; -- all排除了null,加不加都没关系

--统计emp表中有多少种工作

select count(distinct job) from emp; --去掉重复,再统计。 -- 重点

--SUM:获取单个列的合计值

--统计所有员工的工资总和

select sum(sal) from emp;

--AVG:计算某个列的平均值

--统计所有员工平均工资

select avg(sal) from emp;

--MAX:计算列的最大值

--查询工资最高的雇员信息

select ename,max(sal) from emp;

--分组操作 group by

--查询emp中有多少个工作岗位

select * from emp group by job;

--查询每个岗位中工资大于1500的员工人数

select job,count(empno) from emp where sal > 1500 group by job;

mysql 查询超过60分钟的_mysql基础级《简单查询》60分钟搞定相关推荐

  1. Android零基础入门第7节:搞定Android模拟器,开启甜蜜之旅

    原文:Android零基础入门第7节:搞定Android模拟器,开启甜蜜之旅 在前几期中总结分享了Android的前世今生.Android 系统架构和应用组件那些事.带你一起来聊一聊Android开发 ...

  2. mysql 连接 分组_MySQL 基础 (四) 分组查询及连接查询

    MySQL 基础 (四) 分组查询及连接查询 MySQL 基础(四) 进阶 5 分组查询 语法: SELECT 分组函数, 列(要求出现在 group by 的后面) FROM 表 [where 筛选 ...

  3. mysql查询姓张的同学_Mysql 基础2 (sql查询语句)

    1 查询所有列 select * from 表名: 2.查询指定列 select 字段名1,字段名2 from 表名: 3.查询时添加常量 select 字段名 as 常量名 from 表名:把字段名 ...

  4. mysql连接多个存储存储_Mysql(三):多表查询和存储程序

    今天内容: ● 多表查询(内连接 外连接 子查询) ● 存储程序(存储过程 函数) 多表查询 ​同时从多张数据表中查取到需要的数据即是多表查询. 多表查询时,参与查询的表中每条数据进行组合,这种效果称 ...

  5. mysql查询姓名第二个字_Mysql(2)查询实例

    一:MySQL简介与安装 MySQL是一种中型.易用的关系型数据库管理系统(DBMS,Database Management System). 安装步骤: 第一步:  sudo apt-get ins ...

  6. mysql 小表连大表_MySQL 表之间关联查询时,为什么建议小表驱动大表?

    有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们要遵循一些原则,这样会使我们编写的SQL 语句在效率上快很多. 一.优化原则 小表驱动大表,即小的数据集驱动大 ...

  7. mysql情况数据库表数据函数_mysql数据库表单查询和函数的使用

    单表查询 准备一张雇员表company.employee 雇员编号 emp_id   int 雇员姓名 emp_name  varchar(30) 雇员性别 sex  enum 雇用日期 hire_d ...

  8. mysql非结构化查询_Mysql(2.3) 简单查询(SELECT)、子查询

    结构化查询语言(sql) SQL概念和规则 关键字:SQL语言保留的字符串(SELECT FORM) 语句:一条完整的SQL命令(SELECT * FROM dept) 子句:部分的SQL语句,通常由 ...

  9. mysql select查询字段_MySQL基础:SELECT查询语句

    Blog:博客园 个人 概述 SELECT语句用于从表中选取/查询数据,结果被存储在一个结果表中(称为结果集). 语法格式 SELECT [ALL | DISTINCT | DISTINCTROW ] ...

最新文章

  1. python使用缩进作为语法边界一般建议怎样缩进-python基础自测挑战题,适合刚起步不久的小猿!...
  2. 求二进制数中1的个数
  3. vue 源码学习(一) 目录结构和构建过程简介 1
  4. 物联网核心安全系列——车载物联网的加密防盗版
  5. linux下grep文件内容搜索工具及基本正则表达式详解
  6. Ruby on rails Mac开发 入门笔记(一)
  7. C# 5.0 CallerMemberName CallerFilePath CallerLineNumber获取调用方法名称,路径,行号
  8. 在java中什么管理内存_Java是如何管理内存
  9. JAVA长连接与短连接
  10. 微型计算机一个汉字多少字节,一个汉字多少字节(Byte)?
  11. 编程金融小白学 股票期权 lv.6 希腊字母 Gamma
  12. H5公众号-canvas海报分享图+生成二维码
  13. openwrt之initramfs-kernel
  14. Python学习笔记:个税起征点上调至5000,算一算少交多少税?
  15. fred dataset_Excel经济数据加载项:FRED
  16. 配置属于你的iterm
  17. QC学习一:Windows环境中Quality Center 9.0安装详解
  18. 要不要去柬埔寨工作,很纠结,但是工资我又无法拒绝
  19. react 引入轮播插件_简单实现 babelpluginimport 插件
  20. iOS输入法开发(Swift)

热门文章

  1. redhat Enterprise 5下安装中文输入法,
  2. 2007高考:考生要根据家庭经济条件慎重填报按办学成本收费的高校及专业
  3. C# : 调用C++动态库(dll)
  4. halcon使用直线标定板,标定相机内参代码
  5. C# 数值和字符串之间的相互转换
  6. Develop内部函数,持续更新
  7. Halcon例程详解(激光三角系统标定)—— calibrate_sheet_of_light_calplate.hdev
  8. 在win10 或者win7系统下装双系统ubuntu16.04教程
  9. idea写java spark程序,Spark : 在IDEA中用scala编写Spark的WordCount程序并提交运行
  10. C++定义隐式转换函数,将类转换为内部的一个成员变量