㈠ sql中實體型,實體值,屬性值,屬性型 是什麼意思
ER圖分為實體、屬性、關系三個核心部分。實體是長方形體現,而屬性則是橢圓形,關系為菱形。
ER圖的實體(entity)即數據模型中的數據對象,例如人、學生、音樂都可以作為一個數據對象,用長方體來表示,每個實體都有自己的實體成員(entitymember)或者說實體對象(entityinstance),例如學生實體里包括張三、李四等,實體成員(entitymember)/實體實例(entityinstance)不需要出現在ER圖中。
ER圖的屬性(attribute)即數據對象所具有的屬性,例如學生具有姓名、學號、年級等屬性,用橢圓形表示,屬性分為唯一屬性(uniqueattribute)和非唯一屬性,唯一屬性指的是唯一可用來標識該實體實例或者成員的屬性,用下劃線表示,一般來講實體都至少有一個唯一屬性。
ER圖的關系(relationship)用來表現數據對象與數據對象之間的聯系,例如學生的實體和成績表的實體之間有一定的聯系,每個學生都有自己的成績表,這就是一種關系,關系用菱形來表示。
ER圖中關聯關系有三種:
1對1(1:1):1對1關系是指對於實體集A與實體集B,A中的每一個實體至多與B中一個實體有關系;反之,在實體集B中的每個實體至多與實體集A中一個實體有關系。
1對多(1:N):1對多關系是指實體集A與實體集B中至少有N(N>0)個實體有關系;並且實體集B中每一個實體至多與實體集A中一個實體有關系。
多對多(M:N):多對多關系是指實體集A中的每一個實體與實體集B中至少有M(M>0)個實體有關系,並且實體集B中的每一個實體與實體集A中的至少N(N>0)個實體有關系。
簡單的例子
㈡ sql中成績數據類型是什麼啊
主要考慮成績的范圍和小數位數。
如果成績沒有小數,則用int.
例如成績有一位小數,范圍是0.0 - 100.0,可以用decimal(4,1)
㈢ sql命令日常
①學生表:Student由學號(Sno)、姓名(Sname)、性別(Ssex)、年齡(Sage)、所在系(Sdept)五個屬性組成,記為:Student(Sno,Sname,Ssex,Sage,Sdept),Sno 為關鍵字。
②課程表:Course由課程號(Cno)、課程名(Cname)、先修課號(Cpno)、學分(Ccredit)四個屬性組成,記為: Course(Cno,Cname,C pno,Ccredit) Cno為關鍵字。
③成績表:SG由學號(Sno)、課程號(Cno)、成績(Grade)三個屬性組成,記為: SG(Sno,Cno,Grade) (SNO,CNO) 為關鍵字。
用SQL語言實現下列功能:
1.建立學生表[Student],其中學號屬性不能為空,並且其值是唯一的。
2.查考試成績有不及格的學生世卜的學號。
3.將學號為05001學生的年齡改為22歲
4.計算棗和1號課程的學生平均成績。
6.將一個新學生記錄(學號:05020;姓名:丁莉;性別:女;年齡:17歲;所在系:計算機;)插入Student表中。
7.向Student表增加「入學時間(Scome)」列,其數據類型為日期型。
8.查詢選修了3號課程的學生的學號及其成績,查詢結果按分數的降序排列。
9.查詢學習1號課程的學生最高分數、平均成績。
10.查詢與「丁莉」在同一個系學習的學生。
11.將計算機系全體學生的成績置零。
12.刪除學號為20180032的學生記錄。
select * from Student
13.刪除計算機系所有學生的成績記錄。
14、查詢全體學生的詳凳返盯細記錄。
15、查詢年齡在20至23歲之間的學生的姓名、系別、和年齡。
16.student分頁查詢,每頁10條( https://www.cnblogs.com/jhxxb/p/10670661.html )
㈣ sql server中的成績欄位的數據類型一般是什麼
bit 整型
bit數據類型是整型,其值只能是0、1或空值。這種數據類型用於存儲只有兩種可能值的數據,如Yes 或No、True 或False 、On 或Off。
注意:很省空間的一種數據類型,如果能夠滿足需求應該盡量多用。tinyint 整型
tinyint 數據類型能存儲從0到255 之間的整數。它在你只打算存儲有限數目的數值時很有用。這種數據類型在資料庫中佔用1 個位元組.。
注意:如果bit類型太單調不能滿足您的需求,您可以考慮用tinyint類型,因判或為這個類型相對也是比較安全的,不接受掘並伍惡意腳本內容的嵌入。smallint 整型
smallint 數據類型可以存儲從- 2的15次冪(-32768)到2的15次冪(32767)之間的整數。這種數據類型對存儲一些常限定在特定范圍內的數值型數據非常有用。這種數據類型在資料庫里佔用蔽扒2 位元組空間.
注意:如果tinyint類型太單調不能滿足您的需求,您可以考慮用smallint類型,因為這個類型相對也是比較安全的,不接受惡意腳本內容的嵌入。int 整型
int 數據類型可以存儲從- 2的31次冪(-2147483648)到2的31次冪 (2147483 647)之間的整數。存儲到資料庫的幾乎所有數值型的數據都可以用這種數據類型。這種數據類型在資料庫里佔用4個位元組。注意:如果smallint也不能夠滿足您的需求,您可以考慮用長度更大的int類型。
decimal 精確數值型 。
decimal 數據類型能用來存儲從-10的38次冪-1到10的38次冪-1的固定精度和范圍的數值型數據。使用這種數據類型時,必須指定范圍和精度。 范圍是小數點左右所能存儲的數字的總位數。精度是小數點右邊存儲的數字的位數。numeric 精確數值型
numeric數據類型與decimal 相似。smallmoney 貨幣型
smallmoney 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-214748.3648 到214748.3647 之間的數據,精確到貨幣單位的萬分之一。money 貨幣型
money數據類型用來表示錢和貨幣值。這種數據類型能存儲從-9220億到9220 億之間的數據,精確到貨幣單位的萬分之一 。
㈤ 幫我寫個SQL答案
看不下去了,決定幫你了!
1、SQL Server 2000是一種關系型的資料庫管理系統
//正確
2、資料庫,資料庫管理員,資料庫管理系統的對應英文縮寫
//資料庫DB、資料庫管理員DBA、資料庫管理系統DBMS
3、什麼是第一範式,第二範式,第三範式的含義
//構造資料庫必須遵循一定的規則。在關系資料庫中,這種規則就是範式。
//所謂第一範式(1NF)是指資料庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。如果出現重復的屬性,就可能需要定義一個新的實體,新的實體由重復的屬性構成,新實體與原實體之間為一對多關系。在第一範式(1NF)中表的每一行只包含一個實例的信息。例如,不能將員工信息都放在一列中顯示,也不能將其中的兩列或多列在一列中顯示;員工信息表的每一行只表示一個員工的信息,一個員工的信息在表中只出現一次。簡而言之,第一範式就是無重復的列。
//第二範式(2NF)要求資料庫表中的每個實例或行必須可以被惟一地區分。為實現區分通常需要為表加上一個列,以存儲各個實例的惟一標識。如
員工信息表中加上了員工編號(emp_id)列,因為每個員工的員工編號是惟一的,因此每個員工可以被惟一區分。這個惟一屬性列被稱為主關鍵字或主鍵、主碼。
第二範式(2NF)要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關系。為實現區分通常需要為表加上一個列,以存儲各個實例的惟一標識。簡而言之,第二範式就是非主屬性非部分依賴於主關鍵字。
//第三範式(3NF)要求一個資料庫表中不包含已在其它表中已包含的非主關鍵字信息。例如,存在一個部門信息表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等信息。那麼員工信息表中列出部門編號後就不能再將部門名稱、部門簡介等與部門有關的信息再加入員工信息表中。如果不存在部門信息表,則根據第三範式(3NF)也應該構建它,否則就會有大量的數據冗餘。簡而言之,第三範式就是屬性不依賴於其它非主屬性。
4、在E-R圖對信息模型的描述中,矩形框表示什麼,橢圓表示什麼??
//矩形表示實體性,矩形框內寫明實體名。
//橢圓表示屬性,用無向邊將其與相應的實體性連接起來。
5、觸發器,視圖,存儲過程的功能和含義
//觸發器是一種特殊類型的存儲過程,當使用下面的一種或多種數據修改操作在指定表中對數據進行修改時,觸發器會生效:UPDATE、INSERT 或 DELETE。觸發器可以查詢其它表,而且可以包含復雜的 SQL 語句。它們主要用於強制復雜的業務規則或要求。例如,可以控制是否允許基於顧客的當前帳戶狀態插入定單。
//視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖並不在資料庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,並且在引用視圖時動態生成。視圖的作用類似於篩選。定義視圖的篩選可以來自當前或其它資料庫的一個或多個表,或者其它視圖。分布式查詢也可用於定義使用多個異類源數據的視圖。
//存儲過程(Stored Procere)是一組為了完成特定功能的SQL語句集,經編譯後存儲在資料庫中。用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。存儲過程的能力大大增強了SQL語言的功能和靈活性。存儲過程可以用流控制語句編寫,有很強的靈活性,可以完成復雜的判斷和較復雜的 運算。可保證數據的安全性和完整性。可以降低網路的通信量。
6、資料庫的含義,資料庫中包括主數據文件,次要數據文件,日誌文件,三者的含義。
//資料庫是存儲在一起的相關數據的集合,這些數據是結構化的,無有害的或不必要的冗餘,並為多種應用服務;數據的存儲獨立於使用它的程序;對資料庫插入新數據,修改和檢索原有數據均能按一種公用的和可控制的方式進行。當某個系統中存在結構上完全分開的若干個資料庫時,則該系統包含一個「資料庫集合」。
//主要數據文件由主文件組中的初始數據文件組成。文件組是經過命名的數據文件集合。包含所有資料庫系統表,以及沒有賦給自定義文件組的對象和數據。主要數據文件是資料庫的起始點,它指向資料庫中的其他文件。每一個資料庫都有一個主要數據文件和一個主文件組,主要數據文件的擴展名是.mdf 。
//一些資料庫可能因為太大而需要很多次要數據文件,也可能在多個獨立的磁碟驅動器上使用次要數據文件,以把數據分布在多個磁碟上。次要數據文件可以放在主文件組中,也可以放在自定義文件組中。次要數據文件的擴展名是.ndf 。
//在資料庫中用事務日誌文件記錄數據的修改操作,其中的每條日誌記錄或者記錄所執行的邏輯操作,或者記錄已修改數據的前像和後像。前像是操作執行前的數據復本;後像是操作執行後的數據復本。
7、刪除資料庫,創建資料庫的命令,創建表的命令,創建視圖
//刪除資料庫: drop database 資料庫名
//創建資料庫:create database 資料庫名
//創建表: create table <表名>(<列名><數據類型>[列級完整性約束條件]
[,<列名><數據類型>[列級完整性約束條件]]
[,<表級完整性約束條件>]);
//創建視圖:create view <視圖名>[(<列名>[,<列名>]...)]
as <子查詢>
[with check option];
8、SQL中兩個範例資料庫是是什麼?
//pubs和northwind
9、參照完整性規則是什麼含義。
//參照完整性屬於表間規則。對於永久關系的相關表,在更新、插入或刪除記錄時,如果只改其一不改其二,就會影響數據的完整性:例如修改父表中關鍵字值後,子表關鍵字值未做相應改變;刪除父表的某記錄後,子表的相應記錄未刪除,致使這些記錄稱為孤立記錄;對於子表插入的記錄,父表中沒有相應關鍵字值的記錄;等等。對於這些設計表間數據的完整性,統稱為參照完整性。
10、資料庫的發展過程,哪三個階段。
//人工管理階段、文件系統階段、資料庫系統階段。
11、SQL中的含義 SELECT
//SELECT 將從零個或更多表中返回記錄行。
FROM //指定基本表或視圖
WHERE 表示篩選條件
GROUP BY 分組,見到「每」,「各」就要分組
HAVING 分組後的篩選條件
ORDER BY 排序,ASC是升序,DESC是降序
12、有表結構 學生(學號,姓名)
檢索課程名以「王」字開頭的所有信息
SELECT * FROM 課程表
where 姓名 like 「王%」
GO
設置默認值的關鍵字為: default,設置主鍵的關鍵字是primary key。
1、有一個學生成績資料庫(庫名XSCJ),資料庫中包括三個表:
學生情況表(表名XS)由七個屬性組成,可記為:
XS(學號、姓名、專業名、性別、出生時間、總學分、備注) 其中學號為主鍵。
課程表(表名KC)由五個屬性組成,可記為:
KC(課程號、課程名、開課學期、學時、總分) 其中課程號為主鍵。
學生成績表(表名CJ)由四個屬性組成,可記為:
CJ(學號、課程號、成績、總分)其中學號、課程號為主鍵。
完成下列操作:
( 1 )在XS表中查詢出所有學生年齡在18~20之間的學生信息,要求輸出欄位為學生的學號、姓名、性別、年齡。
select 學號,姓名,性別,年齡
from XS
where 年齡 between 18 and 20;
( 2 )在XS表中查詢出不在1983年出生的所有學生情況。
select * from XS
where 出生時間 !=1983;
(3)在XS表中查詢專業名為「藝術」 或「網路」或「文秘」的所有學生情況,並按學生的學號降序排列。
select * from XS
where 專業名 in ('藝術','網路','文秘')
order by 學號 desc;
(4)在XS表中查找出姓「張」的所有學生信息,並按學號升序排列。
select * from XS
where 姓名 like '張%'
order by 學號 asc;
(5)在CJ表中查詢成績大於80分的所有學生信息。
select * from CJ
where 成績>80;
(6)在KC表中查詢學時小於6的所有信息。
select * from KC
where 學時<6;
(7)在XS表中查詢所有性別為「女」的學生信息
select * from XS
where 性別='女';
㈥ 求SQL Server高手
1.select MAX(Grade) as 最或春世高分數, AVG(Grade) as 平均分衫肢數 from SG where Sno=1
2.select * from student where Sname like '趙%' and Sdept='計算機系'andSage='森脊女'
3.insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('05020','丁莉',17,'計算機系')
4.delete from SG where Sno=(select Sno from Student where Sdept='計算機系')
㈦ 解答 SQL 資料庫 學生表 成績表
(3) crate table score
(cid int,
Sid int,
Cname char(30),
Score_1 int,
Score_2 int,
Score_3 int,
)
這個有問題吧,一個課程編號只對應一個課程名稱,一個學生的課程只有一個成績,怎麼你這里有三個成績的。你可以把cid,sid同時在這個表設置成主鍵,這樣cid和sid就可以唯一標示一個學生的一門課程的成績了。
㈧ 查詢每個學生的各科成績sql語句
1、查詢每個學生的各科成績sql語句:
select a.studentid,a.name,a.sex,v1.score as '語文',v2.score as '數學', v3.score as '英語',v4.score
as 『哲學』, (v1.score+v2.score+v3.score+v4.score)/4 as 『平均成績』 from Stuednt a
left join
(select studentid,score from grade where cid=(select cid from course where cname='語文'))as v1
on a.studentid=v1.studentid
left join
(select studentid,score from grade where cid=(select cid from course where cname='數學'))as v2
on a.studentid=v2.studentid
left join
(select studentid,score from grade where cid=(select cid from course where cname='英語'))as v3
on a.studentid=v3.studentid
left join
(select studentid,score from grade where cid=(select cid from course where cname='哲學'))as v4
on a.studentid=v4.studentid
order by a.studentid
2、sql資料庫介紹:
(1)SQL是Structured Query Language(結構化查詢語言)的縮寫。SQL是專為資料庫而建立的操作命令集,是一種功能齊全的資料庫語言。在使用它時,只需要發出"做什麼"的命令,"怎麼做"是不用使用者考慮的。
(2)SQL功能強大、簡單易學、使用方便,已經成為了資料庫操作的基礎,並且現在幾乎所有的資料庫均支持SQL。
(3)SQL資料庫的數據體系結構基本上是三級結構,但使用術語與傳統關系模型術語不同。
(4)在SQL中,關系模式(模式)稱為"基本表"(base table);存儲模式(內模式)稱為"存儲文件"(stored file);子模式(外模式)稱為"視圖"(view);元組稱為"行"(row);屬性稱為"列"(column)。
㈨ SQL試題求解
1
IF OBJECT_ID('學生表')IS NOT NULL
DROP TABLE 學生表
GO
create table 學生表 --建立學生表.
(
學號 int not null , --學號,姓名,年齡,性別,家庭住址,聯系電話
姓名 varchar(10) not null, --姓名
性別 varchar(2)
年齡 int,
聯系電話 varchar(10),
家庭住址 varchar(50),
聯系電話 varchar(20),
check (性別 ='男' OR 性別='女'),
)
1.1
delete 學生表
insert 學生表 (學號,姓名,年齡,性別,聯系電話,學歷)
values(1,"A",22,"男","123456","小學")
insert 學生表 (學號,姓名,年齡,性別,聯系電話,學歷)
values(2,"B",21,"男","119","中學")
insert 學生表 (學號,姓名,年齡,性別,聯系電話,學歷)
values(3,"C",23,"男","110","高中")
insert 學生表 (學號,姓名,年齡,性別,聯系電話,學歷)
values(4,"D",18,"女","114","大學")
1.2
update 學生表
set 學歷='大專'
where 聯系電話 like '11%'
go
1.3
delet 學生表
where 性別='女',姓名 like 'B%'
go
1.4
select 姓名,學號
from 學生表
where 學歷='大專',年齡<22
go
1.5
select 姓名,性別
from 學生表
order by 年齡 desc
go
2.1
use stu
IF OBJECT_ID('Student')IS NOT NULL
DROP TABLE Student
GO
create table Student --建立學生表.
(
學號 int not null ,
姓名 varchar(10) not null, --姓名
性別 varchar(2)
年齡 int,
所在系 varchar(10),
check (性別 ='男' OR 性別='女'),
)
2.2
use stu
select 學生表.學號
from Student As 學生表,SG As 成績表
where 學生表.學號=成績表.學號,成績表.成績<60
go
2.3
use stu
select 姓名,性別,年齡
from Student
where 所在系='計算機系',性別='男',姓名 like '張%'
go
2.4
use stu
insert Student (學號,姓名,年齡,性別,所在系)
values(05020,"高平",19,"女","積極管理系")
go
4.1
刪除student表中學號為2004009的學生的信息
4.2
在stu資料庫的student表中創建列名為姓名,家庭住址的視圖student_view
4.3
查詢stu資料庫的student表中前9條信息
4.4
在stu資料庫的student表中創建查詢學號,姓名,家庭住址的存儲過程student_pro
4.5
在stu資料庫的student表中創建帶輸入參數的存儲過程
4.6
查詢Sg表中課程號為06的平均成績
㈩ SQL里如何把查詢得到的內容作為屬性名
這個玩意兒太難了,我整整弄了一個下午,而且還查了不少材料,現在基本完成樓主你要的功能了,表結構是參照樓主來的,升碼宴改改欄位名就能用模判。先把代碼都拷過去,跑一下,就知道效果了。
if exists(select * from sysobjects where name='xs')
drop table xs
create table xs
(
id char(5) primary key not null,
xm varchar(10) not null
)
insert into xs values ('10001','張三')
insert into xs values ('10002','李四')
insert into xs values ('10003','一五')
insert into xs values ('10004','田七')
if exists (select * from sysobjects where name='km') drop table km
create table km
(
id char(3) primary key not null,
mc varchar(20) not null
)
go
insert into km values ('101','java')
insert into km values ('102','C#')
insert into km values ('103','sql')
insert into km values ('104','html')
insert into km values ('105','xml')
if exists (select * from sysobjects where name='cj') drop table cj
create table cj
(
xhid char(5) references xs(id) not null,
kmid char(3) references km(id) not null,
cj float
)
go
insert into cj values ('10001','101',89)
insert into cj values ('10002','101',95)
insert into cj values ('10003','101',80.5)
insert into cj values ('10001','103',90)
insert into cj values ('10003','102',66)
insert into cj values ('10003','103',75)
insert into cj values ('10003','104',50)
insert into cj values ('10002','102',72)
insert into cj values ('10002','103',78)
insert into cj values ('10001','104',100)
insert into cj values ('10004','105',99)
--select * from xs
--select * from km
--select * from cj
--創建一個聯接表臨時表
if exists(select * from sysobjects where name='temp1')
drop table temp1
go
select c.xhid,a.xm,b.mc,c.cj into temp1 from xs a,km b,cj c where a.id=c.xhid and b.id=c.kmid
select * from temp1
----根據科目表創建一個新科目的表,新增欄位id並遞增,便於根據科目循環吵銀控制,前提是科目表中編號與成績表中的科目編號主外鍵聯
if exists(select * from sysobjects where name='temp2')
drop table temp2
go
select mc ,num=identity(int, 1,1) into temp2 from km group by mc
declare @sql varchar(8000),@t varchar(20), @n int
select @sql='', @n=max(num) from temp2
while @n>0
begin
select @t=mc from temp2 where num=@n
set @sql=',sum(case mc when '''+ @t + ''' then cj else '' '' end ) as '+ @t + @sql
set @n = @n - 1
end
set @sql = 'select xhid,xm' + @sql + ' from temp1 group by xhid,xm order by xhid'
exec(@sql)
--刪除臨時表
drop table temp1,temp2
兄弟,我不容易啊,好四五個小時啊,頭都大了,這么辛苦,沒別的,給分啊 ^_^