當前位置:首頁 » 編程語言 » 數據分析sql50道題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

數據分析sql50道題

發布時間: 2022-04-25 13:17:21

① 求sql試題答案

1. C
2. A
3. A
4. B 說明:%是一個通配符,如select * from test where ID like 12% 這句話就表示在test表中搜索出ID以12開頭的數據記錄,可以是123,也可以是1234.
5. C
6. A 如果讀者也作為主鍵你想會發生啥情況,每個人只能借1本書,災難啊
7. A 我真的運行了一次,因為我也不確定...
8. B
9. C
10.D
11.D
12.B 這一題考的是LEFT OUTER JOIN的用法,LEFT OUTER JOIN等同於LEFT JOIN,數據數目按照較大數來算.
二.
1. ABCE D是程序員做的事
2. ABC 系統固定的角色許可權是標準的PUBLIC許可權,用戶可以根據需要進行許可權的調整,就是C選項
3. DE A錯誤的原因是因為事務備份的還原精度要比差異備份高,能恢復到故障點前一刻,這是差錯備份做不到的;B,事務日誌只能恢復從上一次備份到本次故障點之間的一個時刻.
4. AB

② SQL多項選擇題,急求答案,最好有解析

1.答案A,D,E DESC是降序,省略ASC和DESC,默認為升序。
2.答案A,C,D,E 創建視圖時不允許在所用SELECT語句中使用ORDER BY、COMPUTE子句
3.C,D,E 執行存儲過程時可用WITH RECOMPLE選項進行重新編譯;只有當執行存儲過程的語句是批處理中的第一個語句,才可以直接通過名稱來調用存儲過程
4.C,E 使用SQL Server Management Studio不能運行命令行實用程序sqlcmd
5.C,D,F 一個局部變數只能在一個語句批中使用,使用SET語句只能對一個局部變數賦值,剛定義的局部變數的初值為空值
6.B 用戶定義函數可以有輸入參數和返回值

③ SQL數據統計分析問題

給你個示例腳本

declare@AAtable(yearsint,numberint)
insertinto@AAvalues(2014,45201521)
insertinto@AAvalues(2014,45201522)
insertinto@AAvalues(2014,45201523)
insertinto@AAvalues(2014,45201524)
insertinto@AAvalues(2014,45201525)
insertinto@AAvalues(2014,45201526)
insertinto@AAvalues(2014,45201527)
insertinto@AAvalues(2014,45201528)
insertinto@AAvalues(2014,45201532)
insertinto@AAvalues(2014,45201535)
insertinto@AAvalues(2014,45201536)
insertinto@AAvalues(2013,45070121)
insertinto@AAvalues(2013,45070122)
insertinto@AAvalues(2011,45010022)
insertinto@AAvalues(2011,45010023)
insertinto@AAvalues(2012,48038811)
insertinto@AAvalues(2012,48038815)
--select年份,CAST(start_numasvarchar)+'-'+CAST(end_numasvarchar)as票段號,份數from(
--selectyears年份,min(number)asstart_num,max(number)asend_num,COUNT(years)as份數
--from
--(selectyears,number,number-ROW_NUMBER()over(orderbynumber)asgrp
--from@AA)m
--groupbygrp,years)t
--wherestart_num!=end_num
--unionall
--select年份,CAST(start_numasvarchar)as票段號,份數from(
--selectyears年份,min(number)asstart_num,max(number)asend_num,COUNT(years)as份數
--from
--(selectyears,number,number-ROW_NUMBER()over(orderbynumber)asgrp
--from@AA)m
--groupbygrp,years)t
--wherestart_num=end_num

--orderby年份,票段號asc
select年份,casewhenstart_num!=end_numthenconvert(varchar(20),start_num)+'-'+convert(varchar(20),end_num)elseconvert(varchar(20),start_num)endas票段號,份數from(
selectyears年份,min(number)asstart_num,max(number)asend_num,COUNT(years)as份數
from
(selectyears,number,number-ROW_NUMBER()over(orderbynumber)asgrp
from@AA)m
groupbygrp,years)t

orderby年份,票段號asc

④ 關於SQL語句。綜合分析題。急~

create database CPXS --1
/*2*/
create table 產品表(產品編號 varchar(10) not null PRIMARY KEY, 產品名稱 varchar(50) not null ,庫存量 int)

