第一篇:用sql語句完成下面題目
用sql語句完成下面題目:
1.創(chuàng)建數(shù)據(jù)庫db_Student,在db_Student中創(chuàng)建四張表:
學(xué)生表tb_Student,字段:SID(編號),SName(姓名),Sage(年齡),SSex(性別)
教師表tb_Teacher,字段:TID(編號),TName(姓名)
課程表tb_Course,字段:CID(編號),CName(名稱),TID(教師編號)
成績表tb_Score,字段:SID(編號),CID(課程編號),Score(成績)
要求:分析添加約束,如:主鍵約束,外鍵約束等(15分)
2.給表添加一些數(shù)據(jù)。(10分)
3.完成下列查詢:(30分)
① 查詢姓李的老師有多少位。
② 查詢c#課程的平均分。
③ 查詢sql最高分的學(xué)生編號,學(xué)生姓名及分數(shù)。
④ 查詢sql課程超平均分的學(xué)生姓名及分數(shù)。
⑤ 查詢沒有考sql的學(xué)生編號及姓名。
⑥ 查詢沒有學(xué)王老師課程的學(xué)生編號及姓名。
⑦ 查詢課程表的第5到第10條記錄,條件為編號不連續(xù)。寫兩種方法。
⑧ 查詢每個學(xué)生的編號,姓名,課程名稱,成績,老師信息。
⑨ 查詢c#考試成績前三名的學(xué)生,包含并列的行。(可能查詢的結(jié)果超過三行)⑩ 查詢c#課程比sql課程的考試分數(shù)高的學(xué)生編號及姓名。
4.寫存儲過程完成下列問題,并寫出存儲過程執(zhí)行語句:(15分)
① 根據(jù)學(xué)生編號查詢學(xué)生的各科成績及所教課程的老師
② 根據(jù)教師編號,查詢所教課程(教師編號,姓名,課程編號,課程名)。
③ 寫一種分頁的存儲過程。
5.將第3 題的查詢⑧⑨兩題寫成視圖,然后執(zhí)行查詢視圖。(10分)
6.創(chuàng)建存儲過程,在存儲過程里創(chuàng)建事務(wù),執(zhí)行刪除課程表的行時,同時刪除成績表的相
應(yīng)行。(10分)
7.創(chuàng)建觸發(fā)器,實現(xiàn)刪除教師表的行時,同時刪除課程表的相應(yīng)行。(首先刪除相應(yīng)表的約
束)(10分)
第二篇:用sql語句恢復(fù)數(shù)據(jù)庫文件
用sql語句恢復(fù)數(shù)據(jù)庫文件(*.dmf和*.ldf)
用sql語句恢復(fù)數(shù)據(jù)庫文件(*.dmf和*.ldf)多用于,由于服務(wù)器操作系統(tǒng)崩潰或無法啟動sql server 時常用的一種辦法.方法1:
把備份的數(shù)據(jù)庫數(shù)據(jù)文件(*.mdf)和日志文件(*.ldf)都拷貝到服務(wù)器的一個目錄下,然后打開SQL Server Query(查詢分析器)進行操作。
例如:D盤HisenseSysDate目錄下存有: SysDB_data.mdf,和SysDB_log.ldf備份的文件。通過sql 語恢復(fù)
為SysDB的數(shù)據(jù)庫名.(注:恢復(fù)為SysDB的數(shù)據(jù)庫名在sql server 企管管理器下必須是唯一的,即沒有SysDB數(shù)所庫名才可以恢復(fù)為SysDB的數(shù)據(jù)庫名)。
操作步驟:
1.打開sqlserver下面的queryAnalyzer(即查詢分析器)
2.輸入:
EXEC sp_attach_db @dbname = N'SysDB',@filename1 = N'D:dataSysDB_Data.MDF',@filename2 = N'D:dataSysDB _Log.LDF'
go
按”F5”執(zhí)行。
3.以執(zhí)行完成后,把第2步中的所有語句全部刪除,然后輸入如下語句:
USE SysDB
EXEC sp_updatestats
Go
按”F5”執(zhí)行。
提示所有表已經(jīng)恢復(fù)成功后,即可連接軟件了.另附:只恢復(fù)數(shù)據(jù)文件(*.mdf)時,不恢復(fù)事務(wù)日志文件(*.ldf)的方法如下:
首先在企業(yè)管理器下,建立一個數(shù)據(jù)庫名(如:SysDB)
然后,同樣打開sql server 查詢分析器,然后輸入:
EXEC sp_attach_db @dbname = N'SysDB'
EXEC sp_attach_single_file_db @dbname = SysDB, @physname = 'd:DataSysDB_data.mdf'
go
按F5執(zhí)行完后,再執(zhí)行以下語句:
USE SysDB
EXEC sp_updatestats
Go
這個語句的作用是僅僅加載數(shù)據(jù)文件,日志文件可以由SQL Server數(shù)據(jù)庫自動添加,但是原來的日志文件中記錄的數(shù)據(jù)就丟失了。
注:SysDB是數(shù)據(jù)庫名
文件名和路徑一定要根據(jù)實際數(shù)據(jù)為文件(*.mdf)和事務(wù)日志文件(*.ldf)所在的目錄要對應(yīng),否則路徑輸入的不對,則無法恢復(fù)。
方法2:
如果是由于操作系統(tǒng)或sql server不能啟動,只有保留的數(shù)據(jù)為文件(如:SysDB_data.mdf)和事務(wù)日志文件(SysDB_log.ldf)時,需重新安裝操作系統(tǒng)或重新安裝sql server時,一定要與上一次安裝的路徑相同(如: d:Program FilesMicrosoft SQL ServerMSSQLDataSysDB.mdf')。
操作系統(tǒng)或sql server安裝成功后,把sql server服務(wù)啟動后,在查詢分析器下面,建立與上次相同的數(shù)據(jù)庫名(如:SysDB),數(shù)據(jù)庫SysDB成功建立后,然后把sql server服務(wù)停止。
然后把保留的數(shù)據(jù)為文件(如:SysDB_data.mdf)和事務(wù)日志文件(SysDB_log.ldf)拷貝到,新建立的SysDB數(shù)據(jù)庫所在的目錄下進行覆蓋(如: d:Program FilesMicrosoft SQL ServerMSSQLData..'))。最后,啟動sql server服務(wù)后,SysDB數(shù)據(jù)庫中即可恢復(fù)到原保留的數(shù)據(jù)了。
第三篇:sql常用語句
//創(chuàng)建臨時表空間
create temporary tablespace test_temp
tempfile 'E:oracleproduct10.2.0oradatatestservertest_temp01.dbf'size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
//創(chuàng)建數(shù)據(jù)表空間
create tablespace test_data
logging
datafile 'E:oracleproduct10.2.0oradatatestservertest_data01.dbf'size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
//創(chuàng)建用戶并指定表空間
create user username identified by password
default tablespace test_data
temporary tablespace test_temp;
//給用戶授予權(quán)限
//一般用戶
grant connect,resource to username;
//系統(tǒng)權(quán)限
grant connect,dba,resource to username
//創(chuàng)建用戶
create user user01 identified by u01
//建表
create table test7272(id number(10),name varchar2(20),age number(4),joindate date default sysdate,primary key(id));
//存儲過程
//數(shù)據(jù)庫連接池
數(shù)據(jù)庫連接池負責分配、管理和釋放數(shù)據(jù)庫連接
//
//創(chuàng)建表空間
create tablespace thirdspace
datafile 'C:/Program Files/Oracle/thirdspace.dbf' size 10mautoextend on;
//創(chuàng)建用戶
create user binbin
identified by binbin
default tablespace firstspace
temporary tablespace temp;
//賦予權(quán)限
GRANT CONNECT, SYSDBA, RESOURCE to binbin
//null與""的區(qū)別
簡單點說null表示還沒new出對象,就是還沒開辟空間
個對象裝的是空字符串。
//建視圖
create view viewname
as
sql
//建索引
create index indexname on tablename(columnname)
//在表中增加一列
alter table tablename add columnname columntype
//刪除一列
alter table tablename drop columnname
//刪除表格內(nèi)容,表格結(jié)構(gòu)不變
truncate table tableneme
//新增數(shù)據(jù)
insert into tablename()values()
//直接新增多條數(shù)據(jù)
insert into tablename()
selecte a,b,c
from tableabc
//更新數(shù)據(jù) new除了對象,但是這“”表示
update tablename set columnname=? where
//刪除數(shù)據(jù)
delete from tablename
where
//union語句
sql
union
sql
//case
case
when then
else
end
第四篇:SQL語句
SQL練習(xí)
一、設(shè)有如下的關(guān)系模式,試用SQL語句完成以下操作:
學(xué)生(學(xué)號,姓名,性別,年齡,所在系)
課程(課程號,課程名,學(xué)分,學(xué)期,學(xué)時)
選課(學(xué)號,課程號,成績)
1. 求選修了課程號為“C2”課的學(xué)生學(xué)號
2. 求選修了課程號為“C2”課的學(xué)生學(xué)號和姓名
3. 求沒有選修課程號為“C2”課的學(xué)生學(xué)號
4. 求選修了課程號為“C2”,又選修了課程號為“C3”課的學(xué)生學(xué)號
5.求選修了課程號為“C2”或“C3”課的學(xué)生學(xué)號
6.求選修了全部課程的學(xué)生學(xué)號
7.求至少選修了學(xué)號為“98002”的學(xué)生所學(xué)過的所有課程的學(xué)生的學(xué)號和姓名。
8.查詢學(xué)生選課表中的全部數(shù)據(jù)
9.查詢計算機系學(xué)生的姓名、年齡
10.查詢成績在70—80分之間的學(xué)生的學(xué)號、課程號和成績
11.查詢計算機系年齡在18—20之間且性別為“男”的學(xué)生的姓名和年齡
12.查詢成績在80分以上的學(xué)生的姓名、課程號和成績,并按成績的降序排列結(jié)果。
13.查詢哪些課程沒有人選修,要求列出課程號和課程名。
14.查詢數(shù)學(xué)系成績在80分以上的學(xué)生的學(xué)號,姓名
15.查詢課程號為“C02”的課程的最高分數(shù)。
16.查詢計算機系學(xué)生的最大年齡和最小年齡。
17.統(tǒng)計每個系的學(xué)生人數(shù)。
18.統(tǒng)計每門課程的選課人數(shù)和考試最高分。
19.統(tǒng)計每個學(xué)生的選課門數(shù)和考試總成績,并按選課門數(shù)的升序顯示結(jié)果。
20.查詢總成績超過200分的學(xué)生,要求列出學(xué)號、總成績。
21.用子查詢實現(xiàn)如下查詢:
(1)查詢選修了課程號“C01”的學(xué)生的姓名和所在系。
(2)查詢數(shù)學(xué)系成績在80分以上的學(xué)生的學(xué)號和姓名。
(3)查詢計算機系考試成績最高的學(xué)生的姓名。
22.刪除選課成績小于60分的學(xué)生的選課記錄。
23.將所有選修了課程“C01”的學(xué)生的成績加10分。
24.將計算機系所有選修了課程“計算機文化基礎(chǔ)”課程的學(xué)生的成績加10分。
25.創(chuàng)建查詢學(xué)生的學(xué)號、姓名、所在系、課程號、課程名、課程學(xué)分的視圖。
26.創(chuàng)建查詢每個學(xué)生的平均成績的視圖,要求列出學(xué)生學(xué)號和平均成績。
27.創(chuàng)建查詢每個學(xué)生的選課學(xué)分的視圖,要求列出學(xué)生學(xué)號及總學(xué)分。
第五篇:SQL語句
SQL語句,用友的SQL2000,通過查詢管理器寫的語句
1、查詢
2、修改
3、刪除
4、插入
表名:users 包含字段:id,sname,sage
查詢 select * from users查詢users表中所有數(shù)據(jù)
select id,sname,sage from users查詢users表中id,sname,sage字段所有數(shù)據(jù)
可以限定查詢條件比如:
select sname from users where sage>20查詢年齡大于20歲的所有人的名字
修改 update users set sname='李四',sage=22將users表中數(shù)據(jù)都改為姓名李四,年齡22
update users set sname='李四',sage=22 where id=1限定id為1的人的信息修改為
姓名李四,年齡22
可以加where條件。
刪除 delete from users where id=2刪除users表中id為2的一行數(shù)據(jù)delete from users 代表刪除users中所有數(shù)據(jù)
插入 insert into users(id,sname,sage)values(5,'劉三',21)插入一條數(shù)據(jù)
SQL四條最基本的數(shù)據(jù)操作語句:Insert,Select,Update和Delete。
例如:SELECT columns FROM tables;其中columns為列的名稱,tables為表格名稱
1、查詢:select 字段名 from 表名 where 條件
查找在表(如A)中符合條件的字段
2、修改:update 表名 set 字段名=‘所要修改的內(nèi)容’
修改在表(如A)中的字段的值為:所要修改的內(nèi)容
3、刪除: delete from 表名 where 條件
刪除符合條件的表(如A)中的信息
4、插入: insert into 表名(字段名)(‘插入內(nèi)容’)
在表(如A)中插入字段為:插入內(nèi)容 的一條信息