亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

SQL Server數據庫入門學習總結

2024-08-31 00:57:14
字體:
來源:轉載
供稿:網友
一圖勝“十”言:SQL Server 數據庫總結

一個大概的總結

SQL Server數據庫入門學習總結


經過一段時間的學習,也對數據庫有了一些認識。
  數據庫基本是由表,關系,操作組成;對于初學者首先要學的:

   1.數據庫是如何存儲數據的
    表,約束,觸發器
   2.數據庫是如何操作數據的
    insert,update,delete T-sql 函數 存儲過程 觸發器
   3.數據庫是如何顯示數據的
    select

SQLServer數據庫學習總結

1.SQL基礎
SQL Server2000安裝、配置,服務器啟動、停止,企業管理器、查詢分析器
第一代數據庫--網狀數據庫和層次數據庫;第二代數據庫--關系數據庫
數據庫(DB);數據庫管理系統(DBMS);數據庫系統(DBS)
SQL Server 2000 提供了不同版本:企業版、標準版、個人版、開發版

SQL Server中的數據類型:整數:int,smallint,tinyint,bigint;浮點數:real,float,decimal;二進制:binary,varbinary;邏輯:bit;字符:char,nchar,varchar,nvarchar;文本和圖形:text,ntext,image;日期和時間:datetime,smalldatetime;貨幣:money,smallmoney

數據庫的創建和刪除;數據庫表的創建、修改和刪除

數據完整性:實體完整性:Primary Key,Unique Key,Unique Index,Identity Column;域完整性:Default,Check,Foreign Key,Data type,Rule;參照完整性:Foreign Key,Check,Triggers,Procedure;用戶定義完整性:Rule,Triggers,Procedure;Create Table中得全部列級和表級約束

SQL Server中有5種約束:主鍵約束(Primary Key Constraint)、默認約束(Default Constraint)、檢查約束(Check Constraint)、唯一性約束(Unique Constraint)、外鍵約束(Foreign Key Constraint).

關系圖

數據庫設計的步驟:需求分析、概念結構設計、邏輯結構設計、數據庫物理設計、數據庫實施、數據庫運行和維護

兩個實體之間的聯系:一對一(1:1)、一對多(1:n)、多對多(m:n)

實體關系模型 -- E-R圖

數據庫規范化:將數據庫的結構精簡為最簡單的形式;從表中刪除冗余列;標識所有依賴于其他數據庫的數據。

數據庫三范式:第一范式就是無重復的列;第二范式就是非主屬性非部分依賴于主關鍵字;第三范式就是屬性不依賴于其他非主屬性

2.SQL語句
SQL全稱是“結構化查詢語言(Structured Query Language)”

SQL的4個部分:
數據定義語言DDL(Data Definition Language)用來定義數據的結構:create、alter、drop。
數據控制語言DCL(Data Control Language)用來控制數據庫組件的存取許可、存取權限等得命令:grant、revoke。
數據操縱語言DML(Data Manipulation Language)用來操縱數據庫中得數據的命令:insert、update、delete。
數據查詢語言DQL(Data Query Language)用來查詢數據庫中得數據的命令:select。

SQL中得運算符:算術運算符、位運算符、比較運算符、邏輯運算符、通配運算符、字符串連接符、賦值運算符

3.查詢
簡單查詢,使用TOP子句
查詢結果排序order by
帶條件的查詢where,使用算術表達式,使用邏輯表達式,使用between關鍵字,使用in關鍵字,
模糊查詢like
在查詢中使用聚合函數:sum(x),avg(x),min(x),max(x),count(x),count(*)
使用分組查詢group by,having子句
distinct關鍵字
列別名
select top 6 * from sales order by qty desc
select au_id,au_fname,au_lname from authors where state in('ks','ca','mi')
select au_fname,au_lname,phone from authors where au_id like '72[234]-%'
select type,sum(price),avg(price),count(*) from titles group by type having type in('business','psycheology')