create table 銷售商表(
客戶編號 varchar(10) not null PRIMARY KEY,
客戶名稱 varchar(50) not null,
地區 varchar(50),
負責人 varchar(20),
電話 varchar(15)
)
create table 產品表(銷售日期 datetime not null,產品編號 varchar(10) not null,數量 int,價格 money)
--3
insert into 產品表(產品編號,產品名稱,庫存量)
values('0001','計算機',20)

update 銷售商表 set 電話='1398888888' where 客戶名稱='劉濤'
--5
create proc GetGoods
as
begin
select Distinct 產品名稱 from 產品表
end
--第四題是什麼意思

⑤ sql語句分析。(名牌大學考試題)

首先要說,這些語法都是基於SQLSERVER資料庫的語法,DATEDIFF TOP等,在ORACLE等其他資料庫是沒有的。
1. 主要是datediff函數的用法,獲取兩個日期之間的時間差,可以得到年月日小時分秒等等,可以參看這個函數的說明。
這里第一個參數表示獲取時間差的類型,minute表示獲取兩個日期的時間差是分鍾。
第二個參數是起始時間,第二個是截止時間,都是datetime類型。
getdate(),獲取當前時間的函數。
我覺得你這個語句寫的有問題。第一,參數minute,不需要使用單引號,如果使用了單引號,參數就錯誤了,因為datediff第一個參數不是字元型的。
第二,datediff的函數第二個日期是開始時間,第二個是結束時間,你這個正好反了。
SQL: select * from 日程安排 where datediff(minute,f開始時間,getdate())>5
這個的意思是當前時間已經超過了開始時間5分鍾的,會顯示出來,而不是提前5分鍾提醒。
提前五分鍾提醒:SQL: select * from 日程安排 where datediff(minute,getdate(), f開始時間) < 5
距離當前時間小於5分鍾的記錄,才是提前5分鍾提醒。

2.
select top 10 b.* from (select top 20 主鍵欄位,排序欄位 from 表名 order by 排序欄位 desc) a,表名 b where b.主鍵欄位= a.主鍵欄位 order by a.排序欄位

先看from括弧內的語句:select top 20 主鍵欄位,排序欄位 from 表名 order by 排序欄位 desc,按照排序欄位降序排列取出前20行數據。
然後再整體看,把表和這個20行數據關聯,那麼能取到的最大范圍也就是這20行了。
然後取出前10行,我不知道這個為什麼叫做分頁查詢,因為根本沒有每頁多少行以及第幾頁的參數在。這個語句就是按照排序欄位倒敘排列的前20行,然後在按照排序欄位正序排列從這前20行中取出前10行。實際上就是取出了按照排序欄位倒敘排列的第11-20行的數據並正序排列。

3.內連接:實際上就是兩表直接連接,取出連接成立的所有數據。語法使用Inner join
距離:有學生表:student : student_id , student_name
001 張三
002 李四
003 王五
成績表: score : course_id student_id score
課程1 001 85
課程2 001 85
課程1 002 80
課程2 002 90
查詢學生選課成績,顯示 student_name, course_id, score
select a.student_name, b.course_id, b.score
from student a inner join score b on a.student_id = b.student_id
查詢結果 student_name, course_id, score
張三 課程1 85
張三 課程2 85
李四 課程1 80
李四 課程2 90
可以看到,直接符合連接條件的數據,都會被選擇出來,而王五,因為在成績表沒有成績,所以查詢結果並沒有王五的數據。

4.外連接,left join, right join,分別是左外連接和右外連接。
就是以一個表為主,而另一個表為輔。主表的數據都會被查詢出來,而符合兩表連接條件,那麼輔表的數據就會顯示,否則,為空(NULL)
還以上表和上述語句為例,查詢所有學生的成績清單,沒有成績顯示空,但是學生要顯示。
select a.student_name, b.course_id, b.score
from student a left join score b on a.student_id = b.student_id

查詢結果:
student_name course_id score
張三 課程1 85
張三 課程2 85
李四 課程1 80
李四 課程2 90
王五 NULL NULL

可以看到,雖然連接條件王五這條並不成立,但是王五的數據一樣會被顯示出來,只是成績表的相關數據位空。
有連接和左連接一樣,把上面的順序換過來,效果相同
select a.student_name, b.course_id, b.score
from score b right join student a on a.student_id = b.student_id

⑥ 幾道簡單的sql server 2000 習題

1.D
2.C
3.A
4.C
5.D
6.B
7.非Unicode 和 Unicode
8.錯
9.錯
10.對
11.對
12.對
13. INSERT ,UPDATE,DELETE
14.將一位小數四捨五入成整數