sql加強練習

2021-09-07 07:20:23 字數 3850 閱讀 7624

1.用一條sql語句 查詢出每門課都大於80分的學生姓名

name kecheng fenshu

張三 語文 81

張三 數學 75

李四 語文 76

李四 數學 90

王五 語文 81

王五 數學 100

王五 英語 90

**:只要找出存在小於80的not in就好了

--

---------------------------------

usehandsomecui

create

table

grade(

name

varchar(5

), course

varchar(5

), score

int)

-----------------------------------

bulk

insert grade from

'c:\users\administrator\desktop\分數.txt

'with

( fieldterminator='

\t', rowterminator='

\n')select

*from

grade

-----------------------------------

--查詢所有成績在80分以上的學生姓名

select

distinct name from grade where name notin(

select

distinct name from grade where score<=80)

-----------------------------------

view code

2.學生表 如下:

自動編號 學號 姓名 課程編號 課程名稱 分數

1 2005001 張三 0001 數學 69

2 2005002 李四 0001 數學 89

3 2005001 張三 0001 數學 69

刪除除了自動編號不同,其他都相同的學生冗餘資訊

**:相同資訊,肯定要分組了

--

---------------------------------

create

table

grade1(

自動編號

int,

學號 varchar(10

), 姓名

varchar(5

), 課程編號

varchar(5

), 課程名稱

varchar(50

), 分數

int)

-----------------------------------

bulk

insert grade1 from

'c:\users\administrator\desktop\分數.txt

'with

( fieldterminator='

\t', rowterminator='

\n')select

*from

grade1

-----------------------------------

--刪除除了自動編號不同,其他都相同的學生冗餘資訊

delete grade1 where 自動編號 not

in (select

min(自動編號) from grade1 group

by 學號,姓名,課程編號,課程名稱,分數)

view code

3.怎麼把這樣乙個表

year month amount

1991 1 1.1

1991 2 1.2

1991 3 1.3

1991 4 1.4

1992 1 2.1

1992 2 2.2

1992 3 2.3

1992 4 2.4

查成這樣乙個結果

year m1 m2 m3 m4

1991 1.1 1.2 1.3 1.4

1992 2.1 2.2 2.3 2.4

**:1991,1992分組

--

---------------------------------

create

table

date1105(

styear

int,

stmonth

int,

stamount

float)--

---------------------------------

bulk

insert date1105 from

'c:\users\administrator\desktop\分數.txt

'with

( fieldterminator='

\t', rowterminator='

\n')--

---------------------------------

select

styear,

(select stamount from date1105 m where stmonth=

1and m.styear=date1105.styear)as

m1,(

select stamount from date1105 m where stmonth=

2and m.styear=date1105.styear)as

m2,(

select stamount from date1105 m where stmonth=

3and m.styear=date1105.styear)as

m3,(

select stamount from date1105 m where stmonth=

4and m.styear=date1105.styear)as

m4from date1105 group

by styear

view code

4.複製表結構,以及複製表:

--

-----------------------------

select

*from

date1105

--複製表結構,不複製資料

select

*into date1105_1 from date1105 where

1<>

1select

*from

date1105_1

drop

table

date1105_1

select styear a,stmonth b,stamount c into date1105_1 from

date1105

select

*from

date1105_1

-------------------------------

5.三種select改變列名的方法:

select sum(quantity) as 別名 from order_list

select sum(quantity) 別名 from order_list

select 別名1=sum(quantity),別名2=... from order_list

如果列的名字不確定的話,還可以用 case when then end 語句進行迴圈取列名的。

09 需要加強練習

有三個節點,node1是專用的master node2,node3是data ingest節點 ip node1 192.168.1.123,192.168.1.124,192.168.1.125 對單節點進行security操作,elastic的初始化密碼為elastic password 其餘賬...

20180515講解查詢加強練習03

use master gorestore database studentdb from disk d studentdb.bak gouse studentdb go 1所有學生的基本資訊,並按學號排序 select from 學生 order by 學號 2所有女生的資訊和女生的人數 selec...

SQL語句練習

建立一張表,記錄 呼叫員的工作流水,記錄呼叫員編號,對方號碼,通話開始時間,結束時間。建表,插資料等都自己寫出sql 要求 輸出所有資料中通話時間最長的5條記錄。輸出所有資料中撥打長途號碼 對方號碼以0開頭 的總時長 輸出本月通話時長最多的前三個呼叫員的編號 輸出本月撥打 次數最多的前三個呼叫員的編...