簡單子查詢:嵌套子查詢、相關子查詢;子查詢的select語句中不能使用order by子句,roder by子句只能對最終查詢結果排序。
嵌套子查詢:執行過程,先執行子查詢,子查詢得到的結果不被顯示,而是傳給外層查詢,作為外層查詢的條件,然后執行外層查詢,并顯示結果。
嵌套子查詢的執行不依賴于外層查詢,子查詢只執行一次。
帶有比較運算符的子查詢,帶有in和not in的子查詢,帶有any或all的子查詢
相關子查詢:子查詢為外層查詢的每一行執行一次,外層查詢將子查詢引用的列的值傳給了子查詢。
相關子查詢的執行依賴于外層查詢,子查詢需要重復的執行。
帶有exists和not exists的相關子查詢。
多表聯接查詢:內聯接(inner join)、外聯接((left、right、full)outer join)、自聯接(self join)和交叉聯接(cross join)
在查詢上創建新表:select into語句首先創建一個新表,然后用查詢的結果填充新表。
表別名
select coursename from course where courseid in(select distinct courseid from grade where grade>10)
select studname from student where sudbirthday > any (select studbirthday from student where class = '信息系') and class<>'信息系'
select studname from student where exists (select * from grade where studid = student.studid and courseid = '01')
select stud1.* from student as stud1 join student as stud2 on stud2.studname = 'mm' and stud1.studsex = stud2.studsex
select * into girls from student where studsex='m'

4.視圖、索引和事務
視圖是由一個或多個數據表(基本表)導出的虛擬表或者查詢表,是關系數據庫系統提供給用戶以多種角度觀察數據庫中數據的重要機制。
視圖的好處:能夠簡化用戶的操作;視圖能夠對機密數據提供安全保護。
創建視圖時,視圖的名稱存在sysobjects表中。有關視圖中所定義列的信息添加到syscolumns表中,而有關視圖相關性的信息添加到sysdepends表中。另外,create view語句的文本添加到syscomments表中。
在通過視圖向表中插入數據時,如果insert語句列表中包含有視圖中沒有選擇的列和不允許為空值的列,這種操作是不允許的。
創建視圖:create view view_employee as select emp_id,fname,lname from employee
使用視圖:select * from view_employee
修改視圖:alter view view_employee as select emp_id,fname,job_id from employee where job_id>10
刪除視圖:drop veiw view_employee
查看視圖結構:exec sp_help view_employee
查看視圖定義信息:exec sp_helptext 'view_employee'

索引提供了一種基于一列或多列的值對表的數據行進行快速訪問的方法。索引提供的是表中得邏輯順序。
聚集索引基于數據行的鍵值在表內排序和存儲這些數據行。當數據表以某列為關鍵字建立聚集索引時,表中得數據行就以該列(聚集索引鍵)的排序次序進行存儲。每個表只能有一個聚集索引。
非聚集索引具有完全獨立于數據行的結構,一個表可以建立多個非聚集索引。
創建聚集索引:create clustered index studid_ind on stud(studid)
創建非聚集索引:create unique index studfullname_ind on stud(fname desc,lname)
刪除索引:drop index stud.studid_ind
查看stud表上得索引:exec sp_helpindex stud

事務是一種機制,是一個操作序列,它包含了一組數據庫操作命令,并且所有的命令作為一個整體一起向系統提交或撤銷操作請求。
事務的特性:原子性(Atomicity)、一致性(Consistenty)、隔離性(Isolation)、永久性(Durability)。
事務分類:顯示事務、隱性事務、自動提交事務。

視圖、索引和事務的創建、使用、修改和刪除

