use mydb;
select * from EMP;

select * from DEPT;

select DISTINCT JOB from EMP;  -- distinct   去除重复项

select MGR from EMP;

select MGR as 主管编号 from EMP;  -- 辅助查询,每列信息   起别名 as

select EMPNO as 员工编号,JOB as 职位,DEPNO as 部门编号 from EMP;

select EMPNO 员工编号,JOB  职位,DEPNO 部门编号 from EMP;  -- 也可以省略as 用空格替换as

select ename,'2019-08-28' as today from EMP;  -- 构建一个新的列

-- 条件查询  where

select * from EMP;

-- 关系  >  <   >=  <=   !=(<>)   =  between...and

select * from EMP where DEPNO=20;

select * from EMP where DEPNO<>20;

-- 查询薪资大于1000的员工信息

select * from EMP where sal>2000

-- or  and   not

select * from EMP where sal>3000 and sal<=5000

update EMP set sal=3500 where  EMPNO=7566

select * from EMP where sal between 3000 and 5000   -- sal>=3000 and sal<=5000

-- 查询薪资大于等于3500或者职位是MANAGER
select * from EMP where sal>=3500 or job='MANAGER'

-- 查询部门是30并且薪资在2000~3500之间的员工
select * from EMP where DEPNO=30 and sal between 2000 and 3500

-- 查询30号部门的所有职位有哪些
select distinct job from EMP where depno =30

-- 查询入职时间是1981-09-30之后的所有员工
select *from EMP where HIREDATE>'1981-09-30'

-- 查询没有津贴并且基本工资超出3000元的员工姓名和职位
select ename,job from EMP where comm is NULL and sal>3000

-- 查询7698管理的所有员工,,,,
select * from EMP where MGR=7698

-- in , not in ,

select * from EMP where ename not in ('FORD','KING','WARD');

-- is null ,   is not null

-- 模糊查询   字符  like   % 任意长度的字符  _ 任意一个字符

select * from  EMP where ename like 'J%' or ename like 'A%'

select * from EMP where ename like '王_'

-- 查询名字中出现'明'同学

select * from EMP where ename like '%明'

-- insert into EMP values(7981,'王小明','CLERK',7698,'1982-02-08',1890,100,30)

-- 排序 order by 字段名 [desc降序 | asc默认升序]

-- 查询部门编号是30号部门员工信息并按照薪资sal降序

select * from EMP where DEPNO=30 order by sal desc

-- 查询入职时间是1982之前所有员工,并按照入职日期排序
select * from EMP where hiredate < '1982-01-01' order by hiredate

-- 限制 limit offset n

-- 100  1-10  11-20  21-30 ...

-- page ---> 1  ....&page=3
-- count 每页5条  ---》offset = count * (page-1)

select * from EMP;

select * from EMP limit 0,10;

select * from EMP limit 10,10;

select * from EMP limit 20,10;

select * from EMP limit 30,10;

-- 查询薪资超出3000并且是30号部门的员工 按照入职日期降序
select * from EMP where SAL>3000 and DEPNO=30 ORDER BY HIREDATE DESC; 
-- 查询入职日期在1981年以后的所有员工,每12条一页,获取第2页的数据
select * from EMP where HIREDATE>'1981-01-01' LIMIT 13,12
-- 查询职位是ANALYST或者CLERK的所有数据,如果数据比较多则分页,每5条一页数据
select * from EMP where job='analyst' or job='clerk' LIMIT 5

-- 查询没有津贴的员工并按照sal升序排列
select * from EMP WHERE comm is null  ORDER BY sal

-- 查询姓王或者姓张的名字中有‘红’字的同学
select * from EMP where ename like '%红'or ename like '张%'or ename like ('王%');

-- 聚合函数: sum   min   max   avg   count 计数

-- 查询员工人数
select count(EMPNO) from emp;
select count(empno) from emp where depno=30
select count(empno) as 人数 from emp where ename like '张%'
-- 查询入职日期是8月入职
select count(empno) 人数 from emp where MONTH(hiredate)=8

