日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
SQL建表:如何在數(shù)據(jù)庫(kù)中創(chuàng)建新表格?(數(shù)據(jù)庫(kù)sql建立表039)

數(shù)據(jù)庫(kù)是當(dāng)今互聯(lián)網(wǎng)時(shí)代中不可缺少的一部分,而其中最核心的環(huán)節(jié)就是數(shù)據(jù)管理。數(shù)據(jù)庫(kù)中的數(shù)據(jù)需要被組織起來(lái),以便更好地進(jìn)行管理和運(yùn)用。表格是數(shù)據(jù)庫(kù)中的重要組成部分,可以幫助我們更加有效地處理和組織數(shù)據(jù)。在數(shù)據(jù)庫(kù)中創(chuàng)建新表格是一個(gè)必要的步驟,那么本文將向你講解如何在SQL中創(chuàng)建新表格。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出葉縣免費(fèi)做網(wǎng)站回饋大家。

什么是SQL?

SQL是結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)的縮寫,是用于與關(guān)系數(shù)據(jù)庫(kù)交互的標(biāo)準(zhǔn)語(yǔ)言。SQL是在1970年代初期由 IBM 的 System R 項(xiàng)目研制而成,由于其結(jié)構(gòu)化的特點(diǎn),在當(dāng)時(shí)的數(shù)據(jù)庫(kù)系統(tǒng)中得到了廣泛的應(yīng)用,并成為了許多數(shù)據(jù)庫(kù)系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。

在數(shù)據(jù)庫(kù)中使用SQL,可以實(shí)現(xiàn)以下四個(gè)方面的功能:

1. 數(shù)據(jù)記錄的添加、刪除、修改和查詢

2. 數(shù)據(jù)庫(kù)的創(chuàng)建、刪除和維護(hù)

3. 數(shù)據(jù)庫(kù)訪問(wèn)控制和權(quán)限管理

4. 數(shù)據(jù)的備份和恢復(fù)

SQL建表的基本語(yǔ)法

創(chuàng)建數(shù)據(jù)表需要使用 CREATE TABLE 語(yǔ)句。 CREATE TABLE 語(yǔ)句的語(yǔ)法可以分為以下幾個(gè)部分:

1. CREATE TABLE – 告訴數(shù)據(jù)庫(kù)你要?jiǎng)?chuàng)建一個(gè)新表格

2. 表格名稱 – 為新表格命名

3. 括號(hào)內(nèi)的列和數(shù)據(jù)類型 – 括號(hào)中列和列數(shù)據(jù)類型之間用逗號(hào)分隔

4. 每個(gè)列的數(shù)據(jù)類型

5. 用于定義列的約束,例如主鍵、唯一鍵、非空等約束

下面是一個(gè)例子:

CREATE TABLE customers (

id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

first_name varchar(255) NOT NULL,

last_name varchar(255) NOT NULL,

eml varchar(255) NOT NULL UNIQUE,

created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

);

在這個(gè)例子中,我們要?jiǎng)?chuàng)建一個(gè)名為 customers 的數(shù)據(jù)表格,其中包含了五列,分別是 id、first_name、last_name、eml 和 created_at。id 列是主鍵且自動(dòng)遞增,first_name 和 last_name 列是不可為空值,而 eml 列是唯一的,created_at 列是時(shí)間戳類型,且不可為空,除非使用默認(rèn)值 CURRENT_TIMESTAMP。

SQL數(shù)據(jù)類型

建立數(shù)據(jù)表之前,我們需要確定每一列的數(shù)據(jù)類型。以下是幾種常見(jiàn)的數(shù)據(jù)類型:

1. INT: 存儲(chǔ)整數(shù),如數(shù)字 2、0 或 -100

2. VARCHAR: 存儲(chǔ)文本字符串,如“Hello World”

3. TEXT: 存儲(chǔ)長(zhǎng)文本字符串,用于存儲(chǔ)大塊的文本,如文章、博客等

4. DATE 和 TIME: 存儲(chǔ)日期和時(shí)間

5. FLOAT 和 DOUBLE: 存儲(chǔ)帶有小數(shù)點(diǎn)的數(shù)值

6. BOOLEAN: 存儲(chǔ)布爾值

SQL約束

除了數(shù)據(jù)類型之外,在創(chuàng)建數(shù)據(jù)表格時(shí),我們還可以定義該表中每個(gè)列的約束,以確保數(shù)據(jù)的完整性、準(zhǔn)確性和一致性。以下是一些基本的SQL約束:

1. PRIMARY KEY: 用于定義該列為主鍵,主鍵值必須是唯一的,且不能為 NULL

2. NOT NULL: 用于定義該列不能為 NULL

3. UNIQUE: 用于定義該列的值必須唯一

4. DEFAULT: 用于為某些列定義默認(rèn)值

5. FOREIGN KEY: 用于保持表格之間的關(guān)聯(lián)性

使用 SQL 建表的流程

1. 打開工具軟件(如 MySQL Workbench)并連接數(shù)據(jù)庫(kù)

2. 打開 SQL 輸入框,鍵入“CREATE TABLE”語(yǔ)句,并輸入所需的表格名稱和列

3. 確定每個(gè)列的數(shù)據(jù)類型和約束

4. 保存語(yǔ)句,點(diǎn)擊運(yùn)行或者發(fā)送

5. 在數(shù)據(jù)庫(kù)中檢查新數(shù)據(jù)表格是否創(chuàng)建成功

注意事項(xiàng)

1. 確保檢查所有輸入的大小寫

2. 確保列的數(shù)據(jù)類型和列的約束完全正確

3. 確保列名稱和表格名稱不要使用SQL的保留字