5.Transact—SQL編程
全局變量:由系統定義和維護,其名稱以@@字符開頭
局部變量:由用戶定義和賦值,其名稱以@字符開頭
輸出語句:print
邏輯控制語句:begin...end ;break ;case ;continue ; goto ; if...else ;return ; while
常用函數:行集函數,聚合函數,標量函數
轉換函數:convert(dt,e,s),cast()
數學函數:絕對值abs(n),向上取整ceiling(n),向下取整floor(n),指定次冪power(n,y),四舍五入round(n,length),求符號sign(n),平方根sqrt(n)
日期和時間函數:dateadd(datepart,num,date),datediff(datepart,date1,date2),datename(datepart,date),datepart(datepart,date),getdate(),year(date),month(date),day(date)
字符串函數:lower(e),upper(e),left(e,i),right(e,i),replace(s1,s2,s3)用3替換1中的2,replicate(e,i)重復指定次數,stuff(s1,start,length,s2)用2替換1中指定位置,substring(expression,start,length)
元數據函數:db_id('database_name'),db_name(datebase_id),object_id('obj_name'),object_name(obj_id),col_length('table','column'),col_name(table_id,col_id)
聚合函數:avg(expr),count(expr),count(*),max(expr),min(expr),sum(expr)
select au_lname,au_fname,contory =
case state
when 'ut' then 'utah'
when 'ca' then 'california'
else 'world'
end,city from authors order by state desc

while(select avg(price) from titles)<30
begin
update titles set price = price * 2
if(select max(price) from titles)>50 break
else continue
end
print '價格太高'

begin
insert into jobs values('a',80,234)
if @@error<>0 print '數據插入失敗'
else goto M
end
M:print '數據插入成功'

6.游標
游標是一種能從包含多條數據記錄的結果集中每次提取一條記錄的機制。將批操作變成行操作,對結果集中得某行進行操作。
declare author_csr cursor read_only for --定義只讀游標
select au_fname,au_lname from authors where state = 'ca' order by au_fname,au_lname
declare @lname varchar(20),@fname varchar(20) --定義變量
open author_csr --打開游標
fetch next from author_csr into @lname,@fname --執行一次數據讀取操作
while @@fetch_status=0 --循環游標讀取數據
begin
print 'author name:'+@lname+''+@fname
fetch next from author_csr into @lname,@fname
end
close author_csr --關閉游標
deallocate author_csr --釋放游標

7.存儲過程
存儲過程(stored procedure)類似c語言中的函數,是一組為了完成特定功能的SQL語句集,經編譯后存儲在數據庫中。用戶通過指定存儲過程的名字餅給出參數來執行它。
常用的系統存儲過程:sp_database,sp_helpdb,sp_renamedb,sp_tables,sp_column,sp_help,sp_helpconstraint,sp_helpindex,sp_stored_procedure,sp_password
創建存儲過程:
create procedure book_num (@book_name varchar(26),@starttime datetime,@endtime datetime,@total int output)
as
select @total=count(jy.askbookid) from book,jyls jy where bookname like @book_name and book.isbn=jy.isbn and jy.starttime>=@starttime and endtime<=@endtime
使用存儲過程:
declare @book_name char(26),@total int
set @book_name='面向對象分析和設計'
exec book_num @book_name,'2007-01-01','2007-11-01',@total output
select @book_name as bookname,@total as num

8.觸發器
觸發器是一種特殊類型的存儲過程,主要是通過實踐進行觸發而被執行。
觸發器的主要作用就是能夠實現由主鍵和外鍵所不能保證的復雜的參照完整性和數據的一致性。其他功能:強化約束,跟蹤變化,級聯運行,存儲過程調用。
SQL Server 2000支持兩種類型觸發器:
after觸發器:要求只有執行某一操作之后,觸發器才被執行,且只能在表上定義。
instead of觸發器:表示并不執行其所定義的操作,而僅是執行觸發器本身。既可以在表上定義,也可以在視圖上定義,但對同一操作只能定義一個instead of觸發器。

工作原理:
當觸發insert觸發器時,新的數據行就會被插入到觸發器表和inserted表中。觸發器通過檢查inserted表來確定是否執行觸發器動作或如何執行。
當在定義有觸發器的表上執行update語句時,原始行被移入到deleted表,更新行被移入inserted表。觸發器檢查deleted表和inserted表以及被更新的表,來確定是否更新了多行以及如何執行觸發器動作。
當觸發deleted觸發器后,從受影響的表中刪除的行將被放置到一個特殊的deleted表中。

