日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql max 命令大全_MySQL常用命令,34道练习题(持续更新中)。

發(fā)布時間:2024/9/27 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql max 命令大全_MySQL常用命令,34道练习题(持续更新中)。 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、使用SHOW語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫:

mysql> SHOW DATABASES;

2、創(chuàng)建一個數(shù)據(jù)庫MYSQLDATA

mysql> CREATE DATABASE MYSQLDATA;

3、選擇你所創(chuàng)建的數(shù)據(jù)庫

mysql> USE MYSQLDATA; (按回車鍵出現(xiàn)Database changed 時說明操作成功!)

4、查看現(xiàn)在的數(shù)據(jù)庫中存在什么表

mysql> SHOW TABLES;

5、創(chuàng)建一個數(shù)據(jù)庫表

mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

6、顯示表的結(jié)構(gòu):

mysql> DESCRIBE MYTABLE;

7、往表中加入記錄

mysql> insert into MYTABLE values (”hyq”,”M”);

8、用文本方式將數(shù)據(jù)裝入數(shù)據(jù)庫表中(例如D:/mysql.txt)

mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;

9、導(dǎo)入.sql文件命令(例如D:/mysql.sql)

mysql>use database; mysql>source d:/mysql.sql;

10、刪除表

mysql>drop TABLE MYTABLE;

11、清空表

mysql>delete from MYTABLE;

12、更新表中數(shù)據(jù)

mysql>update MYTABLE set sex=”f” where name=’hyq’;

匿名帳戶刪除、 root帳戶設(shè)置密碼:

use mysql; delete from User where User=”"; update User set Password=PASSWORD(’newpassword’) where User=’root’;

GRANT的常用用法如下:

grant all on mydb.* to NewUserName@HostName identified by “password” ; grant usage on *.* to NewUserName@HostName identified by “password”; grant select,insert,update on mydb.* to NewUserName@HostName identified by “password”; grant update,delete on mydb.TestTable to NewUserName@HostName identified by “password”;

全局管理權(quán)限:

FILE: 在MySQL服務(wù)器上讀寫文件。

PROCESS: 顯示或殺死屬于其它用戶的服務(wù)線程。

RELOAD: 重載訪問控制表,刷新日志等。

SHUTDOWN: 關(guān)閉MySQL服務(wù)。

數(shù)據(jù)庫/數(shù)據(jù)表/數(shù)據(jù)列權(quán)限:

ALTER: 修改已存在的數(shù)據(jù)表(例如增加/刪除列)和索引。

CREATE: 建立新的數(shù)據(jù)庫或數(shù)據(jù)表。

DELETE: 刪除表的記錄。

DROP: 刪除數(shù)據(jù)表或數(shù)據(jù)庫。

INDEX: 建立或刪除索引。

INSERT: 增加表的記錄。

SELECT: 顯示/搜索表的記錄。

UPDATE: 修改表中已存在的記錄。

特別的權(quán)限:

ALL: 允許做任何事(和root一樣)。

USAGE: 只允許登錄–其它什么也不允許做。

MySQL-Practice-Questions

1、取得每個部門最高薪水的人員名稱

第一步:取得每個部門最高薪水『按照部門分組求最大值』

mysql> select deptno,max(sal) as maxsal from emp group by deptno;

deptno

maxsal

10

5000.00

20

3000.00

30

2850.00

第二步:將上面的查詢結(jié)果當(dāng)作臨時表t,t表和emp e表進行連接

條件:e.deptno=t.deptno and e.sal=t.sal

mysql> select -> e.ename t.* -> from -> emp e -> join -> (select deptno,max(sal) as maxsal from emp group by deptno) t -> on -> e.deptno=t.deptno and e.sal = t.maxsal;

ename

deptno

maxsal

BLAKE

30

2850.00

SCOTT

20

3000.00

KING

10

5000.00

FORD

20

3000.00

2、那些人的薪水在部門的平均薪水之上

第一步:找出部門的平均薪水『按部門編號分組求平均薪水』

select deptno,avg(sal) as avgsal from emp group by deptno;

deptno

avgsal

10

2916.666667

20