select MONTH(hiredate) from emp;

--  查询薪资总和  sum(字段) 
select sum(sal)  from emp;

select sum(sal) 总和 from emp where depno in (10,40);

--  最高工资
select max(sal) from emp;

--   最低工资
select min(sal) from emp;

--  平均工资
select avg(sal) from emp;

-- 分组查询: select 字段,聚合函数  from  表 [where 条件] group by 字段  having 条件

-- 先从表中选出第一个字节  再让后边的通过group by排序    生成第二个字节   having 可以限制第二个字节

-- 统计班级男女生的人数

-- 统计各个部门的员工人数
  select depno 部门号,count(*) 人数 from emp group by depno;
    -- select job,depno,count(*) 人数 from emp group by depno;

-- 统计各个职位的人数
select job 职位,count(*) 人数 from emp group by job;

-- 求各个部门的每个职位的人数
select depno 部门号,job 职位, count(*) 人数 from emp group by depno,job;

-- 统计各个部门的最高薪资
select depno 部门号,max(sal) 最高薪资 from emp group by depno;

-- 查询入职日期在2000年之前的各个部门的人数
select depno,count(*) from emp where hiredate<'1982-01-01' group by depno

-- 查询薪资超出5000元的各个部门的人数
select depno,count(*) from emp where sal>5000 group by depno;

-- 查询部门是20号,各个职位的平均薪资
select job,avg(sal) from emp where depno=20 group by job;

-- 查询姓秦的员工在各个职位中的最低工资
select job,min(sal) from emp where ename like '秦%' group by job;

-- 查询管理者(职位是manager的)在各个部门的人数
select depno,count(*) from emp where job ='MANAGER' group by depno;

-- 查询管理者(职位是manager的)在各个部门的人数 按照人数排序

select depno,count(*) from emp where job ='MANAGER' group by depno order by count(*)

-- 查询管理者(职位是manager的)人数在各个部门的超出15人

select depno,count(*) from emp where job ='MANAGER' group by depno  having count(*)>=13

--  where 先筛选后分组
--  having 先分组后筛选   having永远跟group by结合使用的

-- 子查询: 嵌套查询

-- 查询10号部门比平均薪资低员工信息
-- 10号部门
-- 平均薪资

select * from emp where depno =10 and sal<(select avg(sal) from emp);

-- 查询工作所在地在纽约的所有员工信息
-- select deptno from dept where loc='NEW YORK'

select * from emp where depno in (select deptno from dept where loc='NEW YORK')
-- 查询职位是salesman的工作所在地和部门名称
-- select distinct depno from emp where job = 'SALESMAN'

select dname,loc from dept where deptno in (select distinct depno from emp where job = 'SALESMAN')

-- 查询没有拿到津贴的员工所在的部门名称

select dname from dept where deptno in (select  distinct  depno from emp where comm is null or comm=0)

-- 查询职位是CLERK并且工作所在地在BOSTON和DALLAS的员工信息
select * from emp where job ='CLERK' and depno in (select deptno from dept where loc in ('BOSTON','DALLAS'))

-- 查询比销售部门SALES的最低工资低的其他部门员工信息
select * from emp where depno<>(select deptno from dept where dname='SALES') and sal < (select min(sal) from emp where depno =(select deptno from dept where dname='SALES'))

-- 查询比7900员工入职晚的员工
select * from emp where hiredate> (select hiredate from emp where empno=7900)

-- 显示工资比’ALLEN’高的所有员工的姓名和工作
select ename,job from emp where sal>(select sal from emp where ename='allen')

-- 显示与scott从事相同工作的员工的信息
select * from emp where job=(select job from emp where name='scott')

-- 连接查询

-- 查询工作所在地在纽约的所有员工信息,显示员工姓名,职位,工作所在地
select * from emp,dept;   -- emp 914   dept:5  ---> 4570

