MySQL查询select实例 【笔记】

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的模      |

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#1

转载于:https://www.cnblogs.com/qingwengang/p/6327371.html

使用python3连接hiveserver2的方法

前言&#xff1a;1、启动HiveServer22、在Linux中安装impyla&#xff08;前提是安装Python相关的环境、虚拟环境&#xff08;可选&#xff09;&#xff09; 前言&#xff1a; 需求&#xff1a;需要通过windows端的pycharm来操作hive。 于是就搜集资料寻找解决方案。 大概有…

vue2.X的路由

以 / 开头的嵌套路径会被当作根路径。 <router-link> 在vue-router1.X中是以<a v-link""></a>存在的 里面的参数&#xff1a; to&#xff1a;代表跳转的目的地&#xff0c;渲染成<a href""> 后面目的地有下面几种表示法 to引导&a…

mysql启动和关闭外键约束的方法(FOREIGN_KEY_CHECKS)

在MySQL中删除一张表或一条数据的时候&#xff0c;出现 [Err] 1451 -Cannot delete or update a parent row: a foreign key constraint fails (...) 这是因为MySQL中设置了foreign key关联&#xff0c;造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种…

CentOS下安装VirtualEnv的教程

文章目录前言&#xff1a;1、下载安装virutalenv2、安装新的Python版本&#xff08;可以直接安装anaconda&#xff1a;安装过程可自行查资料&#xff09;3、 VirtualEnv的设置4、Python虚拟环境的作用总结&#xff1a;前言&#xff1a; 在目前的Linux系统中&#xff0c;默认使…

社保(五险一金)的问题

2019独角兽企业重金招聘Python工程师标准>>> 社保&#xff0c;全称为社会保险&#xff0c;是一种再分配制度&#xff0c;它的目标是保证物质及劳动力的再生产和社会的稳定。我们平时常说的社保&#xff0c;还有另一个名称&#xff0c;及“五险一金”。那么社保是哪五…

PKM(个人知识管理)类软件收集(偶尔更新列表)

evernote(印象笔记) Wiz 有道云 麦库 leanote GoogleKeep OneNote SimpleNote(wp家的&#xff0c;免费) pocket(稍后读的软件&#xff0c;同类的还有Instapaper&#xff0c;国内的收趣) MyBase RaysNote(v友开发) CintaNotes https://jitaku.io 开源 Gitit-Bigger Laverna pape…

MySQL中外键的定义、作用、添加和删除

1 简介 在实际开发的项目中&#xff0c;一个健壮数据库中的数据一定有很好的参照完整性。例如学生档案和成绩单两张表&#xff0c;如果成绩单中有张三的成绩&#xff0c;学生档案中张三的档案却被删除了&#xff0c;这样就会产生垃圾数据或者错误数据。为了保证数据的完整性&a…

Hive报错:Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000)

Hive执行schematool -initSchema -dbType derby报错。 报错的日志&#xff1a; doupeihuadoupeihua-2104 ~/software/hive/bin $ schematool -initSchema -dbType derbySLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/home/doupei…

Andorid Scrolling Activity(CoordinatorLayout详情)

1.new project -> Scrolling Activity 2.Layout xml code activity_scrolling.xml 1 <?xml version"1.0" encoding"utf-8"?>2 <android.support.design.widget.CoordinatorLayout xmlns:android"http://schemas.android.com/apk/res/an…

截取utf8中文字符串

英文直接截取即可。 中文应字节长度会乱码&#xff0c;应先转unicode截取。 如下&#xff1a; #-*- coding:utf8 -*- s u截取中文 s.decode(utf8)[0:3].encode(utf8)转载于:https://www.cnblogs.com/BigFishFly/p/6337183.html

解决:Navicat for mysql 设置外键出错

1 看下是不是外键允许为空&#xff0c;不唯一等约束条件不满足 2 或者外键设置删除时为 restrict 1. 两个字段的类型或者大小不严格匹配。例如&#xff0c;如果一个是int(10)&#xff0c;那么外键也必须设置成int(10)&#xff0c;而不是int(11)&#xff0c;也不能是tinyint。另…

Python加盐加密方法hashlib(md5,sha224,sha1,sha256)

用random.randint随机数给密码加,盐加强密码的安全性

Ubuntu16.04以root身份登入!

首先以非root用户身份登入系统。 1&#xff0c;修改root密码&#xff1a;启动shell&#xff0c;随后在shell里面输入命令&#xff1a; sudo passwd root 最后输入root要使用的密码&#xff0c;需要输入两次&#xff0c;这样root密码就修改完毕了&#xff01; 2&#xff0c;修改…

HDU2193-AVL-数据结构-AVL

题目链接&#xff1a;http://acm.hdu.edu.cn/statistic.php?pid2193&from126&lang&order_type0 好吧。水题一道&#xff0c;原本以为是一道写AVL树的想写来练练手。没有想到却是这样一道水题&#xff0c;好吧&#xff0c;猥琐的水过。 题目意思&#xff1a; 题目大…

玩Linux碰到的问题以及使用技巧总结

文章目录1、问题问题一&#xff1a;解压JDK报错&#xff1a;gzip:stdin:not in gzip format。 问题二&#xff1a;在Linux下ping不通外网 问题三&#xff1a;解决虚拟机克隆后网卡eth0不见的问题 问题四&#xff1a;执行脚本报错&#xff1a;syntax error: unexpected end of f…

python连接MySQL数据库搭建简易博客

实现功能大概 将python和MySQL数据库交互进行 封装 ---》》utils.py 文件程序 ----》blog.py # -*- coding: utf-8 -*- # Time : 2019/08/30 15:33 # Author : Liu # File : utils.pyimport pymysql import hashlibclass dbHelper:def __init__(self, host, user, pass…

利用Sqoop在数据库和Hive、HDFS之间做ETL操作

文章目录[toc] 目录&#xff1a;一、利用Sqoop&#xff0c;从Oracle到HDFS二、利用Sqoop&#xff0c;从Oracle到Hive三、遇到的问题目录&#xff1a; 一、利用Sqoop&#xff0c;从Oracle到HDFS 第一步&#xff1a;把Oracle驱动拷贝到Sqoop安装路径中的lib文件夹下。 第二步&…

跨地域的VPC私网互通【高速通道案例】

最近一家大型企业正在将业务迁移至阿里云平台&#xff0c;用户有深圳&#xff0c;北京&#xff0c;上海等分支&#xff0c;其中上海为总部&#xff0c;用户要求在阿里云上的华南1&#xff0c;华北2&#xff0c;华东2分别建立VPC网络&#xff0c;其中华南1&#xff0c;华北2要与…

HDU 1711 Number Sequence(KMP模板)

http://acm.hdu.edu.cn/showproblem.php?pid1711 这道题就是一个KMP模板。 1 #include<iostream> 2 #include<cstring>3 using namespace std;4 5 const int maxn 10000005;6 7 int n,m;8 9 int next[maxn]; 10 int a[maxn], b[maxn]; 11 12 void get_next() 13…