2175.000000

30

1566.666667

第二步:將上面的查詢結(jié)果當(dāng)作臨時表t,與emp e表進行連接 條件:t.deptno=t.deptno and e.sal > t.avgsal

select e.ename,e.sal,t.* from emp e join (select deptno,avg(sal) as avgsal from emp group by deptno) t on e.deptno=t.deptno and e.sal > t.avgsal;

ename

sal

deptno

avgsal

ALLEN

1600.00

30

1566.666667

JONES

2975.00

20

2175.000000

BLAKE

2850.00

30

1566.666667

SCOTT

3000.00

20

2175.000000

KING

5000.00

10

2916.666667

FORD

3000.00

20

2175.000000

3、1取得部門中(所有人)平均薪水的等級

第一步:取得部門中的平均薪水

select deptno,avg(sal) as avgsal from emp group by deptno;

deptno

avgsal

10

2916.666667

20

2175.000000

30

1566.666667

第二部:將上面的查詢結(jié)果當(dāng)作臨時表t,t表和salgrade s表進行關(guān)聯(lián) 條件:e.sal between s.losal and s.hisal

select t.*,s.grade from salgrade s join (select deptno,avg(sal) as avgsal from emp group by deptno) t on t.avgsal between s.losal and s.hisal;

deptno

avgsal

grade

10

2916.666667

4

20

2175.000000

4

30

1566.666667

3

3、2取得部門中(所有人)薪水的平均等級

第一步:每個員工的薪水等級(oder by 以部門編號排序,為了好理解)

select e.ename,e.sal,e.deptno,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal ;

ename

sal

deptno

grade

MILLER

1300.00

10

2

KING

5000.00

10

5

CLARK

2450.00

10

4

ADAMS

1100.00

20

1

SCOTT

3000.00

20

4

FORD

3000.00

20

4

JONES

2975.00

20

4

SMITH

800.00

20

1

MARTIN

1250.00

30

2

ALLEN

1600.00

30

3

JAMES

950.00

30

1

BLAKE

2850.00

30

4

WARD

1250.00

30

2

TURNER

1500.00

30

3

第二步:在以上基礎(chǔ)上繼續(xù)以部門編號分組,求平均薪水等級

select e.deptno,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal group by e.deptno;

deptno

grade

10

4

20

1

30

3

4、不用組函數(shù)(MAX),取得最高薪水(給出兩種解決方案)

方案一:按照薪水降序排,取得第一個

mysql> select sal from emp order by sal desc limit 1;

方案二:自連接

mysql>mysql> select sal from emp where sal not in(select a.sal from emp a join emp b on a.sal < b.sal);

sal

5000.00

5、取得平均薪水最高的部門的編號(至少給出兩種解決方案)

第一種方案:平均薪水降序排取第一個 第一步:取得每個部門的平均薪水

mysql> select deptno,avg(sal) avgsal from emp group by deptno;

deptno

avgsal

10

2916.666667

20

2175.000000

30

1566.666667

第二步:取得平均薪水的最大值

mysql> select avg(sal) avgsal from emp group by deptno order by avgsal desc limit 1;

avgsal

2916.666667

第三步:將第一步和第二步結(jié)合

select deptno,avg(sal) as avgsal from emp group by deptno having avg(sal)=( select avg(sal) avgsal from emp group by deptno order by avgsal desc limit 1);

deptno

avgsal

10

2916.666667

第二種方案:MAX函數(shù)

select deptno,avg(sal) as avgsal from emp group by deptno having avg(sal)=( select max(t.avgsal) from (select avg(sal) avgsal from emp group by deptno) t);

deptno

avgsal

10

2916.666667

6、取得平均薪水最高的部門的部門名稱

select d.dname,avg(e.sal) as avgsal from emp e join dept d on e.deptno=d.deptno group by d.dname having avg(e.sal)=( select max(t.avgsal) from (select avg(sal) avgsal from emp group by deptno) t);

dname

avgsal

ACCOUNTING

2916.666667

總結(jié)

以上是生活随笔為你收集整理的mysql max 命令大全_MySQL常用命令,34道练习题(持续更新中)。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。