當前位置:首頁 » 操作系統 » 資料庫mno

資料庫mno

發布時間: 2023-02-06 07:49:51

A. sql資料庫面試題 急急急

a)select pname as '商品名',avg(qty) as 平均銷售量 from s,p,m where m.city='上海' and s.mno=m.mno and p.pno=s.pno,select p.Pno,p.pname,sum(s.qty)
from s left join p on s.pno=p.pno left join m on p.Mno=m.Mno
where m.city='上海市'
group by p.Pno,p.pname,p.city,p.color
b)、先刪除Sale表的外鍵PNO,再刪除gds表。

c)聯系:視圖(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關系
區別:1、視圖是已經編譯好的sql語句。而表不是
2、視圖沒有實際的物理記錄。而表有。
3、表是內容,視圖是窗口
4、表只用物理空間而視圖不佔用物理空間,視圖只是邏輯概念的存在,表可以及時四對它進行修改,但視圖只能有創建的語句來修改
5、表是內模式,視圖是外模式
6、視圖是查看數據表的一種方法,可以查詢數據表中某些欄位構成的數據,只是一些SQL語句的集合。從安全的角度說,視圖可以不給用戶接觸數據表,從而不知道表結構。
7、表屬於全局模式中的表,是實表;視圖屬於局部模式的表,是虛表。
8、視圖的建立和刪除隻影響視圖本身,不影響對應的基本表。

B. 關於一個簡單的資料庫觸發器語句。

問題補充:

那個,首先謝謝微軟專家的回答,可是我不太明白這個語句的意思。。。
-----------------
樓主不明時,可在排行榜--> roy_88留言

use Tempdb
go
create table A(設備牌號 nvarchar(10),設備名稱 nvarchar(10),原使用單位 nvarchar(10))
insert A select '01','A1','A01'
insert A select '02','A2','A02'
insert A select '03','A3','A03'

/*
設備牌號 設備名稱 原使用單位
01 A1 A01
02 A2 A02
03 A3 A03
*/
go
create table B(設備牌號 nvarchar(10),設備名稱 nvarchar(10),原使用單位 nvarchar(10))
go
create trigger tr_B on B
for insert
as
update B
set B.設備名稱=A.設備名稱,B.原使用單位=A.原使用單位
from B
inner join inserted i on B.設備牌號=i.設備牌號
inner join A on A.設備牌號=B.設備牌號

go
insert B(設備牌號) values('01')
insert B(設備牌號) values('02')

go
select * from B
--顯示結果
/*
設備牌號 設備名稱 原使用單位
01 A1 A01
02 A2 A02
*/

C. 使用SQL語句在學生管理資料庫中創建學生選擇專業的"基本"數據表形式 如何寫出這個問題的實踐報告

為了大家更容易理解我舉出的SQL語句,本文假定已經建立了一個學生成績管理資料庫,全文均以學生成績的管理為例來描述。
1.在查詢結果中顯示列名:

a.用as關鍵字:select name as '姓名' from students order by age

b.直接表示:select name '姓名' from students order by age

2.精確查找:

a.用in限定范圍:select * from students where native in ('湖南', '四川')

b.betweenand:select * from students where age between 20 and 30

c.「=」:select * from students where name = '李山'

d.like:select * from students where name like '李%' (注意查詢條件中有「%」,則說明是部分匹配,而且還有先後信息在裡面,即查找以「李」開頭的匹配項。所以若查詢有「李」的所有對象,應該命令:'%李%';若是第二個字為李,則應為'_李%'或'_李'或'_李_'。)

e.[]匹配檢查符:select * from courses where cno like '[AC]%' (表示或的關系,與"in()"類似,而且"[]"可以表示範圍,如:select * from courses where cno like '[A-C]%')

3.對於時間類型變數的處理

a.smalldatetime:直接按照字元串處理的方式進行處理,例如:

select * from students where birth > = '1980-1-1' and birth <= '1980-12-31'
4.集函數

a.count()求和,如:select count(*) from students (求學生總人數)

b.avg(列)求平均,如:select avg(mark) from grades where cno=』B2』

c.max(列)和min(列),求最大與最小

5.分組group

常用於統計時,如分組查總數:
select gender,count(sno)
from students
group by gender

查看男女學生各有多少)