-- 等值连接查询

select * from emp,dept where emp.depno = dept.deptno;

-- 查询工作所在地在纽约的所有员工信息,显示员工姓名,职位,工作所在地

select ename,job,loc from emp,dept where loc='NEW YORK' and emp.depno = dept.deptno;

-- 查询工作是CLERK 并且所在地在NEW YORK的员工姓名
select ename from emp e,dept d where e.job='CLERK' and d.loc='NEW YORK' and e.depno = d.deptno;

-- 内连接 表1 inner join 表2  on  连接条件

select e.ename from emp e inner join dept d  on e.depno = d.deptno where  e.job='CLERK' and d.loc='NEW YORK'

-- 查询薪资低于4500的员工信息显示姓名,工作,部门名称
select e.ename,e.job,d.dname from emp e join dept d on e.depno = d.deptno where e.sal<4500   -- 内连接

-- 显示工资比’ALLEN’高的所有员工的姓名和工作
select e.ename,e.job  from emp e where sal > (select sal from emp where ename='ALLEN')

-- 显示与scott从事相同工作的员工的信息
select * from emp where job = (select job from emp where ename='SCOTT')

-- 外连接:  使用外连接筛选一些不能构成等值记录
-- 左外连接   left join ...on   左侧表的记录全部出现,右侧表中的记录是能匹配的全部显示,不能匹配则全部显示null
-- 右外连接   right  join ...on

select * from emp left join dept on emp.depno=dept.deptno where emp.empno<7939 and dept.deptno is null;

-- emp  right join  dept    dept 主表   emp 从表    主表信息要全部显示

select * from emp right join dept on emp.depno=dept.deptno where emp.empno<7939 and dept.deptno is null;

-- emp left join  dept    emp 主表   dept 从表
select * from emp left join dept on emp.depno=dept.deptno

select * from dept right join emp on emp.depno=dept.deptno

-- 自连接

-- 查询所有员工和员工职位和管理者名字
select ename,job,mgr from emp;

select *  from emp a join emp b on a.empno = b.mgr

select a.ename 主管姓名, b.ename 员工姓名 from emp a join emp b on a.empno = b.mgr

-- 系统函数:

select length('张三')

select CHAR_LENGTH('张三')

select upper(dname) from dept

select lpad('hello',8,'A')

select repeat('good',3)

create table aa(id int primary key,name varchar(16),birthday date)

insert into aa(id,name,birthday) values(1,'小明',curdate())

select curdate()
select curtime()

select * from aa;

select week(birthday) from aa;

update aa set birthday = DATE_ADD(birthday,INTERVAL -1 YEAR)

select DATEDIFF(birthday,curdate()) from aa;

-- select TIMEDIFF(expr1,expr2)

表格插入的部分数据:

create table EMP
(
EMPNO int PRIMARY KEY,
ENAME VARCHAR(10),
JOB VARCHAR(9),
MGR int,
HIREDATE DATE,
SAL DECIMAL(7,2),
COMM decimal(7,2),
DEPNO int
);
 
CREATE TABLE DEPT(
DEPTNO int,
DNAME VARCHAR(14),
LOC VARCHAR(13)
);
 
 
INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');
 
INSERT INTO EMP VALUES
(7369,'SMITH','CLERK',7902,'1980-12-17',800,null,20);
INSERT INTO EMP VALUES
(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30);
INSERT INTO EMP VALUES
(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30);
INSERT INTO EMP VALUES
(7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20);
INSERT INTO EMP VALUES
(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30);
INSERT INTO EMP VALUES
(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30);
INSERT INTO EMP VALUES
(7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10);
INSERT INTO EMP VALUES
(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10);
INSERT INTO EMP VALUES
(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30);
INSERT INTO EMP VALUES
(7900,'JAMES','CLERK',7698,'1981-12-03',950,NULL,30);
INSERT INTO EMP VALUES
(7902,'FORD','ANALYST',7566,'1981-12-03',3000,NULL,20);
INSERT INTO EMP VALUES
(7934,'MILLER','CLERK',7782,'1982-01-23',1300,NULL,10);