建立一個(gè)新數(shù)據(jù)表格是SQL管理數(shù)據(jù)庫(kù)的基本操作,SQL建表語(yǔ)句具有結(jié)構(gòu)簡(jiǎn)單、易于更新和操作等優(yōu)點(diǎn)。在使用 SQL 語(yǔ)句創(chuàng)建一個(gè)新數(shù)據(jù)表格之前,我們需要確定每個(gè)列的數(shù)據(jù)類型和約束類型。為了確保創(chuàng)建的數(shù)據(jù)表格符合要求,我們需要注意大小寫、數(shù)據(jù)類型和約束,不要使用 SQL 的保留字作為列名稱或表格名稱。通過(guò)這篇文章希望為你提供了SQL建表的基本語(yǔ)法和使用流程,加強(qiáng)SQL語(yǔ)言的實(shí)踐掌握。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!

數(shù)據(jù)庫(kù)基礎(chǔ)用SQL語(yǔ)言創(chuàng)建student表 急………..

/*1:建立學(xué)生表*/

create

table

student

(

SNO

char(10)

primary

key,

SNAME

char(4),

SSEX

char(2),

SAGE

int,

sdept

char(5)

);

/*2:建立course表*/

create

table

course(

CNO

char(10)

primary

key,

CNAME

char(20),

TEACHER

char(20)

);

/*3:建立課程表*/

create

table

SC

(

CNO

char(5)

primary

key,

CNAME

char(10),

TNO

char(3),

foreign

key(TNO)

references

teacher(TNO)

);

/*4:建立SC表*/

create

table

sc(

SNO

char(3),

CNO

char(5),

primary

key(SNO,CNO),

GRADE

VARCHAR2(10),

foreign

key(SNO)

references

student(SNO),

foreign

key(CNO)

references

course(CNO)

);

類似的一個(gè)例子

你看渣手著改一下名字早洞

大小如睜嫌就行了

sql數(shù)據(jù)庫(kù) 建立三個(gè)表 student(學(xué)號(hào) 姓名 性別) sc(學(xué)號(hào) 課程號(hào) 成績(jī))course(課程號(hào) 課程名 分?jǐn)?shù) )

select a.姓名, b.*

from students a,

(select sc.學(xué)號(hào), avg(sc.成績(jī)), count(sc.課程號(hào)) 不及格數(shù)桐和量啟圓

from sc

where sc.成績(jī) 1) b

where a.學(xué)號(hào) = b.學(xué)號(hào)悄輪塌

order by a.學(xué)號(hào);

select 姓名,savg from (select 學(xué)號(hào),avg(成績(jī))as savg from sc where 成績(jī)=2) t1,student where t1.學(xué)號(hào)=student.學(xué)號(hào)

1. Group By 語(yǔ)句簡(jiǎn)介:

  Group By語(yǔ)句從英文的字面意義上理解就是“根據(jù)(by)一定的規(guī)則進(jìn)行分組(Group)”。它的作用是通過(guò)一定的規(guī)則將一個(gè)數(shù)據(jù)集劃分成若干個(gè)小的區(qū)卜談?dòng)?,然后針?duì)若干個(gè)小區(qū)域進(jìn)行數(shù)據(jù)處理。   2. Group By 的使用:   上面已經(jīng)給出了對(duì)Group By語(yǔ)句的理解。基于這個(gè)理解和SQL Server 2023的聯(lián)機(jī)幫助,下面對(duì)Group By語(yǔ)句的各種典型使用進(jìn)行依次列舉說(shuō)明。   2.1 Group By :   這個(gè)恐怕是Group By語(yǔ)句最常見(jiàn)的用法了,Group By + (可以有多個(gè))。在執(zhí)行了這個(gè)操作以后,數(shù)據(jù)集將根據(jù)分組字段的值將一個(gè)數(shù)據(jù)集劃分成各個(gè)不同的小組。比如有如下數(shù)據(jù)集,其中水果名稱(FruitName)和出產(chǎn)國(guó)家(ProductPlace)為聯(lián)合主鍵:   FruitName ProductPlace Price

Apple China $1.1

Apple Japan $2.1

Apple USA $2.5

Orange China $0.8

Banana China $3.1