注意:從哪種角度分組就從哪列"group by"

對於多重分組,只需將分組規則羅列。比如查詢各屆各專業的男女同學人數,那麼分組規則有:屆別(grade)、專業(mno)和性別(gender),所以有"group by grade, mno, gender"select grade, mno, gender, count(*)

from students

group by grade, mno, gender
通常group還和having聯用,比如查詢1門課以上不及格的學生,則按學號(sno)分類有:

select sno,count(*) from grades

where mark<60
group by sno
having count(*)>1

6.UNION聯合

並查詢結果,如:

SELECT * FROM students

WHERE name like 『張%』

UNION [ALL]

SELECT * FROM students

WHERE name like 『李%』

7.多表查詢

a.內連接

select g.sno,s.name,c.coursename

from grades g JOIN students s ON g.sno=s.sno

JOIN courses c ON g.cno=c.cno

(注意可以引用別名)

b.外連接

b1.左連接

select courses.cno,max(coursename),count(sno)

from courses LEFT JOIN grades ON courses.cno=grades.cno

group by courses.cno

左連接特點:顯示全部左邊表中的所有項目,即使其中有些項中的數據未填寫完全。

左外連接返回那些存在於左表而右表中卻沒有的行,再加上內連接的行。

b2.右連接

與左連接類似

b3.全連接

select sno,name,major

from students FULL JOIN majors ON students.mno=majors.mno

兩邊表中的內容全部顯示

c.自身連接

select c1.cno,c1.coursename,c1.pno,c2.coursename

from courses c1,courses c2 where c1.pno=c2.cno

採用別名解決問題。

d.交叉連接

select lastname+firstname from lastname CROSS JOIN firstanme

相當於做笛卡兒積

8.嵌套查詢

a.用關鍵字IN,如查詢李山的同鄉:

select * from students

where native in (select native from students where name=』 李山』)

b.使用關鍵字EXIST,比如,下面兩句是等價的:

select * from students

where sno in (select sno from grades where cno=』B2』)

select * from students where exists

(select * from grades where

grades.sno=students.sno AND cno=』B2』)

9.關於排序order

a.對於排序order,有兩種方法:asc升序和desc降序

b.對於排序order,可以按照查詢條件中的某項排列,而且這項可用數字表示,如:

select sno,count(*) ,avg(mark) from grades

group by sno

having avg(mark)>85

order by 3

10.其他

a.對於有空格的識別名稱,應該用"[]"括住。

b.對於某列中沒有數據的特定查詢可以用null判斷,如select sno,courseno from grades where mark IS NULL

c.注意區分在嵌套查詢中使用的any與all的區別,any相當於邏輯運算「||」而all則相當於邏輯運算「&&」

d.注意在做否定意義的查詢是小心進入陷阱:

如,沒有選修『B2』課程的學生 :

select students.*

from students, grades

where students.sno=grades.sno

AND grades.cno <> 』B2』

上面的查詢方式是錯誤的,正確方式見下方:

select * from students

where not exists (select * from grades

where grades.sno=students.sno AND cno='B2')

11.關於有難度多重嵌套查詢的解決思想:

如,選修了全部課程的學生:

select *

from students

where not exists ( select *

from courses

where NOT EXISTS

(select *

from grades

where sno=students.sno

AND cno=courses.cno))
最外一重:從學生表中選,排除那些有課沒選的。用not exist。由於討論對象是課程,所以第二重查詢從course表中找,排除那些選了課的即可。

D. 如何創建sql資料庫留言表

if判斷是判斷是不是已經存在了同名的資料庫了?如果存在,那麼刪除掉。
這樣才能保證你下邊創建資料庫編碼不會沖突,否則如果if成立,會存在同名的資料庫,你創建會提示錯誤的。
use
q1,表示將資料庫切換到q1上去,這樣你再寫sql語句,就是在這個資料庫上運行了。
比如登錄查詢分析器默認的資料庫是master,而user
q1,會將資料庫切換到q1上。
master..sysdatabases
這個意思是master資料庫裡面的sysdatabases表,此處必須是兩點,前邊不是表名,而是資料庫名。比如你查詢分析器連接的是q1資料庫,而這時候你想直接跨庫查詢northwind資料庫的表數據,select
*
from
northwind..category
兩個點前邊的是資料庫名,後邊是表名。

