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.pswp.cn/news/456504.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456504.shtml
英文地址,請注明出處:http://en.pswp.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…