Peach USA $3.0

 如果我們想知道每個(gè)國(guó)家有多少種水果,那么我們可以通過(guò)如下SQL語(yǔ)句來(lái)完成:   SELECT COUNT(*) AS 水果種類, ProductPlace AS 出產(chǎn)國(guó)   FROM T_TEST_FRUITINFO   GROUP BY ProductPlace   這個(gè)SQL語(yǔ)句就是使用了Group By + 分組字段的方式,那么這句SQL語(yǔ)句就可以解釋成“我按照出產(chǎn)國(guó)家(ProductPlace)將數(shù)據(jù)集進(jìn)行分組,然后分別按照各個(gè)組來(lái)統(tǒng)計(jì)各自的記錄數(shù)量?!焙芎美斫鈱?duì)吧。這里值得注意的是結(jié)果集中有兩個(gè)返回字段,一個(gè)是ProductPlace(出產(chǎn)國(guó)), 一個(gè)是水果種類。如果我們這里水果種類不是用Count(*),而是類似如下寫法的話:   SELECT FruitName, ProductPlace FROM T_TEST_FRUITINFO GROUP BY ProductPlace   那么SQL在執(zhí)行此語(yǔ)句的時(shí)候會(huì)報(bào)如下的類似錯(cuò)誤:者轎   選擇列表中的列 ‘T_TEST_FRUITINFO.FruitName’ 無(wú)效,因?yàn)樵摿袥](méi)有包含在聚合函數(shù)或 GROUP BY 子句中。   這就是我們需要注意的一點(diǎn),如果在返回集字段中,這些字段要么就要包含在Group By語(yǔ)句的后面,作為分組的依據(jù);要么就要被包含在聚合函數(shù)中。我們可以將Group By操作想象成如下的一個(gè)過(guò)程,首先系統(tǒng)根據(jù)SELECT 語(yǔ)句得到一個(gè)結(jié)果集,如最開始的那個(gè)水果、出產(chǎn)國(guó)家、單價(jià)的一個(gè)詳細(xì)表。然后根據(jù)分組字段,將具有相同分組字段的記錄歸并成了一條記錄。這個(gè)時(shí)候剩下的那些不存在于Group By語(yǔ)句后面作為分組依據(jù)的字段就有可能出現(xiàn)多個(gè)值,但是目前一種分組情況只有一條記錄,一個(gè)數(shù)據(jù)格是無(wú)法放入多個(gè)數(shù)值的,所以這里就需要通過(guò)一定的處理將這些多值的列轉(zhuǎn)化成單值,然后將其放在對(duì)應(yīng)的數(shù)據(jù)格中,那么完成這個(gè)步驟的就是聚合函數(shù)。這就是為什么這些函數(shù)叫聚合函數(shù)(aggregate functions)了。   2.2 Group By All :   Group By All + 分組字段, 這個(gè)和前面提到的Group By 的形式多了一個(gè)關(guān)鍵字ALL。這個(gè)關(guān)鍵字只有在使用了where語(yǔ)句的,且where條件篩選掉了一些組的情況才可以首弊肆看出效果。在SQL Server 2023的聯(lián)機(jī)幫助中,對(duì)于Group By All是這樣進(jìn)行描述的:   如果使用 ALL 關(guān)鍵字,那么查詢結(jié)果將包括由 GROUP BY 子句產(chǎn)生的所有組,即使某些組沒(méi)有符合搜索條件的行。沒(méi)有 ALL 關(guān)鍵字,包含 GROUP BY 子句的 SELECT 語(yǔ)句將不顯示沒(méi)有符合條件的行的組。   其中有這么一句話“如果使用ALL關(guān)鍵字,那么查詢結(jié)果將包含由Group By子句產(chǎn)生的所有組…沒(méi)有ALL關(guān)鍵字,那么不顯示不符合條件的行組。”這句話聽(tīng)起來(lái)好像挺耳熟的,對(duì)了,好像和LEFT JOIN 和 RIGHT JOIN 有點(diǎn)像。其實(shí)這里是類比LEFT JOIN來(lái)進(jìn)行理解的。還是基于如下這樣一個(gè)數(shù)據(jù)集:   FruitName ProductPlace Price

Apple China $1.1

Apple Japan $2.1

Apple USA $2.5

Orange China $0.8

Banana China $3.1