create database mydb charset=utf8;

笔记内容:mysql:
DDL:create  drop  alter
create database 数据库名  [charset=utf8];
create table 表(字段field   数据类型 ,….字段 decimal(7,2),...)
数据类型:  int  bigint  smallint tinyint
float  double  decimal
char(9)    varchar(9)
A__________
AB
date datetime time year约束:
主键  primary key   pk
外键  foreign  key    fk
唯一  unique
默认  default
非空   not nullalter  table 表  add 字段  数据类型  约束alter  table 表  drop 字段  alter  table 表  modify 字段  数据类型  约束alter  table 表  change  old字段   new 字段   数据类型  约束删除:
drop database  数据库
drop database  表名DML: insert   update   deleteinsert into student(字段名,….)   values(值,。。。)insert into student values()insert into student(字段名,….)  values(…..),(…...),(……)update 表名  set 字段 salary = salary+1000 [where 条件]delete from 表名 [where 条件]DQL:query 数据查询语言   select基础查询:
select  字段名,字段名,.. from 表名  [where 条件]select * from 表名;    * 所有字段select 字段 from 表名[where 条件][group by ][having][order by ][limit]   - 字符串函数| 函数                     | 功能                                                         || ------------------------ | ------------------------------------------------------------ || char_length(*str*)       | 获取字符串的字符个数                                         || length(str)              | 获取字符串的字节数                                           || concat(s1, s2, ... , sn) | 连接s1, s2, ..., sn 为一个字符串                             || lower(str)               | 将字符串str中所有的字符转换为小写                            || upper(str)               | 将字符串str中所有的字符转换为大写                            || left(str, x)             | 返回字符串str最左边的x个字符                                 || right(str, y)            | 返回字符串str最右边的y个字符                                 || lpad(str, n, pad)        | 用字符串pad对str最左边进行填充, 直到长度为n个字符长度       || rpad(str, n, pad)        | 用字符串pad对str最右边进行填充, 直到长度为n个字符长度       || ltrim(str)               | 去掉str中最左边的空格                                        || rtrim(str)               | 去掉str中最右边的空格                                        || trim(str)                | 去掉字符串str两边的空格                                      || repeat(str, x)           | 返回str中重复出现x次的结果                                   || replace(str, a, b)       | 将字符串str中的a更换为b                                      || insert(str, x, y, instr) | 将字符串str从第x位置开始, y个字符长度的子字符串替换为字符串instr || strcmp(s1, s2)         | 比较字符串s1, s2                                             || substring(str, x, y)     | 返回字符串str x位置开始y个字符长度的字符串                   |- 日期函数| 函数名                | 功能                              || --------------------- | --------------------------------- || curdate()             | 得到当前日期                      || curtime()             | 得到当前时间                      || now()                 | 得到当前日期和时间                || year(date)            | 得到date的年份                    || month(date)           | 得到date的月份                    || day(date)             | 得到date的天                      || hour(time)            | 得到time的小时                    || minute(time)          | 得到time 的分钟                   || second(time)          | 得到time的秒                      || week(date)            | 得到date是一年中的第几周          || date_format(date,fmt) | 按格式化串fmt返回date的日期字符串 |DATE_ADD(date, INTERVAL number unit)date_sub()
datediff(date1,date2)select DATE_FORMAT(now(),'%Y- %m-%d %H:%i:%s');  - 数学函数| 函数名     | 功能                        || ---------- | --------------------------- || abs(x)     | 求x的绝对值                 || ceil(x)    | 向上取整                    || floor(x)   | 向下取整                    || round(x,d) | 四舍五入,d为保留小数的位数 || pow(x,y)   | x的y次幂                    || rand()     | 0~1之间的随机小数           || mod(x,y)   | 等同于x % y,求x对y的模      |

