第一篇:SQL各種約束總結
SQL Server 各種約束總結
NOT NULL約束
Not null ,即不為空。Not null 約束強制字段始終包含值。這意味著,如果不向字段添加值,就無法插入新記錄或者更新記錄。
添加此約束有兩種方法:
方法一
在表設計器中直接勾選即可。如下圖:
方法二
SQL語句添加約束。CATE TABLE table_name(ATTRIBUTE Type NOT NULL;);
點擊新建查詢,在查詢界面中輸入相應的SQL語句。
PRIMARY KEY約束
primary key,顧名思義,即主鍵,也稱主碼。在表中一行稱一個元組,如果存在某個屬性或幾個屬性,其值能唯一標識表中的某一行,這樣的一個屬性或多個屬性就能作為表的primary key。
為一個表設置主碼約束有以下三種方法:若主鍵設置成功,在相應的屬性旁邊會有一把小鑰匙。
方法一
直接右擊所要設置的屬性,選擇設置主鍵。
方法二
選中要設置的屬性,直接點擊圖箭頭所指的小鑰匙。
方法三
用SQL語言在設計表時同時添加約束。
CREATE TABLE table name(Attribute1 Type PRIMARY KEY,);
FOREIGN KEY
外鍵約束是用來加強兩個表(主表和從表)的一列或多列數據之間的連接的。創建外鍵約束的順序是先定義主表的主鍵,然后定義從表的外鍵。也就是說只有主表的主鍵才能被從表用來作為外鍵使用,被約束的從表中的列可以不是主鍵,主表限制了從表更新和插入的操作。
方法一
右鍵單擊需要設置外鍵的列(此時的表是作為從表在外鍵中出現),選擇關系。
接下來點擊添加--> 表和列規范。
在主鍵表中選擇主表和主表的主鍵列。
設置完后保存即可。
方法二
SQL語句
UNIQUE 約束
UNIQUE約束唯一標識數據庫表中的每一條記錄。
附加:UNIQUE約束和PRIMARY KEY約束的區別:
UNIQUE和PRIMARY KEY約束均為列或列集合提供了唯一性的保證;
PRIMARY KEY約束擁有自動定義的UNIQUE約束;
每個表中可以有多個UNIQUE約束,但是只有有一個PRIMARY KEY約束。
方法一
右鍵單擊要設置的列選擇索引 / 鍵。
然后單擊添加按鈕。
選擇需要設置的列,可以是一列也可以是多列的組合。
關閉并保存設置。
方法二
SQL語句
DEFAULT 約束
DEFAULT約束用于向列中插入默認值。如果沒有規定其他的值,那么會將默認值添加到所有的新記錄。
方法一
以學生信息表為例,在表設計器中,為性別 sex 列填寫默認值男。
方法二
SQL語句
CREATE TABLE table_name(Attribute type constraint,);
CHECK 約束
CHECK 約束用于限制列中的值的范圍。
如果對單個列定義 CHECK 約束,那么該列只允許特定的值。
如果對一個表定義 CHECK 約束,那么此約束會在特定的列中對值進行限制。
Check 約束通過邏輯表達式來判斷數據的有效性,用來限制輸入一列或多列的值的范圍。在列中更新數據時,所要輸入的內容必須滿足 Check 約束的條件,否則將無法正確輸入。方法一
以學生信息表中的 sex 為例,我們要限制 sex 列的值只能為男或女。
關閉并保存設計。
方法二
CREATE TABLE Persons(Id_P int NOT NULL CHECK(Id_P>0), LastName varchar(255)NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255))如果需要命名 CHECK 約束,以及為多個列定義 CHECK 約束,請使用下面的 SQL 語法:
CREATE TABLE Persons(Id_P int NOT NULL, LastName varchar(255)NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT chk_Person CHECK(Id_P>0 AND City='Sandnes'))
第二篇:約束(sql 語句)
use stuinfo
alter table student
add 入學時間 datetime
go
use stuinfo
alter table student
add ID char(20)
use stuinfo
alter table student
add constraint check_1 check(datediff(day,birthday,getdate())>=365*18)use stuinfo
alter table student
add constraint check_2 check(len(ID)=18)
go
use stuinfo
update student
set ID='***321'
where S_number='040102'
use stuinfo
alter table student
add constraint check_3 check(Politics='黨員' or Politics='團員' or Politics='群眾' or Politics='')
第三篇:SQL語言總結
select 姓名,sum(成績)as 總分from 學生 inner join 成績 on 學生.學號=成績.學號 group by 姓名 答:從通過學號建立的學生與成績關系表中選擇選擇學生成績的姓名集合Update 學生成績表 set 高數=93
Where 高數=80;
答:將“學生成績表”中所有“高數”為80分的記錄的改為93分
Select 學號,姓名
From 學生
Where 專業=“計算機應用”;
答:查詢出專業為“計算機應用”的所有男生的學號和姓名
Select 學號,姓名
From 學生
Where 年齡>=18 and姓名like“王*”;
答:顯示學生表中年齡大于18歲且姓“王”的學生的所有信息。
Select Count(性別)as 男生人數
From 學生
Where 性別=“男”;
答:分別顯示男生人數
Select 課程.課程編號, 課程.課程名, 成績.學生編號, 成績.成績 From 課程 Inner Join 成績 on 課程.課程編號 = 成績.課程編號 Where(課程.課程名)=“數據庫原理”and(成績.成績)>70;
答:查找“數據庫原理”課程成績在70分以上學生的學號、姓名和成績
Select top 3 學號, 姓名
From 學生
Order by 成績 Desc;
答:顯示成績前3名的學生的學號和姓名
SELECT 學生.學生編號, 學生.學生姓名, 課程.課程編號, 課程.課程名, 成績.成績, 班級.班級編號
FROM 課程 INNER JOIN(班級 INNER JOIN(成績 INNER JOIN 學生 ON 成績.學生編號=學生.學生編號)ON 班級.班級編號=學生.班級編號)ON 課程.課程編號=成績.課程編號
WHERE(((課程.課程名)=“計算機基礎”)AND((班級.班級編號)=“0401”));
答:查詢0401課程成績
SELECT 學生編號, 學生姓名, 性別, 出生年月, 籍貫, 身高, 班級編號
FROM 學生
WHERE 性別=“男” AND 班級編號=“0401”;
答:查找班級編號為0401的所有男生
UPDATE 成績 SET 成績 =((成績*0.1)+成績)
WHERE 成績<60;
答:低于60分的增加10%
SELECT 課程.課程編號, 課程.課程名, 課程.學時, 課程.學分, 教師.教師編號, 教師.教師姓名, 教師.性別, 教師.職務
FROM 課程 INNER JOIN 教師 ON 課程.教師編號=教師.教師編號;答: 教師授課課程查詢
SELECT 教研室編號, 教師人數
FROM 教研室;
答:教研室人數查詢
SELECT 課程編號, 課程名, 學時
FROM 課程;
答:課程名稱查詢
SELECT avg(成績)AS平均成績
FROM 成績;
答:平均成績查詢
SELECT avg(身高)AS平均身高
FROM 學生
WHERE 性別=“男”;
答:求出男生的平均身高
SELECT 學生編號, Avg(成績)AS平均成績, Sum(成績)AS 總成績 FROM 成績
GROUP BY 學生編號;
答:求學生的平局成績和總成績
UPDATE 學生 SET 學生編號 = “050211”
WHERE 學生編號=“050101”;
答:修改學生編號
alter table 學生 add 身高 smallint;
答:增加身高字段
第四篇:SQL實驗報告總結
《數據庫系統概論(第四版)》
體
會
學號: 姓名: 班級: 教師:
學
期實 驗 總 結 與 心 得
【實驗名稱】 數據庫的創建 【實驗內容】
1、新建sql注冊表。
2、新建數據庫。主數據文件:邏輯文件名為student_data,物理文件名為student.mdf,初始大小為10mb,最大尺寸為無限大,增長速度為10%;
數據庫的日志文件:邏輯名稱為student_log,物理文件名為student.ldf,初始大小為1mb,最大尺寸為5mb,增長速度為 1mb
3、修改已注冊的sql server屬性為使用sql server身份驗證。
【實驗名稱】 數據庫的附加、分離、導入導出及分離 【實驗內容】 1.數據庫文件的附加與分離(轉載于:sql實驗報告總結)2.數據庫文件的導入和導出 3..數據庫的刪除 4.修改數據庫
【實驗名稱】 數據庫的創建(書中作業)【實驗內容】 1.在數據庫student中創建一個學生基本信息表 1.用企業管理其創建表 2.用查詢分析器創建表 2.sql server 2005的系統數據類型分為哪幾類?常用的數據類型有哪些?
答:字符串類型、整型、長整型、短整型、浮點數類型、定點數類型、日期、時間。常用的數據類型有:字符串類型、整型、長整型、短整型、浮點數類型、定點數類型、日期、時間
3.在數據庫student中創建一個名為t_couse(課程信息表)1.用企業管理其創建t_course表 2.用查詢分析器創建t_course 4.在數據庫student中創建一個名為t_score(學生成績)的表 5.sql server 2005 中有多少種約束?其作用分別是什么
答:非空約束,作用指定某一列不允許空值有助于維護數據的完整性,因為這樣可以確保行中的列永遠保護數據。
主鍵約束,作用可以保證實體的完整性,是最重要的一種約束。唯一約束,作用指定一個或多個列的組合值具有唯一性,以防止在列中輸入重復的值。
檢查約束,作用對輸入列或者整個表中的值設置檢查條件,以限制輸入值,保證數據庫數據的完整性。
默認約束,作用指定在插入操作中如果沒有提供輸入值。怎系統自動指定值。外鍵約束,作用主要用來維護兩個表之間數據的一致性。6.分別為t_course表和t_score表創建唯一性約束、檢查約束、默認約束。篇二:sql server綜合實驗報告
華北科技學院計算機系綜合性實驗
實 驗 報 告 課程名稱 數據庫系統 實驗學期 2010 至 2011 學年 第 二 學期
學生所在系部 計算機系 年級 二年級 專業班級
網絡工程b093班
學生姓名
沈亞強
學號
200907024313
任課教師
郭紅 實驗成績
計算機系制
實驗報告須知
1、學生上交實驗報告時,必須為打印稿(a4紙)。頁面空間不夠,可以順延。
2、學生應該填寫的內容包括:封面相關欄目、實驗地點、時間、目的、設備環境、內容、結果及分析等。
3、教師應該填寫的內容包括:實驗成績、教師評價等。
4、教師根據本課程的《綜合性實驗指導單》中實驗內容的要求,評定學生的綜合性實驗成績;要求在該課程期末考試前將實驗報告交給任課教師。綜合性實驗
中,所涉及的程序,文檔等在交實驗報告前,拷貝給任課教師。任課教師統一
刻錄成光盤,與該課程的期末考試成績一同上交到系里存檔。
5、未盡事宜,請參考該課程的實驗大綱和教學大綱。《
數據庫系統
》課程綜合性實驗報告 篇三:數據庫上機實驗報告+總結
數據庫集中上機報告
學 生: 馬志鵬 學 號: 0221090118 班 級: 02210901 專
業:計算機應用技術 重慶郵電大學移通學院 2011年6月
第一天:access數據庫基本操作 1 實驗目的
1、熟悉的掌握access數據庫結構與創建
2、了解創建、修改、刪除、查詢、保存等操作
3、輸入數據創建、設計器創建、向導創建。2 實驗內容 3 實驗結果
1.2.2 2 access數據表的編輯
第二天 數據表基本操作 1 表關系與編輯數據 1 實驗目的:
1、實現一對一,一對多,多對多的實體關系
2、對“學生基本信息”表中的記錄進行排序,按出生日期降序排列
3、從“學生基本信息”表中篩選出所有計算機系男生的記錄
4、從“學生基本信息”表中篩選出回族和蒙古族的所有學生記錄 3 2 實驗內容
1.select 學生基本信息表.學生姓名, 成績檔案表.* from 成績檔案表 inner join 學生基本信息表 on 成績檔案表.學生學號 = 學生基本信息表.學生學號
where(((學生基本信息表.學生姓名)=張冰冰));2 select 學生基本信息表.* from 學生基本信息表 where(((學生基本信息表.性別)=男)and((學生基本信息表.班級名稱)=計算機系));3 select 成績檔案表.c語言, 課程表.* from 成績檔案表, 課程表;4 select 學生基本信息表.*, 學生基本信息表.性別, 學生基本信息表.班級名稱 from 學生基本信息表 where(((學生基本信息表.性別)<>男)and((學生基本信息表.班級名稱)<>計算機系));5 select 學生基本信息表.*, 學生基本信息表.出生日期 from 學生基本信息表 where(((month([出生日期]))=9)and((day([出生日
期]))=1));6 select 學生基本信息表.* from 學生基本信息表 where(((學生基本信息表.學生姓名)like 李*));3 實驗結果 4 第3天 sql查詢設計 1 sql語言查詢 1 實驗目的:
熟悉了解sql語句 5 篇四:sqlserver實驗報告—數據庫和表的創建
數據庫實驗報告
課程名稱信息系統數據庫技術 實驗名稱 數據表的管理 專業班級
姓 名
學 號 實驗日期
實驗地點 2012—2013學 第 一 學期 篇五:數據庫上機實驗報告sql server 2000 課程代碼:1010000450 數據庫 database 學分:3 總學時:48 實驗學時:16 面向專業:信息與計算科學,數學與應用數學
一、實驗教學目標
數據庫是計算機科學與技術專業的專業必修課程。課程內容主要包括:數據模型、關系代數、關系數據庫標準語言sql、關系系統、關系數據理論、數據庫設計方法。學習本課程的過程中,只有通過上機實驗,才能使學生真正深層次了解數據庫系統的體系結構,掌握數據庫系統的基礎理論、技術和方法,掌握主流數據庫管理系統sql server 2000的應用技術及數據庫應用系統的設計、開發能力。
二、實驗教學基本要求
認真閱讀教材中與實驗相關的章節內容,提前做好實驗準備,做到在每個實驗前明確實驗目的、掌握實驗的基本內容及操作方法;在實驗中正確使用實驗設備,認真觀察、分析實驗結果;實驗后要根據要求做好總結,寫出實驗報告。
三、實驗教材或實驗指導書
《數據庫系統概論》,薩師煊 王珊主編,高等教育出版社
四、考核方式與評分辦法 實驗成績評定分兩部分:上機實驗操作占50%,實驗報告占50%。
五、實驗項目設置
六、實驗內容與實驗方式
實驗一
安裝sql server 2000
(一)實驗內容 1.安裝microsoft的數據庫服務軟件sql server 2000。以sql server2000企業版為例安裝教程
第一步:打開安裝文件中的“autorun”文件,安裝程序會自動運行出現版本選擇界面,我們以選擇企業版為例。
第二步:在接下來的界面中選擇“安裝數據庫服務器”選項。
第三步:這時出現安裝向導,出現“計算機名”窗口。“本地計算機”是默認選項,其名稱就顯示在上面,我們按其默認點“下一步”。
第四步:接下來,在“安裝選擇”對話窗口中,同樣按其默認項“創建新的sql server實例,或安裝客戶端工具”點下一步。
第五步:在 用戶信息 窗口,輸入用戶信息,并接受軟件許可證協議。
第六步:在 安裝定義窗口,選擇 服務器和客戶端工具 選項進行安裝。我們需要將服務器和客戶端同時安裝,這樣在同一臺機器上,我們可以完成相關的所有操作,對于我們學習sql server很有用處。如果你已經在其它機器上安裝了sql server,則可以只安裝客戶端工具,用于對其它機器上sql server的存取。
第七步:在 實例名 窗口,選擇 默認 的實例名稱。這時本sql server的名稱將和windows 2000服務器的名稱相同。第八步:在 安裝類型 窗口,選擇 典型 安裝選項,并指定 目的文件夾。
第九步:在 服務賬號 窗口,請選擇 對每個服務使用統一賬戶...的選項。在 服務設置 處,選擇 使用本地系統賬戶。如果需要 使用域用戶賬戶 的話,請將該用戶添加至windows server的本機管理員組中。
第十步:在 身份驗證模式 窗口,請選擇 混合模式...選項,并設置管理員sa賬號的密碼。如果需要更高的安全性,則可以選擇 windows身份驗證模式,這時就只有windows server的本地用戶和域用戶才能使用sql server了。
第十一步:在 選擇許可模式 窗口,根據您購買的類型和數量輸入(0表示沒有數量限制)。每客戶表示同一時間最多允許的連接數,處理器許可證表示該服務器最多能安裝多少個cpu。筆者這里選擇了 每客戶 并輸入了100作為示例。
第十二步:約10多分鐘的安裝時間,然后打開開始菜單下的sql子目錄下的企業管理器。2.熟悉軟件的使用以及各個組成部分。
第一:打開企業管理器,可以對本地的數據進行管理,也可以登錄服務器端,即可以遠程操作自己的數據庫 ;
第二:登錄查詢分析器,可以通過sql管理語句,對數據庫進行管理。
(二)實驗方式與分組要求
老師先講解十分鐘,學生上機操作數據庫sql server2000,最后老師檢查操作結果。每次86組,每組1人。
實驗二
啟動sql server2000和建庫、表
(一)實驗內容 1.啟動數據庫服務軟件sql server 2000。第一步:打開企業管理器,可以登錄服務器端,即可以遠程操作自己的數據庫,登錄步驟如下; 第二步:左側方框中控制臺根目錄的子目錄的sql server組上,右擊,并新建sql server注冊?; 第三步:在“服務器”一欄里輸入想要登錄的服務器ip地址,選擇使用sql server身份驗證,寫入登錄名和密碼,就可以登錄了。
第四步:登錄查詢分析器,可以通過sql管理語句,對數據庫進行管理。2.在sql server 2000中建立數據庫。
第一步:通過企業管理器進入服務器端以后,可以在數據庫文件里“新建數據庫”。第二步:輸入數據庫名稱。
第三步:通過相關需求對數據庫的相關屬性進行設置,然后完成。3.在數據庫上建立表。第一步:登錄企業管理器
第二步:進入自己的database,并打開“表”選項;
第三步:在表選項右側空白處,點擊右鍵,選擇“新建表?”;
第四步:在彈出的窗口中,分別填寫列名,數據類型,長度和是否允許空值,然后關閉窗口。第五步:關閉窗口會彈出是否保存表,選擇是,接下來彈出的窗口中填寫表名即可。
(二)實驗方式與分組要求
老師先講解十分鐘,學生上機操作數據庫sql server2000,最后老師檢查操作結果。每次86組,每組1人。
實驗三
sql server2000查詢分析器
(一)實驗內容 1.啟動數據庫服務軟件sql server 2000的查詢分析器。第一步:在登錄企業管理器的前提下,登錄查詢分析器。
第二步:登錄查詢分析器與登錄企業管理器類似,需要輸入ip地址或者如果是本地數據庫,直接用windows身份驗證即可。2.在查詢分析器中建立表。
第一步:在查詢分析器命令欄里輸入以下語句: 定義一個學生-課程模式s-t create schema “s-t” authorization wang /*為用戶wang定義了一個模式s-t*/ 然后點擊“分析查詢”和“執行查詢”。第二步:在查詢分析器命令欄里輸入以下語句:
建立“學生”表student,學號是主碼,姓名取值唯一 create table student(sno
char(9)primary key, /* 列級完整性約束條件*/ sname char(20)unique, /* sname取唯一值*/ ssex char(2), sage smallint, sdept char(20));然后點擊“分析查詢”和“執行查詢”。
(二)實驗方式與分組要求
老師先講解十分鐘,學生上機操作數據庫sql server2000,最后老師檢查操作結果。每次86組,每組1人。
實驗四
sql語言的ddl
(一)實驗內容 1.用如下語句對表進行操作:create table 建表;drop table 刪除表;alter table 更改表。
create table student(sno char(4)primary key)drop table student /*當student表與其他數據有級聯關系或者其他關系時,不能刪除。*/ alter table student add s_entrance date null/*向student表增加“入學時間”列,其數據類型為日期型*/ alter table student drop column sno /*刪除student表中的sno這一列,含有以下關系的列不能被刪除: ? 被復制列。
? 用在索引中的列。
? 用在 check、foreign key、unique 或 primary key 約束中的列。? 有相關聯的默認值(由 default 關鍵字定義)的列,或綁定到默認對象的列。? 綁定到規則的列。*/ 2.用如下語句對視圖進行操作:create view 建視圖;drop view 刪除視圖。/*創建一個is_student視圖,視圖中返回來自于表student中sdept=’is’的所有學生的sno,sname,sage列*/ create view is_student
as
select sno,sname,sage
from student where sdept=is /*刪除is_student視圖*/ drop view is_student 3.如下語句對索引進行操作:create index 建立索引;drop index 刪除索引。/*創建一個stusname索引,在student 表中以sname列升序排列*/ create clustered index stusname on student(sname)/*刪除student表中的stusname索引*/ drop index student.stusname
(二)實驗方式與分組要求
老師先講解十分鐘,學生上機操作數據庫sql server2000,最后老師檢查操作結果。每次86組,每組1人。
實驗五 sql語言的dml
(一)實驗內容 1.啟動數據庫服務軟件sql server 2000的查詢分析器,用insert語句對表進行插入操作。/*將一個新學生元組(學號:200215128;姓名:陳冬;性別:男;所在系:is;年齡:18歲)插入到student表中*/ insert into student(sno,sname,ssex,sdept,sage)values(200215128,陳冬,男,is,18)/*學生張成民的信息插入到student表中*/ insert into student values(200215126,張成民,18,cs,男)/*對表student中每一個系,求學生的平均年齡,并把結果存入表dept_age表中。*/ 第一步:create table dept_age(sdept char(15), /* 系名*/ avg_age smallint)/*學生平均年齡*/ 第二步:insert into dept_age(sdept,avg_age)
select sdept,avg(sage)from student group by sdept 2.用update語句對表中已有的記錄進行修改。/*將學生200215121的年齡改為22歲*/ update student set sage=22 where sno=200215121 /*將所有學生的年齡增加1歲*/ update student set sage= sage+1 /*將cs系全體學生的成績置零*/ update sc set grade=0 where cs=(select sdept from student where student.sno = sc.sno)3.用delete語句對表中已有的記錄進行刪除。
第五篇:SQL學習總結
上個星期,自主學習了SQL Server,基本了解了SQL Server的語法知識和結構,對SQL 有了一定的認識,現在我就對我這一星期對SQl的 學習做一個總結:
為了永久性的集中存放數據,并且還能體現數據與數據之間聯系.此時需要用到數據庫來保存數據.由于之前也接觸過一兩種數據庫,向Oracle,MySQL,再就是SQL Server,這三種都是關系型數據庫,都是用于存儲大量的數據信息,是一種存儲數據的倉庫。不過,不管是哪一種數據庫,他們之間的聯系我覺得都是相通的,對于數據庫的常見操作,無非就是“三建四句“。
所謂的“三建四句“就是說,三建:建庫,建表,建約束;四句:增,刪,改,查。
SQL 語言,也稱為結構化查詢語言,是用于訪問關系型數據庫的專用語言,同樣也是數據庫的核心語言,總體上可以分為三類:數據操縱語言(DML), 數據定義語言(DDL)、數據控制語言(DCL)。
數據操縱語言(DML)主要有四種形式:
插入:insert
更新:update
刪除:delete
查詢:select,涉及到數據的完整性——簡單查詢、子查詢、多表連接查詢
數據定義語言(DDL)主要用于創建數據庫中的各種對象——
數據庫
數據表
視圖:是一種觀察數據的途徑
索引:用于查詢數據,提高效率
同義詞
Create,Drop,Alert,Truncate(截斷)
數據控制語言(DCL):是用于授予和回收訪問數據庫的某種權限,并對數據庫進行監控。
Grant(授予),Revoke(回收),Denny(拒絕),Rollback
SQL 中的運算符:算術運算符、位運算符、比較運算符、邏輯運算符、通配運算符、字符串連接符、賦值運算符
上面這些只是SQL Server數據的基本操作,而它真正強大的地方并不止這些,還有程序設計,SQL Server中的編程語言就是T-SQL語言,是一種非過程化的語言。
觸發器:觸發器是一種特殊類型的存儲過程,主要是通過實踐進行觸發而被執行。它的主要作用就是能夠實現由主鍵和外鍵所不能保證的復雜的參照完整性和數據的一致性。
存儲過程:(stored procedure)類似c語言中的函數,是一組為了完成特定功能的SQL語句集,經編譯后存儲在數據庫中。用戶通過指定存儲過程的名字并給出參數來執行它。
游標:游標是一種能從包含多條數據記錄的結果集中每次提取一條記錄的機制。將批操作變成行操作,對結果集中得某行進行操作。