Peach USA $3.0

 首先我們不使用帶ALL關(guān)鍵字的Group By語(yǔ)句:   SELECT COUNT(*) AS 水果種類, ProductPlace AS 出產(chǎn)國(guó)   FROM T_TEST_FRUITINFO   WHERE (ProductPlace ‘Japan’)   GROUP BY ProductPlace   那么在最后結(jié)果中由于Japan不符合where語(yǔ)句,所以分組結(jié)果中將不會(huì)出現(xiàn)Japan。   現(xiàn)在我們加入ALL關(guān)鍵字:   SELECT COUNT(*) AS 水果種類, ProductPlace AS 出產(chǎn)國(guó)   FROM T_TEST_FRUITINFO   WHERE (ProductPlace ‘Japan’)   GROUP BY ALL ProductPlace   重新運(yùn)行后,我們可以看到Japan的分組,但是對(duì)應(yīng)的“水果種類”不會(huì)進(jìn)行真正的統(tǒng)計(jì),聚合函數(shù)會(huì)根據(jù)返回值的類型用默認(rèn)值0或者NULL來(lái)代替聚合函數(shù)的返回值。   2.3 GROUP BY WITH CUBE | ROLLUP:   首先需要說(shuō)明的是Group By All 語(yǔ)句是不能和CUBE 和 ROLLUP 關(guān)鍵字一起使用的。   首先先說(shuō)說(shuō)CUBE關(guān)鍵字,以下是SQL Server 2023聯(lián)機(jī)幫助中的說(shuō)明:   指定在結(jié)果集內(nèi)不僅包含由 GROUP BY 提供的正常行,還包含匯總行。在結(jié)果集內(nèi)返回每個(gè)可能的組和子組組合的 GROUP BY 匯總行。GROUP BY 匯總行在結(jié)果中顯示為 NULL,但可用來(lái)表示所有值。使用 GROUPING 函數(shù)確定結(jié)果集內(nèi)的空值是否是 GROUP BY 匯總值。   結(jié)果集內(nèi)的匯總行數(shù)取決于 GROUP BY 子句內(nèi)包含的列數(shù)。GROUP BY 子句中的每個(gè)操作數(shù)(列)綁定在分組 NULL 下,并且分組適用于所有其它操作數(shù)(列)。由于 CUBE 返回每個(gè)可能的組和子組組合,因此不論指定分組列時(shí)所使用的是什么順序,行數(shù)都相同。   我們通常的Group By語(yǔ)句是按照其后所跟的所有字段進(jìn)行分組,而如果加入了CUBE關(guān)鍵字以后,那么系統(tǒng)將根據(jù)所有字段進(jìn)行分組的基礎(chǔ)上,還會(huì)通過(guò)對(duì)所有這些分組字段所有可能存在的組合形成的分組條件進(jìn)行分組計(jì)算。由于上面舉的例子過(guò)于簡(jiǎn)單,這里就再適合了,現(xiàn)在我們的數(shù)據(jù)集將換一個(gè)場(chǎng)景,一個(gè)表中包含人員的基本信息:?jiǎn)T工所在的部門編號(hào)(C_EMPLINFO_DEPTID)、員工性別(C_EMPLINFO_SEX)、員工姓名(C_EMPLINFO_NAME)等。那么我現(xiàn)在想知道每個(gè)部門各個(gè)性別的人數(shù),那么我們可以通過(guò)如下語(yǔ)句得到:   SELECT C_EMPLINFO_DEPTID, C_EMPLINFO_SEX, COUNT(*) AS C_EMPLINFO_TOTALSTAFFNUM   FROM T_PERSONNEL_EMPLINFO   GROUP BY C_EMPLINFO_DEPTID, C_EMPLINFO_SEX   但是如果我現(xiàn)在希望知道:   1. 所有部門有多少人(這里相當(dāng)于就不進(jìn)行分組了,因?yàn)檫@里已經(jīng)對(duì)員工的部門和性別沒(méi)有做任何限制了,但是這的確也是一種分組條件的組合方式);   2. 每種性別有多人(這里實(shí)際上是僅僅根據(jù)性別(C_EMPLINFO_SEX)進(jìn)行分組);   3. 每個(gè)部門有多少人(這里僅僅是根據(jù)部門(C_EMPLINFO_DEPTID)進(jìn)行分組);那么我們就可以使用ROLLUP語(yǔ)句了。   SELECT C_EMPLINFO_DEPTID, C_EMPLINFO_SEX, COUNT(*) AS C_EMPLINFO_TOTALSTAFFNUM   FROM T_PERSONNEL_EMPLINFO   GROUP BY C_EMPLINFO_DEPTID, C_EMPLINFO_SEX WITH CUBE   那么這里你可以看到結(jié)果集中多出了很多行,而且結(jié)果集中的某一個(gè)字段或者多個(gè)字段、甚至全部的字段都為NULL,請(qǐng)仔細(xì)看一下你就會(huì)發(fā)現(xiàn)實(shí)際上這些記錄就是完成了上面我所列舉的所有統(tǒng)計(jì)數(shù)據(jù)的展現(xiàn)。使用過(guò)SQL Server 2023或者RDLC的朋友們一定對(duì)于矩陣的小計(jì)和分組功能有印象吧,是不是都可以通過(guò)這個(gè)得到答案。我想RDLC中對(duì)于分組和小計(jì)的計(jì)算就是通過(guò)Group By的CUBE和ROLLUP關(guān)鍵字來(lái)實(shí)現(xiàn)的。(個(gè)人意見(jiàn),未證實(shí))   CUBE關(guān)鍵字還有一個(gè)極為相似的兄弟ROLLUP, 同樣我們先從這英文入手,ROLL UP是“向上卷”的意思,如果說(shuō)CUBE的組合是絕對(duì)自由的,那么ROLLUP的組合就需要有點(diǎn)約束了。我們先來(lái)看看SQL Server 2023的聯(lián)機(jī)中對(duì)ROLLUP關(guān)鍵字的定義:   指定在結(jié)果集內(nèi)不僅包含由 GROUP BY 提供的正常行,還包含匯總行。按層次結(jié)構(gòu)順序,從組內(nèi)的更低級(jí)別到更高級(jí)別匯總組。組的層次結(jié)構(gòu)取決于指定分組列時(shí)所使用的順序。更改分組列的順序會(huì)影響在結(jié)果集內(nèi)生成的行數(shù)。   那么這個(gè)順序是什么呢?對(duì)了就是Group By 后面字段的順序,排在靠近Group By的分組字段的級(jí)別高,然后是依次遞減。如:Group By Column1, Column2, Column3。那么分組級(jí)別從高到低的順序是:Column1 > Column2 > Column3。還是看我們前面的例子,SQL語(yǔ)句中我們僅僅將CUBE關(guān)鍵字替換成ROLLUP關(guān)鍵字,如:   SELECT C_EMPLINFO_DEPTID, C_EMPLINFO_SEX, COUNT(*) AS C_EMPLINFO_TOTALSTAFFNUM   FROM T_PERSONNEL_EMPLINFO   GROUP BY C_EMPLINFO_DEPTID, C_EMPLINFO_SEX WITH ROLLUP   和CUBE相比,返回的數(shù)據(jù)行數(shù)減少了不少。:),仔細(xì)看一下,除了正常的Group By語(yǔ)句后,數(shù)據(jù)中還包含了:   1. 部門員工數(shù);(向上卷了一次,這次先去掉了員工性別的分組限制)   2. 所有部門員工數(shù);(向上又卷了依次,這次去掉了員工所在部門的分組限制)。   在現(xiàn)實(shí)的應(yīng)用中,對(duì)于報(bào)表的一些統(tǒng)計(jì)功能是很有幫助的。   這里還有一個(gè)問(wèn)題需要補(bǔ)充說(shuō)明一下,如果我們使用ROLLUP或者CUBE關(guān)鍵字,那么將產(chǎn)生一些小計(jì)的行,這些行中被剔除在分組因素之外的字段將會(huì)被設(shè)置為NULL,那么還存在一種情況,比如在作為分組依據(jù)的列表中存在可空的行,那么NULL也會(huì)被作為一個(gè)分組表示出來(lái),所以這里我們就不能僅僅通過(guò)NULL來(lái)判斷是不是小計(jì)記錄了。下面的例子展示了這里說(shuō)得到的情況。還是我們前面提到的水果例子,現(xiàn)在我們?cè)诿糠N商品后面增加一個(gè)“折扣列”(Discount),用于顯示對(duì)應(yīng)商品的折扣,這個(gè)數(shù)值是可空的,也就是可以通過(guò)NULL來(lái)表示沒(méi)有對(duì)應(yīng)的折扣信息。數(shù)據(jù)集如下所示:   FruitName ProductPlace Price Discount

Apple China $1.1 0.8

Apple Japan $2.1 0.9