MySQL查询select实例 【笔记】相关推荐

  1. MySQL查询select语句详解

    1.查询记录 select*from 表名 [where 条件];eg:select*from students;//查询 students 表中所有记录,所有字段的值都显示出来select fiel ...

  2. MySql查询——Select

    数据库的查询,我们从表里选出我们想要的数据,查询结构仍是一个表 查询时,我们需要使用select语句,配合 from where order by group by having 除了这些子句使用,还 ...

  3. mysql查询练习实例

    实例1 customer表 deposite 表 bank表 1.将数据表deposite中孙杨的存款金额加10000 UPDATE deposite SET amount=amount+10000 ...

  4. Mysql 查询 select

    -- create table students ( -- studentNo varchar(10) primary key, -- name varchar(10), -- sex varchar ...

  5. python实现数据库查询_通过Python实现mysql查询数据库实例

    #coding:utf-8 ''' Created on 2017年10月25日 @author: li.liu ''' import pymysql db=pymysql.connect('loca ...

  6. Java mysql获取行数_java – MySQL查询获取球体中的行(X,Y,Z坐标)?

    我正在制作一个名为Minecraft with Bukkit API的游戏插件. 我有一个名为Reinforcements的数据库表,其中包含以下字段:x integer,y integer,z in ...

  7. mysql的覆盖语句_求教一个mysql查询问题:为什么我的SQL语句不能覆盖所有情况?内详...

    mysql 查询 select count(*) from t1 where col1 > 0 339074条 select count(*) from t1 where col1 > 0 ...

  8. mysql数据库select语句用法_mysql学习笔记之完整的select语句用法实例详解

    本文实例讲述了mysql学习笔记之完整的select语句用法.分享给大家供大家参考,具体如下: 本文内容: 完整语法 去重选项 字段别名 数据源 where group by having order ...

  9. MySQL学习笔记5||数据查询select

    备注:该博客内容根据技术教学视频整理与总结而成,原视频来自于尚硅谷MySQL教程. 一.基础查询 select from 语法:        SELECT 要查询的东西[FROM 表名]; 特点:  ...

最新文章

  1. RabbitMQ创建远程连接用户
  2. 你真的懂你的用户吗?
  3. 更改android模拟器sdcard文件夹的权限
  4. mysql游标表间数据迁移_MySQL存储过程--通过游标遍历和异常处理迁移数据到历史表...
  5. React之类式组件中的构造器与props
  6. 在debian上安装vmware tools的问题
  7. HDOJ 1227 DP
  8. 也许你需要在 Antergos 与 Arch Linux 中查看印度语和梵文?
  9. Latex常用功能模板集合
  10. JavaEE中级.20190615.易买网项目(一).隐藏域.
  11. 蓝芯保护卡_蓝芯防毒卡无忧版
  12. html 输入字数限制,说一说限制字数的输入框踩的坑
  13. credit author statement
  14. C++如何限制模板类的类型
  15. 最美的时光在飞逝,为什么还在努力的路上蹒跚?
  16. java 图片添加水印(文字水印+图片水印)
  17. [Discuz!模板] 听雨轩风格[GBK][utf8][一键安装 DIY][20110918更新]
  18. 【数学建模】经典简单例题实例1
  19. C语言练习——提高篇
  20. Collections.sort对List排序的两种方法

热门文章

  1. 关于openstack 专业博主地址.后续更新
  2. NOIP2018划水记
  3. 渐变色--浏览器兼容性
  4. php安装编译时 configure: error: Cannot find OpenSSL's evp.h
  5. 实验3 --俄罗斯方块 with 20135335郝爽
  6. 20150504-日报
  7. Android Gallery控件使用方法详解
  8. ERROR: Start Page at 'www/index.html' was not found
  9. 如何:将 TraceSource 和筛选器与跟踪侦听器一起使用(转载)
  10. Java第一章java语言的概述