create trigger update_smoke_t_sale on smoke_t_sale for update
as
declare @newsalenum int,@smokeproductname varchar(40)
select @newsalenum= salenum from inserted
select @smokeproductname=smokeproductname from inserted
if update(salenum) --判斷是否更新
begin
update smoke_t_sale set saletotalprice=@newsalenum * saleprice where smokeproductname=@smokeproductname
insert into smoke_log(logContent) values('更新成功')
end
else
print '未更新'

9.數據庫高級管理
SQL Server安全體系結構,4個等級:客戶機操作系統的安全性,SQL Server的登錄安全性,數據庫的使用安全性,數據對象的使用安全性
SQL Server驗證模式:windows身份驗證模式和混合模式(windows身份驗證和SQL Server身份驗證)
登錄賬戶:用戶登錄(連接)SQL Server服務器的賬戶和密碼。
角色管理:服務器角色(負責管理和維護SQL Server的組);數據庫角色(是對某個數據庫具有相同訪問權限的用戶賬戶和組的集合)
數據庫用戶:對于每個要求訪問數據庫的登錄賬戶,必須在要訪問的數據庫中建立該數據庫的訪問賬戶,且與其登錄賬戶鏈接關聯,才可進入該數據庫訪問。
權限管理:是指用戶是否能進行訪問數據庫資源的相應操作。權限包括:語句權限、對象權限和暗示權限。

授予權限:
grant 語句 [...] to 安全賬戶[...]
grant 權限 [...] on 表或視圖[(列[,...])]|on 存儲過程|on用戶自定義函數 to 安全賬戶[,...]
拒絕權限:
deny 語句 [...] to 安全賬戶[...]
deny 權限 [...] on 表或視圖[(列[,...])]|on 存儲過程|on用戶自定義函數 to 安全賬戶[,...]
撤銷權限:
revoke 語句 [...] from 安全賬戶[...]
revoke 權限 [...] on 表或視圖[(列[,...])]|on 存儲過程|on用戶自定義函數 from 安全賬戶[,...]

備份和恢復:
數據庫備份設備,在進行數據庫備份之前,首先要創建備份設備。包括:磁盤、磁帶和命名管道
SQL Server 備份策略:只備份數據庫、備份數據庫和事務日志、差異備份。
backup database medicaldb to disk='medical_bk1' with description='medicaldb fullbackup' init
restore database medicaldb from medical_bk1

導入導出:
DTS(Data Transformation Service)是SQL Server提供的數據傳輸服務。使用戶可以將來自完全不同數據源的數據析取、轉換并合并到單個或多個目的。