Apple USA $2.5 1.0

Orange China $0.8 NULL

Banana China $3.1 NULL

Peach USA $3.0 NULL

 現(xiàn)在我們要統(tǒng)計(jì)“各種折扣對(duì)應(yīng)有多少種商品,并總計(jì)商品的總數(shù)。”,那么我們可以通過(guò)如下的SQL語(yǔ)句來(lái)完成:   SELECT COUNT(*) AS ProductCount, Discount   FROM T_TEST_FRUITINFO   GROUP BY Discount WITH ROLLUP   好了,運(yùn)行一下,你會(huì)發(fā)現(xiàn)數(shù)據(jù)都正常出來(lái)了,按照如上的數(shù)據(jù)集,結(jié)果如下所示:   ProductCount Discount

3 NULL

1 0.8

1 0.9

1 1.0

6 NULL

 好了,各種折扣的商品數(shù)量都出來(lái)了,但是在顯示“沒(méi)有折扣商品”和“商品小計(jì)”的時(shí)候判斷上確存在問(wèn)題,因?yàn)榇嬖趦蓷lDiscount為Null的記錄。是哪一條呢?通過(guò)分析數(shù)據(jù)我們知道之一條數(shù)據(jù)(3, Null)應(yīng)該對(duì)應(yīng)沒(méi)有折扣商品的數(shù)量,而(6,Null)應(yīng)該對(duì)應(yīng)所有商品的數(shù)量。需要判斷這兩個(gè)具有不同意義的Null就需要引入一個(gè)聚合函數(shù)Grouping?,F(xiàn)在我們把語(yǔ)句修改一下,在返回值中使用Grouping函數(shù)增加一列返回值,SQL語(yǔ)句如下:   SELECT COUNT(*) AS ProductCount, Discount, GROUPING(Discount) AS Expr1   FROM T_TEST_FRUITINFO   GROUP BY Discount WITH ROLLUP   這個(gè)時(shí)候,我們?cè)倏纯催\(yùn)行的結(jié)果:   ProductCount Discount Expr1

3 NULL 0

1 0.8 0

1 0.9 0

1 1.0 0

6 NULL 1

 對(duì)于根據(jù)指定字段Grouping中包含的字段進(jìn)行小計(jì)的記錄,這里會(huì)標(biāo)記為1,我們就可以通過(guò)這個(gè)標(biāo)記值將小計(jì)記錄從判斷那些由于ROLLUP或者CUBE關(guān)鍵字產(chǎn)生的行。Grouping(column_name)可以帶一個(gè)參數(shù),Grouping就會(huì)去判斷對(duì)應(yīng)的字段值的NULL是否是由ROLLUP或者CUBE產(chǎn)生的特殊NULL值,如果是那么就在由Grouping聚合函數(shù)產(chǎn)生的新列中將值設(shè)置為1。注意Grouping只會(huì)檢查Column_name對(duì)應(yīng)的NULL來(lái)決定是否將值設(shè)置為1,而不是完全由此列是否是由ROLLUP或者CUBE關(guān)鍵字自動(dòng)添加來(lái)決定的。   2.2 Group By 和 Having, Where ,Order by語(yǔ)句的執(zhí)行順序:   最后要說(shuō)明一下的Group By, Having, Where, Order by幾個(gè)語(yǔ)句的執(zhí)行順序。一個(gè)SQL語(yǔ)句往往會(huì)產(chǎn)生多個(gè)臨時(shí)視圖,那么這些關(guān)鍵字的執(zhí)行順序就非常重要了,因?yàn)槟惚仨毩私膺@個(gè)關(guān)鍵字是在對(duì)應(yīng)視圖形成前的字段進(jìn)行操作還是對(duì)形成的臨時(shí)視圖進(jìn)行操作,這個(gè)問(wèn)題在使用了別名的視圖尤其重要。以上列舉的關(guān)鍵字是按照如下順序進(jìn)行執(zhí)行的:Where, Group By, Having, Order by。首先where將最原始記錄中不滿足條件的記錄刪除(所以應(yīng)該在where語(yǔ)句中盡量的將不符合條件的記錄篩選掉,這樣可以減少分組的次數(shù)),然后通過(guò)Group By關(guān)鍵字后面指定的分組條件將篩選得到的視圖進(jìn)行分組,接著系統(tǒng)根據(jù)Having關(guān)鍵字后面指定的篩選條件,將分組視圖后不滿足條件的記錄篩選掉,然后按照Order By語(yǔ)句對(duì)視圖進(jìn)行排序,這樣最終的結(jié)果就產(chǎn)生了。在這四個(gè)關(guān)鍵字中,只有在Order By語(yǔ)句中才可以使用最終視圖的列名,如:   SELECT FruitName, ProductPlace, Price, ID AS IDE, Discount   FROM T_TEST_FRUITINFO   WHERE (ProductPlace = N’china’)   ORDER BY IDE   這里只有在ORDER BY語(yǔ)句中才可以使用IDE,其他條件語(yǔ)句中如果需要引用列名則只能使用ID,而不能使用IDE。

2023年3月計(jì)算機(jī)等級(jí)考試二級(jí)VFP筆試:

一、選擇題

(1)下列關(guān)于棧敘述正確的是

A) 棧頂元素更先能被刪除

B)棧頂元素最后才能被刪碼族除

C)棧底元素永尺枯遠(yuǎn)不能被刪除

D)以上三種說(shuō)法都不對(duì)

(2)下列敘述中正確的是

A)有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)

B)只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)陵模洞

C)循環(huán)鏈表是非線性結(jié)構(gòu)

D)雙向鏈表是非線性結(jié)構(gòu)

(3)某二叉樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè),則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)

A)3

B)4

C)6

D)7

(4)在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是