E. 資料庫中的左外聯接,全連接等等都是什麼意思啊

內連接是保證兩個表中所有的行都要滿足連接條件,而外連接則不然。在外連接中,某些不滿條件的列也會顯示出來,也就是說,只限制其中一個表的行,而不限制另一個表的行。這種連接形式在許多情況下是非常有用的。外連接只能用於兩個表中。
在 Ansi 語法形式中,包含下列三種外連接關鍵字:

◆Left Outer Join 包含了左表中的全部行(表達式中第一個表)

◆Right Outer Join 包括了右表中的全部行(表達式中第二個表)

◆Full Outer Join 包括了左表和右表中所有不滿足條件的行

在 SQL Server 連接語法形式中,包括下列兩種外連接運算符:

◆* = 包含了左表中的全部行(表達式中第一個表)

◆= * 包括了右表中的全部行(表達式中第二個表)

左外連接和右連接都可以產生同樣的結果,關鍵是看錶達式中出現的前後順序。

舉例如下:
b.外連接
b1.左連接
select courses.cno,max(coursename),count(sno)
from courses LEFT JOIN grades ON courses.cno=grades.cno
group by courses.cno

左連接特點:顯示全部左邊表中的所有項目,即使其中有些項中的數據未填寫完全。

左外連接返回那些存在於左表而右表中卻沒有的行,再加上內連接的行。

b2.右連接

與左連接類似

b3.全連接

select sno,name,major
from students FULL JOIN majors ON students.mno=majors.mno

兩邊表中的內容全部顯示

F. 資料庫語言問題

1.select pname,qty from p,s where mno='m1' and p.pno=s.pno

2.select pname as '商品名',avg(qty) as 平均銷售量 from s,p,m where m.city='上海' and s.mno=m.mno and p.pno=s.pno

3.select MNO,pno,qty from s where pno in(select pno form p where color='red'

4.π pno,pname,qty (φ(pno(s)=pno(p)))

5.π pname,qty φ(mno='M1'∧pno(p)=pno(s))

π是投影的意思 φ是選擇的意思,我自己做的,感覺正確...你再檢查下..

G. 資料庫語句

(1)
倉庫號,零件號
(2)
create table Warehouse(
wno varchar2(15) primary key,
wname varchar2(25),
square number(15),
cou number(10)
);
create table Material(
mno varchar2(10) primary key,
mname varchar2(20),
type varchar2(5),
unit varchar2(10),
cusnum number(8),
price number(10,2)
);
create table Storage(
fwno varchar2(15).
fmno varchar2(10),
storenumber number(8),
constraint st_fk1 foreign key (fwno) references Warehouse(wno),
constraint st_fk2 foreign key (fmno) references Material(mno)
);
(3)
select Storage.fwno,Storage.storenumber
from Storage,Material
where Material.mno=Storage.fmno
and Material.mname='鏍絲';
(4)
create view VIEW1
as
select Warehouse.wno,Warehouse.wname,Material.mno,Material.mname,Material.price,Storage.storenumber
from Warehouse,Material,Storage
where Warehouse.wno=Storage.fwno
and Material.mno=Storage.fmno
with check option;

熱點內容
php辦公系統 發布:2025-07-19 03:06:35 瀏覽:895
奧德賽買什麼配置出去改裝 發布:2025-07-19 02:53:18 瀏覽:37
請與網路管理員聯系請求訪問許可權 發布:2025-07-19 02:37:34 瀏覽:185
ipad上b站緩存視頻怎麼下載 發布:2025-07-19 02:32:17 瀏覽:839
phpcgi與phpfpm 發布:2025-07-19 02:05:19 瀏覽:523
捷達方向機安全登錄密碼是多少 發布:2025-07-19 00:57:37 瀏覽:689
夜魔迅雷下載ftp 發布:2025-07-19 00:39:29 瀏覽:97
增值稅票安全接入伺服器地址 發布:2025-07-19 00:20:45 瀏覽:484
solidworkspcb伺服器地址 發布:2025-07-18 22:50:35 瀏覽:820
怎麼在堆疊交換機里配置vlan 發布:2025-07-18 22:42:35 瀏覽:628