ALTER TABLE ABC WITH NOCHECK
ADD CONSTRAINT AARULEDE CHECK (AA in (1,2,3,4,5))
❷ 用SQL語句做題。謝謝啦。。
一(1):SQL>select * from 學生表;
or select 學號,姓名,專業 from 學生表;
(2)SQL>select 姓名 from 學生表 where 學號=』A050040012』;
(3)SELECT TOP 5 * FROM 成績表
(4)select 學號,姓名,課程號,成績 from 學生表,成績表,課程表 where 學生表.學號=成績表.學號and 課程表.課程號=成績表.課程號;
(5)select 學號,成績 from 學生表,成績表
where 學生表.學號=成績表.學好 and 課程號=』02』and 成績>=80;
(6)select學號,成績 from 成績表 where 課程號=』03』and 成績 between 75 and 85; 其他=下 太多了 一時做不來
二(1)INSERT INTO 成績表 values('A050010012','02','','80');
(2)UPDATE 學生表 SET 班級=』0012』,專業=』計算機應用』
where 姓名 IN
(SELECT 姓名 FROM 學生表
WHERE 姓名=』王瑋』);
(3)UPDATE 成績表 SET 成績=92
WHERE 姓名 IN
(SELECT 姓名=李麗);
(4)DELETE FROM 成績表,學生表
WHERE 學號 IN
(SELECT 學號 FROM 學生表,成績表
WHERE 學生表.學號=成績表.學號AND 學號=』A050010025』);
(5)CREATE UNQUE INDEX INDEX-1
ON 成績表(學生表,課程表);
如果還沒解決你的問題,可以加我網路HI賬號。
❸ SQL的查詢語句(解題)
查詢
表SEL_TEL
中的字當60%<個人佔有概譽
ONE_LIST<80%,70%<總佔有譽
COUNT_LIST<90%
的數據
select
*
from
sel_tel
where
(60%<ONE_LIST<80%)and
(70%<COUNT_LIST<90%)
查詢
表SEL_TEL
中的
60%<
ONE_LIST<80%,70%<COUNT_LIST<90%
的所有數據
select
*
from
sel_tel
where
(60%<ONE_LIST<80%)or
(70%<COUNT_LIST<90%)
表SEL_TEL
有
3個字
單
用戶(NEMR)
個人佔有概譽(ONE_LIST),總佔有譽(COUNT_LIST),要你查詢60%<
ONE_LIST<80%,70%<COUNT_LIST<90%
的所有用戶
select
nemr
from
sel_tel
where
(60%<ONE_LIST<80%) or (70%<COUNT_LIST<90%)
不知道
是不是我
對題目有誤解,根據字面意思的解答。希望有幫助
❹ SQl簡答題,在線等
--一問題1
selectgradeas班級,sum(population)as總人數
fromc_populationgroupbygrade
--一問題2第一列應該是班級把?
selectgradeas班級,
sum(casewhensex='男'thenpopulationend)as男性人口數量,
sum(casewhensex='女'thenpopulationend)as女性人口數量
fromc_populationgroupbygrade
--二
selectA.nameas領導,B.nameas上級領導
onB.id=A.parentId
--三問題1
selectstudentNameas姓名,datediff(YEAR,Birthday,GETDATE())as今年年齡
fromstudent
--三問題2
selectA.studentId,B.studentName,C.Coursename,Grade
onA.studentId=B.studentId
innerjoincourseasC
onA.Courseid=C.Courseid
❺ 簡答題:SQL語言的四大功能及特點
SQL語言共分為四大類:數據查詢語言DQL,數據操縱語言DML, 數據定義語言DDL,數據控制語言DCL.其中用於定義數據的結構,比如 創建,修改或者刪除資料庫;DCL用於定義資料庫用戶的許可權;在這篇文章中我將詳細講述這兩種語言在Oracle中的使用方法.
DML語言
DML是SQL的一個子集,主要用於修改數據,下表列出了ORACLE支持的DML語句.
語句 用途
INSERT 向表中添加行
UPDATE 更新存儲在表中的數據
DELETE 刪除行
SELECT FOR UPDATE 禁止其他用戶訪問DML語句正在處理的行.
LOCK TABLE 禁止其他用戶在表中使用DML語句
插入數據
INSERT語句常常用於向表中插入行,行中可以有特殊數據欄位,或者可以用子查詢從已存在的數據中建立新行.
列目錄是可選的,預設的列的目錄是所有的列名,包括comlumn_id,comlumn_id可以在數據字典視圖ALL_TAB_COLUMNS,USER_TAB_COLUMNS,或者DBA_TAB_COLUMNS中找到.
插入行的數據的數量和數據類型必須和列的數量和數據類型相匹配.不符合列定義的數據類型將對插入值實行隱式數據轉換.NULL字元串將一個NULL值插入適當的列中.關鍵字NULL常常用於表示將某列定義為NULL值.
下面的兩個例子是等價的.
INSERT INTO customers(cust_id,state,post_code)
VALUE('Ariel',NULL,'94501');
或
INSERT INTO customers(cust_id,state,post_code)
VALUE('Ariel',,'94501');
更新數據
UPDATE命令用於修改表中的數據.
UPDATE order_rollup
SET(qty,price)=(SELECT SUM(qty),SUM(price) FROM order_lines WHERE customer_id='KOHL'
WHERE cust_id='KOHL'
AND order_period=TO_DATE('01-Oct-2000')
刪除數據
DELETE語句用來從表中刪除一行或多行數據,該命令包含兩個語句:
1,關鍵字DELETE FROM後跟准備從中刪除數據的表名.
2,WHERE後跟刪除條件
DELETE FROM po_lines
WHERE ship_to_state IN ('TX','NY','IL')
AND order_date
清空表
如果你想刪除表中所有數據,清空表,可以考慮使用DDL語言的TRUNCATE語句.TRUNCATE就像沒有WHERE子句的DELETE命令一樣.TRUNCATE將刪除表中所有行.TRUNCATE不是DML語句是DDL語句,他和DELETE右不同的特點.
TRUNCATE TABLE (schema)table DROP(REUSE) STORAGE
STORAGE子串是可選的,預設是DROP STORAGE.當使用DROP STORAGE時將縮短表和表索引,將表收縮到最小范圍,並重新設置NEXT參數.REUSE STORAGE不會縮短表或者調整NEXT參數.
TRUNCATE和DELETE有以下幾點區別
1,TRUNCATE在各種表上無論是大的還是小的都非常快.如果有ROLLBACK命令DELETE將被撤銷,而TRUNCATE則不會被撤銷.
2,TRUNCATE是一個DDL語言,向其他所有的DDL語言一樣,他將被隱式提交,不能對TRUNCATE使用ROLLBACK命令.
3,TRUNCATE將重新設置高水平線和所有的索引.在對整個表和索引進行完全瀏覽時,經過TRUNCATE操作後的表比DELETE操作後的表要快得多.
4,TRUNCATE不能觸發任何DELETE觸發器.
5,不能授予任何人清空他人的表的許可權.
6,當表被清空後表和表的索引講重新設置成初始大小,而delete則不能.
7,不能清空父表.
SELECT FOR UPDATE
select for update語句用於鎖定行,阻止其他用戶在該行上修改數據.當該行被鎖定後其他用戶可以用SELECT語句查詢該行的數據,但不能修改或鎖定該行.
鎖定表
LOCK語句常常用於鎖定整個表.當表被鎖定後,大多數DML語言不能在該表上使用.LOCK語法如下:
LOCK schema table IN lock_mode
其中lock_mode有兩個選項:
share 共享方式
exclusive 唯一方式
例:
LOCK TABLE intentory IN EXCLUSIVE MODE
死鎖
當兩個事務都被鎖定,並且互相都在等待另一個被解鎖,這種情況稱為死鎖.
當出現死鎖時,ORACLE將檢測死鎖條件,並返回一個異常.
事務控制
事務控制包括協調對相同數據的多個同步的訪問.當一個用戶改變了另一個用戶正在使用的數據時,oracle使用事務控制誰可以操作數據.
事務
事務表示工作的一個基本單元,是一系列作為一個單元被成功或不成功操作的SQL語句.在SQL和PL/SQL中有很多語句讓程序員控制事務.程序員可以:
1,顯式開始一個事物,選擇語句級一致性或事務級一致性
2,設置撤銷回滾點,並回滾到回滾點
3,完成事務永遠改變數據或者放棄修改.
❻ 分別用一條SQL語句完成以下題目的操作: 1. 查詢年齡為19歲的女同學的學號和姓名
1
selectsno,snamefromswheressex='女'andsage=19
2
selectcname,clocationfromcwhereclocation='主樓'orderbyteacher
3
selectsnofromscwheregrade>=80andcnoin(selectcnofromcwherecname='資料庫原理')
4
selects.sno,s.sname,avg(grade)froms,c,scwheres.sno=sc.snoandc.cno=sc.cnogroupbys.sno,s.sname
5
seletefromscwherecnoin((*)<=10)
❼ 一道SQL數據的簡答題,請大家幫忙解決。
selectdeptno as 部門號,min(sal) as 最低工資,max(sal) as 最高工資 from emp group bydeptno
selectdname as 部門,ename as 員工,min(sal) as 最低工資,max(sal) as 最高工資 from emp,dept where emp.deptno=dept.deptno andemp.job='CLERK' group bydeptno
selectename as 員工,deptno as 部門號 from emp where deptno in (select deptno
from emp where emp.ename='buddy')select ename as 員工姓名,mgr as 管理者姓名 from emp where mgr<>''
select deptno as 部門號,dname as 部門名,ename as 員工名,job as 工作 from dept,emp where dept.deptno=emp.deptno and emp.job='CLERK'
第4題的where條件另一回答是whereemp<>null ,首先請問樓主emp表中有emp欄位嗎,其次就算有emp欄位,也和null搭不上關系,應該是判斷是否為空串,就算是和null搭得上關系,那麼欄位名和null之間是應該用什麼連接的,<>null明顯是語法錯誤,應該是emp is not null才對!明明是mgr欄位嘛,我寫的應該是對的呀,為什麼採納錯誤的答案?
❽ sql的簡答題 幫忙做下 剛做完了C#的試卷 頭都大了……
1.觸發器是在對表進行插入、更新或刪除操作時自動執行的存儲過程.通常用於強制業務規則.有INSERT觸發器和DELETE觸發器,UPDATE觸發器。
3.包含SQL語句的代碼,可以直接執行,調用的時候只要使用視圖名就好了。
4.存儲過程是利用SQL Server所提供的Tranact-SQL語言所編寫的程序。Tranact-SQL語言是SQL Server提供專為設計資料庫應用程序的語言,它是應用程序和SQL Server資料庫間的主要程序式設計界面。
存儲過程的優點:
1.存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高資料庫執行速度。
2.當對資料庫進行復雜操作時(如對多個表進行Update,Insert,Query,Delete時),可將此復雜操作用存儲過程封裝起來與資料庫提供的事務處理結合一起使用。
3.存儲過程可以重復使用,可減少資料庫開發人員的工作量
4.安全性高,可設定只有某此用戶才具有對指定存儲過程的使用權
5.VarChar比Char長,而且Char類型在值不夠時會自動補上空格,VarChar則不會
❾ SQL資料庫(簡單)簡答題
Microsoft SQL Server 2000 簡答題及其答案
1.在安裝SQL Server 2000時,「僅客戶端工具」、「伺服器和客戶端工具」及「僅連接」等安裝定義有什麼差別?
答:僅客戶端工具:僅安裝客戶端工具。伺服器和客戶端工具:同時安裝伺服器和客戶端工具。僅連接:僅安裝客戶端連接。
2.一個資料庫中包含哪幾種文件?
答:主資料庫文件,輔助數據文件,事務日誌文件。
3.事務文件和數據文件分開存放有什麼好處?
答:因為利用事務日誌備份可以將資料庫恢復到特定的即時點(如輸入不想要的數據之前的那一點)或故障發生點。在媒體恢復策略中應考慮利用事務日誌備份。
4.什麼是批處理?使用批處理有何限制?
答:包含一個或多個T-SQL語句的組,從應用程序將一次性發送到SQL Server執行,SQL Server批處理語句作為整體編譯成一個可執行單元。
限制:如不能夠在同一個批處理中更改表,然後引用新列。如在一個批處理程序中,有兩條語句。第一條語句用來在一張表中插入一個欄位,如在User表中插入員工的出生年月;第二條語句則用來引用這個列,如根據身份證號碼來推算出這個員工的出身年月並把這個值賦值給這個第一條語句創建的出身年月欄位。
5.數據檢索時,COMPUTE和COMPUTE BY產生的結果有何不同?
答:Compute:第一個為明細行 第二個為聚合函數的合計 Compute by:第一個為明細行第二個為聚合函數的小計
6.什麼是索引?索引分為哪兩種?各有什麼特點?
答:1、資料庫中的索引與書籍中的目錄類似。在一本書中,利用目錄可以快速查找所需信息,無須閱讀整本書。在資料庫中,索引使資料庫程序無須對整個表進行掃描,就可以在其中找到所需數據。 2、聚集索引和非聚集索引。
3、聚集索引的特點:行的物理位置和行在索引中的位置是相同的,每個表只能有一個聚集索引,聚集索引的平均大小大約為表大小的5%左右。
非聚集索引特點:若未指定索引類型,則默認為非聚集索引,葉節點頁的次序和表的物理存儲次序不同,每個表最多可以有249個非聚集索引,在非聚集索引創建之前創建聚集索引。
7.創建索引有什麼優點和缺點?
答:優點:索引在資料庫中的作用類似於目錄在書籍中的作用,用來提高查找信息的速度。
使用索引查找數據,無需對整表進行掃描,可以快速找到所需數據。
缺點:索引需要佔用數據表以外的物理存儲空間。創建索引和維護索引要花費一定的時間。當對表進行更新操作時,索引需要被重建,這樣降低了數據的維護速度。
8.什麼是視圖?使用視圖的優點和缺點是什麼?
答:視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖並不在資料庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,並且在引用視圖時動態生成。
優點:1隱蔽資料庫的復雜性2控制用戶提取數據3簡化資料庫用戶管理 4簡化查詢
缺點:1性能:SQL Server必須把視圖的查詢轉化成對基本表的查詢,如果這個視圖是由,一個復雜的多表查詢所定義,那麼,即使是視圖的一個簡單查詢,SQL Server也,把它變成一個復雜的結合體,需要花費一定的時間。2修改限制:當用戶試圖修改視圖的某些行時,SQL Server必須把它轉化為對基本,表的某些行的修改。對於簡單視圖來說,這是很方便的,但是,對於比較復雜的,視圖,可能是不可修改的。
9. 修改視圖中的數據會受到哪些限制?
答:1、必須有許可權 2、單表視圖直接改
3、多表可在視圖中定義 instead of 觸發器.
4、對由多表連接成的視圖修改數據時,不能同時影響一個以上的基表,也不能刪除視圖中的數據
5、對視圖上的某些列不能修改,這些列是:計算列,內置函數列和行集合函數列
6、對具有NOT NULL 的列進行修改時可能會出錯。通過視圖修改或者插入數據時,必須保證未顯示的具有NOT NULL 屬性的列有值,可以是默認值,IDENTITY 等,否則不能像視圖中插入數據行。
7、如果某些列因為規則或者約束的限制不能接受從視圖插入的數據時,則插入數據可能會失敗
8、刪除基表並不刪除視圖,建議採用與表明顯不同的名字命名規則
10. 什麼是數據完整性?如果資料庫不實施數據完整性會產生什麼結果?
答:數據完整性是指數據的精確性和可靠性。它是應防止資料庫中存在不符合語義規定的數據和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。
11.數據完整性有哪幾類?如何實施?
答:1、數據完整性分為四類:實體完整性、域完整性、參照完整性、用戶定義的完整性。
2、資料庫採用多種方法來保證數據完整性,包括外鍵、束約、規則和觸發器。系統很好地處理了這四者的關系,並針對不同的具體情況用不同的方法進行,相互交叉使用,相補缺點。
12. 什麼是主鍵約束?什麼是惟一約束?兩者有什麼區別?
答:主鍵約束:有一列或列的組合,其值能唯一的標識表中的每一行。
唯一約束:不允許資料庫表在指定列上具有相同的值,但允許有空值。
區別:一個表可以定義多個唯一約束,只能定義一個主鍵約束;空值得列上可以定義唯一約束,不能定義主鍵約束。
13.什麼是外鍵,怎樣建立外鍵約束?
答:外鍵是用於建立和加強兩個表數據之間的鏈接的一列或多列。通過將保存表中主鍵值的一列或多列添加到另一個表中,可創建兩個表之間的鏈接。這個列就成為第二個表的外鍵。
14.什麼是存儲過程?使用存儲過程有什麼好處?
答:1、是存儲在伺服器上的 Transact-SQL 語句的命名集合,是封裝重復性任務的方法,支持用戶聲明變數、條件執行以及其他強有力的編程特性。
2、存儲過程封裝了商務邏輯,確保一致的數據訪問和修改。若規則或策略有變化,則只需要修改伺服器上的存儲過程,所有的客戶端就可以直接使用
屏蔽資料庫模式的詳細資料。用戶不需要訪問底層的資料庫和資料庫內的對象
提供了安全性機制。用戶可以被賦予執行存儲過程的許可權,而不必在存儲過程引用的所有對象上都有許可權
改善性能。預編譯的 Transact-SQL 語句,可以根據條件決定執行哪一部分
減少網路通信量。客戶端用一條語句調用存儲過程,就可以完成可能需要大量語句才能完成的任務,這樣減少了客戶端和伺服器之間的請求/回答包
15.什麼是觸發器?觸發器分有什麼作用?
答:觸發器是一類特殊的存儲過程,不能被直接調用,也不傳遞或接受參數
作用:1、維護不可能在表創建時刻通過聲明性約束進行的復雜的完整性約束限制。
2、通過記錄所進行的修改以及誰進行了修改來審計表中的信息。
3、當表被修改的時候,自動給其他需要執行操作的程序發信號。
❿ 求幫做下這道sql語句答題,學渣真的不會,先謝謝了
5.
SELECT b.Cbs.name, avg(a.Dj)
FROM Tushu AS a LEFT JOIN Cbs AS b ON b.ID=a.CbsID
GROUP BY b.id
HAVING avg(a.Dj)<50;
6.
DELETE *
FROM cbs
WHERE cbs.id not in (select cbsid from tushu);
7
有事沒時間寫了。