A)軟件集成測(cè)試計(jì)劃

B)軟件詳細(xì)設(shè)計(jì)說(shuō)明書

C) 用戶手冊(cè)

D)軟件需求規(guī)格說(shuō)明書

(5)結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括

A)順序結(jié)構(gòu)

B)GOTO跳轉(zhuǎn)

C)選擇(分支)結(jié)構(gòu)

D)重復(fù)(循環(huán))結(jié)構(gòu)

(6)下面描述中錯(cuò)誤的是

A) 系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)

B)軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過(guò)程

C)數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫(kù)設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一

D)PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具

(7)負(fù)責(zé)數(shù)據(jù)庫(kù)中查詢操作的數(shù)據(jù)庫(kù)語(yǔ)言是

A)數(shù)據(jù)定義語(yǔ)言

B)數(shù)據(jù)管理語(yǔ)言

C)數(shù)據(jù)操縱語(yǔ)言

D)數(shù)據(jù)控制語(yǔ)言

(8)一個(gè)教師可講授多門課程,一門課程可由多個(gè)教師講授。則實(shí)體教師和課程間的聯(lián)系是

A)1:1聯(lián)系

B)1:m聯(lián)系

C) m:1聯(lián)系

D) m:n聯(lián)系

(9)有三個(gè)關(guān)系R、S和T如下:

則由關(guān)系R和S得到關(guān)系T的操作是

A)自然連接

B)交

C)除

D)并

(10)定義無(wú)符號(hào)整數(shù)類為UInt,下面可以作為類T實(shí)例化值的是

A)-369

B)369

C)0.369

D)整數(shù){1,2,3,4,5}

(11)在建立數(shù)據(jù)庫(kù)表時(shí)給該表指定了主索引,該索引實(shí)現(xiàn)了數(shù)據(jù)完整性中的

A)參照完整性

B)實(shí)體完整性

C)域完整性

D)用戶定義完整性

(12)執(zhí)行如下命令的輸出結(jié)果是

?15%4,15%-4

A)3 -1

B)3 3

C)1 1

D)1 -1

(13)在數(shù)據(jù)庫(kù)表中,要求指定字段或表達(dá)式不出現(xiàn)重復(fù)值,應(yīng)該建立的索引是

A)惟一索引

B)惟一索引和候選索引

C)惟一索引和主索引

D)主索引和候選索引

(14)給student表增加一個(gè)“平均戍績(jī)”字段(數(shù)值型,總寬度6} 2位小數(shù))的SQL命令是

A)ALTER TABLE studeni ADD平均成績(jī)N(b,2)

B)ALTER TABLE student ADD平均成績(jī)D(6,2)

C)ALTER TABLE student ADD平均成績(jī)E(6,2)

D)ALTER TABLE student ADD平均成績(jī)Y(6,2)

(15)在Visual FoxPro中,執(zhí)行SQL的DELETE命令和傳統(tǒng)的FoxPro DELETE命令都可以刪除數(shù)據(jù)庫(kù)表中的記錄,下面正確的描述是

A)SQL的DELETE命令刪除數(shù)據(jù)庫(kù)表中的記錄之前,不需要先用USE命令打開表

B)SQL的DELETE命令和傳統(tǒng)的FoxPro DELETE命令刪除數(shù)據(jù)庫(kù)表中的記錄之前, 都需要先用命令USE打開表

C)SQL的DELETE命令可以物理地刪除數(shù)據(jù)庫(kù)表中的記錄,而傳統(tǒng)的FoxPro DELETE 命令只能邏輯刪除數(shù)據(jù)庫(kù)表中的記錄

D)傳統(tǒng)的FoxPro DELETE命令還可以刪除其它工作區(qū)中打開的數(shù)據(jù)庫(kù)表中的記錄

(16)在Visual FoxPro中,如果希望跳出SCAN…ENDSCAN循環(huán)語(yǔ)句、執(zhí)行ENDSCAN后面的語(yǔ)句,應(yīng)使用

A)LOOP語(yǔ)句

B)EXIT語(yǔ)句

C)BREAK語(yǔ)句

D)RETURN語(yǔ)句

(17)在Visual FoxPro中,“表”通常是指

A)表單

B)報(bào)表

C)關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系

D)以上都不對(duì)

(18)刪除student表的“平均成績(jī)”字段的正確SQL命令是

A)DELETE TABLE student DELETE COLUMN平均成績(jī)

B)ALTER TABLE student DELETE COLUMN平均成績(jī)

C)ALTER TABLE student DROP COLUMN平均成績(jī)

D)DELETE TABLE student DROP COLUMN平均成績(jī)

(19)在Visual FoxPro中,關(guān)于視圖的正確描述是

A)視圖也稱作窗口

B)視圖是一個(gè)預(yù)先定義好的SQL SELECT語(yǔ)句文件

C)視圖是一種用SQL SELECT語(yǔ)句定義的虛擬表

D)視圖是一個(gè)存儲(chǔ)數(shù)據(jù)的特殊表

(20)從student表刪除年齡大于30的記錄的正確SQL命令是

A)DELETE FOR年齡>30

B)DELETE FROM student WHERE年齡>30

C)DEL ETE student FOP年齡>30

D)DELETE student WF IERE年齡>30

(21)在Vaual FoxPro中,使用LOCATL FOR }expL>命令按條件查找記錄,當(dāng)查找到滿足條件的之一條記錄后,如果還需要查找下一條滿足條件的記錄,應(yīng)該

A)再次使用LOCATE命令重新查詢

B)使用SKIP命令

C)使用CONTINUE命令

D)使用GO命令

(22)為了在報(bào)表中打印當(dāng)前時(shí)間,應(yīng)該插入的控件是

A)文本框控件

B)表達(dá)式

C)標(biāo)簽控件