分離與附加:創建可移動的數據庫。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品日韩欧美综合| 日韩av成人在线观看| 久久人人看视频| 亚洲精品国产精品久久清纯直播| 日韩美女在线看| 欧美黑人性生活视频| 1769国内精品视频在线播放| 亚洲电影免费观看高清| 国产精品视频久久久| 日韩中文字幕网站| 欧美成人中文字幕| 欧美精品免费看| 日韩一区二区三区国产| 国产精品美腿一区在线看| 亚洲黄色av女优在线观看| 欧美性猛交xxxx久久久| 欧美高清视频免费观看| 色婷婷久久一区二区| 亚洲国产一区二区三区在线观看| 国产精品18久久久久久麻辣| 亚洲最新中文字幕| 97久久伊人激情网| 欧美视频第一页| 亚洲美女免费精品视频在线观看| 91精品国产99久久久久久| 国产午夜精品视频免费不卡69堂| 91精品国产91久久久久久久久| 亚洲成人999| 一区二区三区高清国产| 久久99国产精品自在自在app| 久久久久久国产| 亚洲精品一区二区在线| 97超级碰在线看视频免费在线看| 国产成人精品999| 欧美性猛交丰臀xxxxx网站| 中文字幕av一区二区| 91亚洲精品在线观看| 色先锋资源久久综合5566| 97久久精品人人澡人人爽缅北| 国产欧美精品一区二区三区-老狼| 国产精品久久久久久久久久三级| 日韩精品视频观看| 日韩av在线一区| 日韩大胆人体377p| 亚洲影院色在线观看免费| 亚洲精品一区二区久| 日韩精品高清在线观看| 黑人巨大精品欧美一区二区| 日韩视频免费中文字幕| 亚洲视频在线免费看| 久久久久久久久中文字幕| 精品久久久一区| 91久久精品美女高潮| 国产成人aa精品一区在线播放| 欧美日韩国产999| 在线播放日韩av| 久久精品国产久精国产思思| 亚洲国产精品电影在线观看| 亚洲精品美女在线观看播放| 国产一级揄自揄精品视频| 亚洲理论在线a中文字幕| 欧美激情欧美激情在线五月| 国产亚洲精品久久久久动| 66m—66摸成人免费视频| 久久久精品影院| 精品露脸国产偷人在视频| 久久天天躁夜夜躁狠狠躁2022| 国产精品爱啪在线线免费观看| 亲爱的老师9免费观看全集电视剧| 久久久噜噜噜久久| 国产精品美女www| 清纯唯美亚洲综合| 久久免费精品日本久久中文字幕| 国产免费久久av| 国产成人精品视频| 久久久国产精品x99av| 久久精品久久久久久| 福利微拍一区二区| 国产午夜精品免费一区二区三区| 欧美亚洲第一区| 国产香蕉精品视频一区二区三区| 精品久久久中文| 日韩av免费一区| 色噜噜亚洲精品中文字幕| 国产精品久久久久久久久男| 成人精品视频99在线观看免费| 亚洲欧美日韩国产中文| 久久综合九色九九| 国产精品wwwwww| 欧洲一区二区视频| 亚洲天堂免费观看| 精品久久久久久久久久ntr影视| 美女撒尿一区二区三区| 成人自拍性视频| 久久久久久久国产精品视频| 91视频8mav| 国内揄拍国内精品| 国产一区二区三区日韩欧美| 欧美中文在线观看| 国产精品pans私拍| 亚洲激情视频在线播放| 欧美中文在线观看国产| 亚洲国产欧美一区| 欧美小视频在线观看| 韩国三级电影久久久久久| 久久国产加勒比精品无码| 亚洲www在线| 日韩中文字幕在线免费观看| 日韩在线观看免费高清完整版| 久久久av亚洲男天堂| 国产精品视频内| 欧美午夜激情视频| 成人字幕网zmw| 日韩中文字幕在线| 久久精品免费播放| 久久五月天综合| 美女久久久久久久久久久| 国产精品三级网站| 亚洲一区二区三区久久| 久久影院资源网| 最近中文字幕2019免费| 国产原创欧美精品| 国产一区av在线| 国产一区二区三区四区福利| 久久国产精彩视频| 国产亚洲精品久久久久久牛牛| 欧美日韩国产丝袜另类| 久久久久九九九九| 青草青草久热精品视频在线观看| 亚洲人精选亚洲人成在线| 久久99精品国产99久久6尤物| 亚洲人成网站999久久久综合| 亚洲精品视频免费| 亚洲最大福利视频| 国产精品丝袜久久久久久高清| 日韩欧美成人免费视频| 欧美日韩亚洲精品内裤| 国产日韩欧美电影在线观看| 国产日本欧美在线观看| 久久久视频在线| 91免费看国产| 欧美—级a级欧美特级ar全黄| 欧洲中文字幕国产精品| 国产精品久久久久久久天堂| 久久在线免费观看视频| 久久这里有精品| 色偷偷av一区二区三区乱| 日韩av在线免播放器| 久久久免费在线观看| 欧美裸体男粗大视频在线观看| 亚洲成人精品av| 久久天堂电影网| 国产欧美日韩91| 一区二区三区四区精品| 日本人成精品视频在线| 亚洲美女免费精品视频在线观看| 欧美插天视频在线播放| 日韩精品免费一线在线观看| 国产精品一区专区欧美日韩| 日韩精品在线观看一区| 亚洲成人av片在线观看| 日韩视频免费看| 日韩美女av在线免费观看| 福利二区91精品bt7086|