D)域控件

(23)在Visual FoxPro中,假設(shè)student表中有40條記錄,執(zhí)行下面的命令后,屏幕顯示的結(jié)果是

?RECCOUNT()

A)0

B)1

C)40

D)出錯(cuò)

(24)向student表插入一條新記錄的正確SQL語(yǔ)句是

A)APPEND INTO student VALUES(’0401’,’王芳’,’女’,18)

B)APPEND student VALUES(’0401’,’王芳’,’女’,18):

C)INSERT INTO student VALUES(’0401’,’王芳’,’女’,18)

D)INSERT student VALUES(’0401’,’王芳’,’女’,18)

(25)在一個(gè)空的表單中添加一個(gè)選項(xiàng)按鈕組控件,該控件可能的默認(rèn)名稱是

A)Optiongroup 1

B)Checkl

C)Spinnerl

D)Listl

(26)恢復(fù)系統(tǒng)默認(rèn)菜單的命令是

A)SET MENU TO DEFAULT

B)SET SYENU TO DEFAULT

C)SET SYSTEM MENU TO DEFAULT

D)SET SYSTEM TO DEFAULT

(27)在Visual F’oxPro中,用于設(shè)置表單標(biāo)題的屬性是

A)Text

B)Title

C)Lable

D)Caption

(28)消除SQL SELECT查詢結(jié)果中的重復(fù)記錄,可采取的方法是

A)通過(guò)指定主關(guān)鍵字

B)通過(guò)指定惟一索引

C)使用DISTINCT短語(yǔ)

D)使用UNIQUE短語(yǔ)

(29)在設(shè)計(jì)界面時(shí),為提供多選功能,通常使用的控件是

A)選項(xiàng)按鈕組

B)一組復(fù)選框

C)編輯框

D)命令按鈕組

(30)為了使表單界面中的控件不可用,需將控件的某個(gè)屬性設(shè)置為假,該屬性是

A)Default

B)Enabled

C)Use

D)Enuse

第(31)-(35)題使用如下三個(gè)數(shù)據(jù)庫(kù)表:

學(xué)生表:student(學(xué)號(hào),姓名,性別,出生日期,院系)

課程表:course(課程號(hào),課程名,學(xué)時(shí))

選課成績(jī)表:score(學(xué)號(hào),課程號(hào),成績(jī))

其中出生日期的數(shù)據(jù)類型為日期型,學(xué)時(shí)和成績(jī)?yōu)閿?shù)值型,其它均為字符型。

(31)查詢“計(jì)算機(jī)系”學(xué)生的學(xué)號(hào)、姓名、學(xué)生所選課程的課程名和成績(jī),正確的命令是

A)SELECT s.學(xué)號(hào),姓名,課程名,成績(jī)

FROM student s, score sc, course c

WHERE s.學(xué)號(hào)= sc.學(xué)號(hào),sc.課程號(hào)=c.課程號(hào),院系=’計(jì)算機(jī)系’

B)SELECT學(xué)號(hào),姓名,課程名,成績(jī)

FROM student s, score sc, course c

WHERE s.學(xué)號(hào)=sc.學(xué)號(hào)AND sc.課程號(hào)=c.課程號(hào)AND院系=’計(jì)算機(jī)系’

C)SELECT s.學(xué)號(hào),姓名,課程名,成績(jī)

FROM(student s JOIN score sc ON s.學(xué)號(hào)=sc.學(xué)號(hào)).

JOIN course cON sc.課程號(hào)=c.課程號(hào)

WHERE院系=’計(jì)算機(jī)系’

D)SELECT學(xué)號(hào),姓名,課程名,成績(jī)

FROM(student s JOIN score sc ON s.學(xué)號(hào)=sc.學(xué)號(hào))

JOIN course c ON sc.課程號(hào)=c.課程號(hào)

WHERE院系=’計(jì)算機(jī)系’

(32)查詢所修課程成績(jī)都大于等于85分的學(xué)生的學(xué)號(hào)和姓名,正確的命令是

A)SELECT學(xué)號(hào),姓名FROM student s WHERE NOT EXISTS

(SELECT*FROM score sc WHERE sc.學(xué)號(hào)=s.學(xué)號(hào)AND成績(jī)<85)

B)SELECT學(xué)號(hào),姓名FROM student s WHERE NOT EXISTS

(SELECT * FROM score sc WHERE sc.學(xué)號(hào)=s.學(xué)號(hào)AND成績(jī)>= 85)

C)SELECT學(xué)號(hào),姓名FROM student s,score sc

WHERE s.學(xué)號(hào)=sc.學(xué)號(hào)AND成績(jī)>= 85

D)SELECT學(xué)號(hào),姓名FROM student s,score sc

WHEkE s.學(xué)號(hào)=sc.學(xué)號(hào)AND ALL成績(jī)>=85

(33)查詢選修課程在5門以上(含5門)的學(xué)生的學(xué)號(hào)、姓名和平均成績(jī),并按平均成

績(jī)降序排序,正確的命令是

A)SELECT s.學(xué)號(hào),姓名,平均成績(jī)FROM student s,score sc

WHEREs.學(xué)號(hào)=sc.學(xué)號(hào)

GROUP BY s.學(xué)號(hào)HAVING COUNT(*)>=5 ORDER BY平均成績(jī)DESC

B)SELECT學(xué)號(hào),姓名,AVG(成績(jī))FROM student s,score sc

WHERE s.學(xué)號(hào)=sc.學(xué)號(hào)AND COUNT(*)>=5

GROUP BY學(xué)號(hào)ORDER BY 3 DESC

C)SELECT s.學(xué)號(hào),姓名,AVG(成績(jī))平均成績(jī)FROM student s,score sc

WHERE s.學(xué)號(hào)=sc.學(xué)號(hào)AND COUNT(*)>= 5

GROUP BY s.學(xué)號(hào)ORDER BY平均成績(jī)DESC

D)SELECT s.學(xué)號(hào),姓名,AVG(成績(jī))平均成績(jī)FROM student s,score sc

WHERE s.學(xué)號(hào)=sc.學(xué)號(hào)

GROUP BY s.學(xué)號(hào)HAVING COUNT(*)>=5 ORDER BY 3 DESC

(34)查詢同時(shí)選修課程號(hào)為C1和C5課程的學(xué)生的學(xué)號(hào),正確的命令是

A)SELECT學(xué)號(hào)FROM score sc WHERE課程號(hào)=’C 1’AND學(xué)號(hào)IN

(SELECT學(xué)號(hào)FROM score sc WHERE課程號(hào)=’C5’)

B)SELECT學(xué)號(hào)FROM score sc WHERE課程號(hào)=’C1’AND學(xué)號(hào)=

(SELECT學(xué)號(hào)FROM score sc WHERE課程號(hào)=’C5’}

C)SELECT學(xué)號(hào)FROM score sc WHERE課程號(hào)=’C 1’ AND課程號(hào)=’C5’

D)SELECT學(xué)號(hào)FROM score sc WHERE課程號(hào)=’C 1’OR ’C5’

(35)刪除學(xué)號(hào)為“”且課程號(hào)為“C1”的選課記錄,正確命令是

A)DELETE FROM score WHERE課程號(hào)=’C 1’AND學(xué)號(hào)=’’

B)DELETE FROM score WHERE課程號(hào)=’C 1’OR學(xué)號(hào)=’’

C)DELETE FORM score WHERE課程號(hào)=’C 1’AND學(xué)號(hào)=’’

D)DELETE score WHERE課程號(hào)=’C 1’AND學(xué)號(hào)=’’

二、填空題

(1)有序線性表能進(jìn)行二分查找的前提是該線性表必須是存儲(chǔ)的。

(2)一棵二叉樹的中序遍歷結(jié)果為DBEAFC,前序遍歷結(jié)果為ABDECF則后序遍歷結(jié)果為。

(3)對(duì)軟件設(shè)計(jì)的最小單位(模塊或程序單元)進(jìn)行的測(cè)試通常稱為測(cè)試。

(4)實(shí)體完整性約束要求關(guān)系數(shù)據(jù)庫(kù)中元組的屬性值不能為空。

(5)在關(guān)系A(chǔ)(S, SN, D)和關(guān)系B(D,CN, NM)中,A的主關(guān)鍵字是S, B的主關(guān)鍵字是D,則稱是關(guān)系A(chǔ)的外碼。

(6)表達(dá)式EMPTY(.NULL.)的值是。

(7)假設(shè)當(dāng)前表、當(dāng)前記錄的“科目”字段值為“計(jì)算機(jī)”(字符型),在命令窗口輸入如下命令將顯示結(jié)果。

m=科目-“考試”

?m

(8)在Visual FoxPro中假設(shè)有查詢文件queryl.qpr,要執(zhí)行該文件應(yīng)使用命令。

(9)SQL語(yǔ)句“SELECT TOP 10 PERCENT*FROM訂單ORDER BY金額DESC”的查詢結(jié)果是訂單中金額的10%的訂單信息。

(10)在表單設(shè)計(jì)中,關(guān)鍵字表示當(dāng)前對(duì)象所在的表單。

(11)使用SQL的CREATE TABLE語(yǔ)句建立數(shù)據(jù)庫(kù)表時(shí),為了說(shuō)明主關(guān)鍵字應(yīng)該使用關(guān)鍵詞KEY。

(12)在Visual FoxPro中,要想將日期型或日期時(shí)間型數(shù)據(jù)中的年份用4位數(shù)字顯示,應(yīng)當(dāng)使用SET CENTURY命令進(jìn)行設(shè)置。

(13)在建立表間一對(duì)多的永久聯(lián)系時(shí),主表的索引類型必須是。

(14)為將一個(gè)表單定義為頂層表單,需要設(shè)置的屬性是。

(15)在使用報(bào)表向?qū)?chuàng)建報(bào)表時(shí),如果數(shù)據(jù)源包括父表和子表,應(yīng)該選取報(bào)表向?qū)А?/p>

可以這樣寫:我已經(jīng)測(cè)試過(guò)了:

select student.姓名,avg(sc.成猛做績(jī))

from student,sc

where student.學(xué)號(hào)=sc.學(xué)號(hào) and 姓名彎兆

in

(

select student.姓名 from student,sc

where student.學(xué)號(hào)=sc.學(xué)號(hào) and sc.成績(jī)=2

)

group by student.姓名

另外group by的詳細(xì)資料更好使用sql自帶的枝鬧衡幫助文檔,那里最全的,其他的資料都是從哪盜版過(guò)去的,遇到group by問(wèn)題可以問(wèn)我的。

關(guān)于數(shù)據(jù)庫(kù)sql建立表 039的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

四川成都云服務(wù)器租用托管【創(chuàng)新互聯(lián)】提供各地服務(wù)器租用,電信服務(wù)器托管、移動(dòng)服務(wù)器托管、聯(lián)通服務(wù)器托管,云服務(wù)器虛擬主機(jī)租用。成都機(jī)房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、開啟建站+互聯(lián)網(wǎng)銷售服務(wù),與企業(yè)客戶共同成長(zhǎng),共創(chuàng)價(jià)值。


分享標(biāo)題:SQL建表:如何在數(shù)據(jù)庫(kù)中創(chuàng)建新表格?(數(shù)據(jù)庫(kù)sql建立表039)
路徑分享:http://m.5511xx.com/article/dhcsico.html