激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

SQL學(xué)習教程

時(shí)間:2024-08-25 03:49:04 SQL 我要投稿
  • 相關(guān)推薦

關(guān)于SQL學(xué)習教程

  篇一:SQL學(xué)習教程

關(guān)于SQL學(xué)習教程

  SQL 簡(jiǎn)介SQL 是用于訪(fǎng)問(wèn)和處理數據庫的標準的計算機語(yǔ)言。什么是 SQL?? SQL 指結構化查詢(xún)語(yǔ)言 ? SQL 使我們有能力訪(fǎng)問(wèn)數據庫 ? SQL 是一種 ANSI 的標準計算機語(yǔ)言編者注:ANSI,美國國家標準化組織SQL 能做什么?? SQL 面向數據庫執行查詢(xún) ? SQL 可從數據庫取回數據 ? SQL 可在數據庫中插入新的紀錄 ? SQL 可更新數據庫中的數據 ? SQL 可從數據庫刪除記錄 ? SQL 可創(chuàng )建新數據庫 ? SQL 可在數據庫中創(chuàng )建新表 ? SQL 可在數據庫中創(chuàng )建存儲過(guò)程 ? SQL 可在數據庫中創(chuàng )建視圖 ? SQL 可以設置表、存儲過(guò)程和視圖的權限SQL 是一種標準 - 但是...SQL 是一門(mén) ANSI 的標準計算機語(yǔ)言, 用來(lái)訪(fǎng)問(wèn)和操作數據庫系統。 SQL 語(yǔ)句用于取回和更新數據庫中 的數據。 SQL 可與數據庫程序協(xié)同工作, 比如 MS Access、 DB2、 Informix、 MS SQL Server、 Oracle、 Sybase 以及其他數據庫系統。 不幸地是,存在著(zhù)很多不同版本的 SQL 語(yǔ)言,但是為了與 ANSI 標準相兼容,它們必須以相似的方式共 同地來(lái)支持一些主要的關(guān)鍵詞(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。 注釋?zhuān)撼?SQL 標準之外,大部分 SQL 數據庫程序都擁有它們自己的私有擴展!在您的網(wǎng)站中使用 SQL要創(chuàng )建發(fā)布數據庫中數據的網(wǎng)站,您需要以下要素:? RDBMS 數據庫程序(比如 MS Access, SQL Server, MySQL) ? 服務(wù)器端腳本語(yǔ)言(比如 PHP 或 ASP) ? SQL ? HTML / CSSRDBMS

  RDBMS 指的是關(guān)系型數據庫管理系統。 RDBMS 是 SQL 的基礎,同樣也是所有現代數據庫系統的基礎,比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。 RDBMS 中的數據存儲在被稱(chēng)為表(tables)的數據庫對象中。表是相關(guān)的數據項的集合,它由列和行組成。SQL 語(yǔ)法數據庫表一個(gè)數據庫通常包含一個(gè)或多個(gè)表。每個(gè)表由一個(gè)名字標識(例如“客戶(hù)”或者“訂單”)。表包含帶有數據 的記錄(行)。 下面的例子是一個(gè)名為 "Persons" 的表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing上面的表包含三條記錄(每一條對應一個(gè)人)和五個(gè)列(Id、姓、名、地址和城市)。SQL 語(yǔ)句您需要在數據庫上執行的大部分工作都由 SQL 語(yǔ)句完成。 下面的語(yǔ)句從表中選取 LastName 列的數據:SELECT LastName FROM Persons結果集類(lèi)似這樣:LastNameAdamsBush

  Carter 在本教程中,我們將為您講解各種不同的 SQL 語(yǔ)句。重要事項一定要記住,SQL 對大小寫(xiě)不敏感!SQL 語(yǔ)句后面的分號?某些數據庫系統要求在每條 SQL 命令的末端使用分號。在我們的教程中不使用分號。 分號是在數據庫系統中分隔每條 SQL 語(yǔ)句的標準方法,這樣就可以在對服務(wù)器的相同請求中執行一條以 上的語(yǔ)句。 如果您使用的是 MS Access 和 SQL Server 2000,則不必在每條 SQL 語(yǔ)句之后使用分號,不過(guò)某些 數據庫軟件要求必須使用分號。SQL DML 和 DDL可以把 SQL 分為兩個(gè)部分:數據操作語(yǔ)言 (DML) 和 數據定義語(yǔ)言 (DDL)。 SQL (結構化查詢(xún)語(yǔ)言)是用于執行查詢(xún)的語(yǔ)法。 但是 SQL 語(yǔ)言也包含用于更新、 插入和刪除記錄的語(yǔ)法。 查詢(xún)和更新指令構成了 SQL 的 DML 部分:? SELECT - 從數據庫表中獲取數據 ? UPDATE - 更新數據庫表中的數據 ? DELETE - 從數據庫表中刪除數據 ? INSERT INTO - 向數據庫表中插入數據SQL 的數據定義語(yǔ)言 (DDL) 部分使我們有能力創(chuàng )建或刪除表格。我們也可以定義索引(鍵),規定表之 間的鏈接,以及施加表間的約束。 SQL 中最重要的 DDL 語(yǔ)句:? CREATE DATABASE - 創(chuàng )建新數據庫 ? ALTER DATABASE - 修改數據庫 ? CREATE TABLE - 創(chuàng )建新表 ? ALTER TABLE - 變更(改變)數據庫表 ? DROP TABLE - 刪除表 ? CREATE INDEX - 創(chuàng )建索引(搜索鍵) ? DROP INDEX - 刪除索引

  SQL SELECT 語(yǔ)句SQL SELECT 語(yǔ)句SELECT 語(yǔ)句用于從表中選取數據。結果被存儲在一個(gè)結果表中(稱(chēng)為結果集)。SQL SELECT 語(yǔ)法 SELECT 列名稱(chēng) FROM 表名稱(chēng)以及:SELECT * FROM 表名稱(chēng)注釋?zhuān)篠QL 語(yǔ)句對大小寫(xiě)不敏感。SELECT 等效于 select。SQL SELECT 實(shí)例如需獲取名為 "LastName" 和 "FirstName" 的列的內容(從名為 "Persons" 的數據庫表),請使用 類(lèi)似這樣的 SELECT 語(yǔ)句:SELECT LastName,FirstName FROM Persons"Persons" 表: Id LastName FirstName Address City1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing結果: LastName FirstNameAdamsJohnBushGeorge CarterThomasSQL SELECT * 實(shí)例現在我們希望從 "Persons" 表中選取所有的列。 請使用符號 * 取代列的名稱(chēng),就像這樣:SELECT*FROM Persons提示:星號(*)是選取所有列的快捷方式。結果: Id LastName FirstName Address City1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing在結果集(result-set)中導航由 SQL 查詢(xún)程序獲得的結果被存放在一個(gè)結果集中。大多數數據庫軟件系統都允許使用編程函數在結果 集中進(jìn)行導航, 比如: Move-To-First-Record、 Get-Record-Content、 Move-To-Next-Record 等等。SQL SELECT DISTINCT 語(yǔ)句SQL SELECT DISTINCT 語(yǔ)句在表中,可能會(huì )包含重復值。這并不成問(wèn)題,不過(guò),有時(shí)您也許希望僅僅列出不同(distinct)的值。 關(guān)鍵詞 DISTINCT 用于返回唯一不同的值。語(yǔ)法:SELECT DISTINCT 列名稱(chēng) FROM 表名稱(chēng)使用 DISTINCT 關(guān)鍵詞如果要從 "Company" 列中選取所有的值,我們需要使用 SELECT 語(yǔ)句:SELECT Company FROM Orders

  篇二:如何學(xué)習SQL

  如何學(xué)習SQL

  在論壇中不斷看到有新人問(wèn)一些基礎的問(wèn)題。于是抽空整理了本帖,希望對新人有所幫助。

  本文無(wú)意取代任何一本數據庫或SQL的參考書(shū),主要是提供一點(diǎn)學(xué)習方向的指導和技術(shù)心得的分享。地圖和指南針并不能代替其它的野營(yíng)工具,經(jīng)驗和心得也只能來(lái)自于親身走過(guò)的旅途。

  本文主要以SQL Server 2005的T-SQL為示例,但原理并不局限于這一平臺。

  由于全文過(guò)長(cháng),故拆分成四部分發(fā)帖:

  Table of Content

  第一部分:SQL基礎

  1. 為什么學(xué)習SQL

  2. 學(xué)習SQL的參考資料

  3. 幾組基本概念

  3.1. 單機數據庫與服務(wù)器級數據庫

  3.2. 服務(wù)器(Server)與客戶(hù)端(Client)

  3.3. 數據庫(DB)與數據庫管理系統(DBMS)

  3.4. SQL與SQL方言(dialect)

  3.5. 語(yǔ)句、表達式和斷言

  4. SQL不同于一般編程語(yǔ)言的地方

  4.1. SQL操作的是數據

  4.2. SQL是基于集合的說(shuō)明式語(yǔ)言

  5. SQL的三個(gè)子集

  第二部分:從關(guān)系角度理解SQL

  6. 從關(guān)系角度理解SQL

  6.1. 關(guān)系和表

  6.2. 關(guān)系模型

  6.3. 關(guān)系運算

  6.4. 數據查詢(xún) 6.5. 數據修改

  6.6. 表的邏輯含義

  第三部分:SQL數據類(lèi)型與三值邏輯

  7. 數據類(lèi)型

  8. NULL與三值邏輯

  第四部分:DBMS擴展功能與SQL高級話(huà)題

  9. DBMS提供的擴展功能

  9.1. 控制流

  9.2. 動(dòng)態(tài)語(yǔ)句

  9.3. DBMS支持的數據庫對象

  9.4. DBMS提供的系統函數、系統視圖和系統存儲過(guò)程

  9.5. DBMS提供的工具

  10. 高級話(huà)題

  第一部分:SQL基礎

  1. 為什么學(xué)習SQL

  自人類(lèi)社會(huì )形成之日起,社會(huì )的運轉就在不斷地產(chǎn)生和使用各種信息(文獻、檔案、資料、數據等);在如今所謂的信息時(shí)代,由于計算機和互聯(lián)網(wǎng)的作用,信息的產(chǎn)生和使用達到前所未有的廣度和深度。如何管好和用好信息,是(而且將一直是)IT行業(yè)一塊重要的領(lǐng)域。 在過(guò)去幾十年中,關(guān)系數據庫一直在這一領(lǐng)域占主導地位,而建立在關(guān)系理論基礎之上的SQL也成為數據庫領(lǐng)域的既定標準。

  目前的數據存儲領(lǐng)域可稱(chēng)為三分天下:

  a. 少量數據的存儲:

  自定義數據文件或通用數據文件(單機數據庫),通過(guò)自定義接口或通用API訪(fǎng)問(wèn)數據。如需要存儲數據的單機軟件或小型的動(dòng)態(tài)網(wǎng)站。

  b. 對一致性要求高的大量數據的存儲:

  關(guān)系數據庫管理系統(RDBMS)。如各種傳統的信息系統(ERP、CRM、HRMS、MIS等)。

  c. 對并發(fā)性要求高的大量數據的存儲:

  NoSQL數據庫系統。如Web2.0網(wǎng)站的后臺數據系統。

  以上,“狐假虎威”地借數據存儲的重要性來(lái)闡述了一番學(xué)習SQL的偉大意義。但重要的是,對SQL善于做什么和不善于做什么有個(gè)清楚的認識。

  2. 學(xué)習SQL的參考資料

  不久前整理了數據庫圖書(shū)ABC一文,對數據庫相關(guān)的參考資料作了粗略的分類(lèi)。

  對于初學(xué)者而言,可以結合著(zhù)《數據庫系統概念(第5版)》一書(shū)和某個(gè)DBMS平臺的入門(mén)技術(shù)手冊練習,自行尋找或構思一個(gè)小需求,建一個(gè)數據庫,創(chuàng )建幾個(gè)表和視圖,練習寫(xiě)查詢(xún)和修改語(yǔ)句;A理論和技術(shù)實(shí)踐可以相互促進(jìn)。

  3. 幾組基本概念

  3.1. 單機數據庫與服務(wù)器級數據庫

  單機數據庫(如sqlite、Access等,Excel也勉強可以算是)是應用于單個(gè)計算機的數據庫引擎,通常不具備網(wǎng)絡(luò )連接功能,適用于小型應用;程序部署時(shí),一般只需要附帶數據文件即可。有時(shí)也稱(chēng)作桌面數據庫。

  服務(wù)器級數據庫(如Oracle、DB2、SQL Server、MySQL、PostgreSQL等)是具備網(wǎng)絡(luò )連接功能、可作為單獨數據庫服務(wù)器的DBMS,適用于大型信息系統;程序部署時(shí),需要專(zhuān)門(mén)安裝相應的DBMS,甚至要單獨進(jìn)行數據庫服務(wù)器的架構設計。此類(lèi)數據庫是我們討論的重點(diǎn)。

  3.2. 服務(wù)器(Server)與客戶(hù)端(Client)

  數據庫服務(wù)器是運行在一臺主機(Host)(或主機集群)上的服務(wù)程序,維護著(zhù)一個(gè)或多個(gè)數據庫,并通過(guò)網(wǎng)絡(luò )連接響應數據庫客戶(hù)端提交的SQL語(yǔ)句。

  數據庫客戶(hù)端是向數據庫服務(wù)器發(fā)送查詢(xún)請求的應用程序,可能是DBMS的GUI管理界面或命令行應用程序,也可能是前端的Web服務(wù)器。數據庫客戶(hù)端和數據庫服務(wù)器可能是在同一臺主機上,但更多情況下則是位于不同的主機上,通過(guò)局域網(wǎng)訪(fǎng)問(wèn)。

  例如對于SQL Server來(lái)說(shuō),一個(gè)服務(wù)器實(shí)例(Instance)即是一個(gè)數據庫服務(wù)器,一臺主機上可以安裝多個(gè)服務(wù)器實(shí)例;而查詢(xún)分析器或SSMS、sqlcmd、以及連接數據庫服務(wù)器的IIS,都是數據庫客戶(hù)端。

  比如你在SSMS中備份/還原/附加一個(gè)數據庫,或是通過(guò)xp_cmdshell執行一個(gè)命令程序,所操作的都是你所連接的數據庫服務(wù)器所在主機的文件,而不是你運行SSMS數據庫客戶(hù)端所在主機的文件。

  一臺主機有時(shí)候會(huì )被稱(chēng)作一臺(操作系統)服務(wù)器,而數據庫服務(wù)器和Web服務(wù)器都是運行在主機之上的應用服務(wù)器。它們都被稱(chēng)作服務(wù)器,不要因此搞混了。

  一個(gè)典型的基于SQL Server的網(wǎng)站系統的架構示例如下:

  用戶(hù)瀏覽器(Web Client) <----> IIS(Web Server/DB Client) <----> SQL Server(DB Server)

  3.3. 數據庫(DB)與數據庫管理系統(DBMS)

  “數據庫”這個(gè)詞已經(jīng)被濫用,可能用來(lái)指一個(gè)數據系統(如中國移動(dòng)的號碼數據庫),可能用來(lái)指一種數據存儲技術(shù)(如關(guān)系數據庫和NoSQL數據庫),還可能用來(lái)指DBMS(如人們常說(shuō)SQL Server是數據庫軟件)。這種混亂已然形成,恐怕難以改變(比如上文的描述即是如此)。我們只能根據上下文來(lái)判斷具體含義。

  按最狹義的技術(shù)含義,數據庫(Database)是指位于一個(gè)數據庫服務(wù)器實(shí)例上的一個(gè)庫,而DBMS則是指類(lèi)似SQL Server、Oracle等等此類(lèi)軟件。初學(xué)者要注意這些概念之間的差別。論壇上常常見(jiàn)到這樣的帖子:“連不上數據庫”、“數據庫打不開(kāi)了”,又沒(méi)有上下文,可見(jiàn)發(fā)問(wèn)者概念混亂,搞得解答者也是一頭霧水。

  3.4. SQL與SQL方言(dialect)

  SQL是一個(gè)關(guān)系數據庫查詢(xún)語(yǔ)言的標準,而SQL方言則是各種DBMS在SQL標準上進(jìn)行的擴展,如增加新的關(guān)鍵字、查詢(xún)功能、特有的數據類(lèi)型、支持過(guò)程化的控制流語(yǔ)句等。例如SQL Server的T-SQL和Oracle的PL/SQL都是常見(jiàn)的SQL方言。

  這就好比ANSI C標準與各種編譯器實(shí)現的C語(yǔ)言的差別。但不同SQL方言之間的差異遠大于不同C編譯器之間的差異。SQL方言之間的差異,對于跨DBMS的學(xué)習和開(kāi)發(fā),都是必須注意的。

  3.5. 語(yǔ)句、表達式和斷言

  語(yǔ)句(statement)是SQL中一個(gè)可以單獨執行的單元。如SELECT * FROM table;即是一個(gè)語(yǔ)句,其中包含了SELECT子句(clause)和FROM子句。SQL標準規定用分號作為語(yǔ)句的結束,但在目前的T-SQL中,語(yǔ)句結束的分號是可選的。

  表達式(expression)是SQL中的一個(gè)值(可能是變量、常量、查詢(xún)字段或計算結果),對應一種特定的數據類(lèi)型。SQL中的表達式分為標量表達式和表值表達式,其中表值表達式作為單獨語(yǔ)句則是SELECT語(yǔ)句,作為語(yǔ)句的一部分則稱(chēng)為子查詢(xún)。比如0, col + 2, DATEADD(second, 30, GETDATE())都是(標量)表達式。

  需要特別說(shuō)明的是,SQL中的CASE WHEN是標題表達式,而不是條件語(yǔ)句。比如CASE WHEN中可以使用表達式,卻不能使用語(yǔ)句;CASE WHEN的結果是一個(gè)特定數據類(lèi)型的標量值;CASE WHEN可以用在SELECT、GROUP BY或ORDER BY子句中,但IF ELSE則不行。

  是SQL中進(jìn)行比較的結果,即真值,可理解為布爾表達式,因為SQL中沒(méi)有bool數據類(lèi)型,所以將斷言特別從表達式中區分出來(lái)。比如1是一個(gè)標量表達式,而1 = 1則是一個(gè)斷言,后者可以用在WHERE、ON、HAVING、CHECK等需要真值條件的地方,但前者則不可以。由于NULL的存在,SQL中的斷言是三值邏輯,即True/False/Unknown,詳見(jiàn)下文“NULL與三值邏輯”。

  下文中多次用到計算和比較兩個(gè)詞。表達式和表達式進(jìn)行計算,結果是新的表達式;表達式和表達式進(jìn)行比較,結果是一個(gè)斷言;斷言和斷言可以進(jìn)行邏輯運行(AND/OR/NOT),結果是新的斷言。注意其中的區別。

  4. SQL不同于一般編程語(yǔ)言的地方

  4.1. SQL操作的是數據

  SQL是數據庫的查詢(xún)語(yǔ)言,因而可以對系統數據產(chǎn)生持久化影響。在常規編程中,一個(gè)錯誤通常只會(huì )造成程序的crash或bug,修改并重新調試往往就可以了;而在SQL中,一個(gè)不小心就可能造成系統數據的破壞和丟失。常常有新手執行SQL時(shí),不小心遺漏了DELETE或UPDATE語(yǔ)句中的WHERE子句,這往往是很大的麻煩。

  篇三:sql server學(xué)習總結

  篇四:SQL_Server_2008數據庫學(xué)習

  SQL Server 2008數據庫—創(chuàng )建、建表、查詢(xún)語(yǔ)句

  一、創(chuàng )建數據庫

  1、利用對象資源管理器創(chuàng )建用戶(hù)數據庫:

 。1)選擇“開(kāi)始”—“程序”—Microsoft SQL Server 2008—SQL Server Management Studio命令,打開(kāi)SQL Server Management Studio。

 。2)使用“Windows身份驗證”連接到SQL Server 2008數據庫實(shí)例。

 。3)展開(kāi)SQL Server 實(shí)例,右擊“數據庫”,然后人彈出的快捷菜單中選擇“新建數據庫存”命令,打開(kāi)“新建數據庫”對話(huà)框。

 。4)在“新建數據庫”對話(huà)框中,可以定義數據庫的名稱(chēng)、數據庫的所有者、是否使用全文索引、數據文件和日志文件的邏輯名稱(chēng)和路徑、文件組、初始大小和增長(cháng)方式等。輸入數據庫名稱(chēng)student。

  二、創(chuàng )建數據表

  1、利用表設計器創(chuàng )建數據表:

 。1)啟動(dòng)SQL Server Management Studio,連接到SQL Server 2008數據庫實(shí)例。

 。2)展開(kāi)SQL Server實(shí)例,選擇“數據庫”—student—“表”,單擊鼠標右鍵,然后從彈出的快捷菜單中選擇“新建表”命令,打開(kāi)“表設計器”。

 。3)在“表設計器”中,可以定義各列的名稱(chēng)、數據類(lèi)型、長(cháng)度、是否允許為空等屬性。

 。4)當完成新建表的各個(gè)列的屬性設置后,單擊工具欄上的“保存”按鈕,彈出“選擇名稱(chēng)”對話(huà)框,輸入新建表名stu_info,SQL Server數據庫引擎會(huì )依據用戶(hù)的設置完成新表的創(chuàng )建。

  2、利用SQL語(yǔ)句創(chuàng )建數據表:

  在SQL Server Management Studio中,單擊標準工具欄的“新建查詢(xún)”按鈕,啟動(dòng)SQL編輯器窗口

  例如:

  Create table stu_info(

  stu_id 10)not null,

  name nvar20)not null,

  birthday date null,

  sex n2)null,

  address nvar20)null,

  mark int null,

  major nvar20)null,

  sdept nvar20)null

  );

  3、樣本數據庫student表數據:

  學(xué)生信息表(stu_info)

  :

  課程信息表(course_info):

  學(xué)生成績(jì)表(stu_grade)

  :

  create table stu_info

  ( stu_id 10)primary key not null,

  name nvar20) not null,

  birthday date,

  sex n1) default'男',

  address nvar20),

  mark smallint,

  major nvar20),

  sdept nvar20)

  );

  create table cou_info

  (course_id 3) not null primary key,

  course_name nvar20) not null,

  course_type nvar2) default'考試',

  course_mark tinyint ,

  course_time 2),

  );

  create table stu_grade

  (stu_id 10) not null ,

  course_id 3) not null ,

  grade int

  primary key (stu_id,course_id),

  foreign key (stu_id)references stu_info(stu_id),

  foreign key (course_id)references cou_info(course_id)

  );

  

  into stu_info(stu_id,name,birthday,sex,address ,mark,major,sdept)

  values('2007070101','張元','1985-10-09','男','河南鄭州','576','計算機科學(xué)與技術(shù)','信息學(xué)院'), ('2007070102','張紅','1985-01-14','女','河南開(kāi)封','565','計算機科學(xué)與技術(shù)','信息學(xué)院'), ('2007070103','王明','1986-07-08','男','河南洛陽(yáng)','570','計算機科學(xué)與技術(shù)','信息學(xué)院'), ('2007070104','李偉','1986-03-11','男','河南鄭州','564','計算機科學(xué)與技術(shù)','信息學(xué)院'), ('2007070201','鄭瀾','1985-12-01','女','河南平頂山','567','電子商務(wù)','信息學(xué)院'), ('2007070202','趙恒','1986-02-02','男','河南周口','566','電子商務(wù)','信息學(xué)院'), ('2007070203','張蘭','1986-04-06','女','河南許昌','571','電子商務(wù)','信息學(xué)院'), ('2007080101','李偉','1985-09-12','男','河南鄭州','578','會(huì )計學(xué)','會(huì )計學(xué)院'),

  ('2007080102','錢(qián)麗','1985-11-23','女','河南安陽(yáng)','573','會(huì )計學(xué)','會(huì )計學(xué)院'),

  ('2007080201','孫楠','1986-11-19','男','河南南陽(yáng)','578','財務(wù)管理','會(huì )計學(xué)院');

  into cou_info(course_id,course_name,course_type,course_mark,course_time)

  values('701','計算機基礎','考試','3','50'),

  ('702','操作系統','考試','4','50'),

  ('703','計算機網(wǎng)絡(luò )','考試','4','50'),

  ('704','數據庫原理','考查','3','50'),

  ('706','java','考查','3','40'),

  ('801','宏觀(guān)經(jīng)濟學(xué)','考試','4','50'),

  ('802','初級會(huì )計','考試','4','50'),

  ('803','財政學(xué)','考試','3','50'),

  ('804','會(huì )計電算化','考查','3','');

  

  into stu_grade(stu_id,course_id,grade)

  values('2007070101','701','75'),

  ('2007070101','702','81'),

  ('2007070101','703','96'),

  ('2007070101','701','85'),

  ('2007070102','702','74'),

  ('2007070102','701','55'),

  ('2007070103','701','35'),

  ('2007070104','702','88'),

  ('2007070104','701',''),

  ('2007080101','802','91'),

  ('2007080101','801','87'),

  ('2007080102','802','50'),

  ('2007080102','803','75'),

  ('2007080201','804','82');

  alter table stu_info add memo nvar200);

  alter table cou_info add unique (course_name) ;

  alter table stu_grade

  add check(grade>=0 and grade<=100);

  alter table stu_grade

  add constraint stu_score foreign key(stu_id)references stu_info(stu_id);  stu_info ;

   cou_info ;

   stu_grade;

  create table stu_info

  ( stu_id 10)primary key not null,

  name nvar20) not null,

  birthday date,

  sex n1) default'男',

  address nvar20),

  mark smallint,

  major nvar20),

  sdept nvar20)

  );

  create table cou_info

  (course_id 3) not null primary key,

  course_name nvar20) not null,

  course_type nvar2) default'考試',

  course_mark tinyint ,

  course_time 2),

  );

  create table stu_grade

  (stu_id 10) not null ,

  course_id 3) not null ,

  grade int

  primary key (stu_id,course_id),

  foreign key (stu_id)references stu_info(stu_id),

  foreign key (course_id)references cou_info(course_id)

  );

  alter table stu_info

  add code 18)not null;

  alter table stu_info

  add unique(code);

  alter table stu_info

  drop constraint UQ__stu_info__357D4CF932E0915F

  go

  alter table stu_info

  drop column code

  go

  alter table stu_info

  add check(sex ='男'or sex ='女');

  alter table cou_info

  add pre_course_id 3);

  alter table cou_info

  add foreign key(pre_course_id) references cou_info(course_id); stu_info

  set address='河南洛陽(yáng)'

  where stu_id='2007070101';

  stu_grade

  set grade=1.1*grade

  where grade<60;

  

  from stu_grade

  where grade<60;

  stu_info

  set sdept='會(huì )計學(xué)院'

  where stu_id='2007070102';

  stu_grade

  set grade=null

  where grade<60;

  

  from stu_info

  where address='河南洛陽(yáng)';

  

  from stu_grade

  where '張元'=

  (select name

  from stu_info

  where stu_info.stu_id=stu_grade.stu_id

  );

  select *

  from stu_info;

  select*

  from stu_grade;

  select name,sex,address,sdept

  from stu_info

  where stu_id='2007070103';

  select stu_id 學(xué)號,name 姓名,sdept 院系

  from stu_info

  where sex='女';

  篇五:SQL Server 2008 學(xué)習筆記

  SQL Server 2008 學(xué)習筆記

  目錄

  一、SQL Server 2008 學(xué)習筆記(一) 數據庫系統的基本結構 ........................................1

  二、SQL Server2008 學(xué)習筆記(二)關(guān)系數據庫 ..............................................................3

  三、SQL Server2008 學(xué)習筆記(三) 數據庫管理 .............................................................6

  四、SQL Server2008學(xué)習筆記(四)數據表的基本操作(上) ................................ 11

  五、sql server2008 學(xué)習筆記 小插曲 ....................................................................... 15

  據庫系統的基本結構 在寫(xiě)我的第一篇筆記之前,先廢話(huà)幾句,最近打算學(xué)習一段時(shí)間的數據庫知識并打算把我的讀書(shū)心得晾出來(lái)和大家分享一下,希望感興趣的園友能能夠一起探討,共同提高。有理解的不對的地方也歡迎各位大牛拍磚,這年頭不為別的,就為了能掌握點(diǎn)真理!

  廢話(huà)說(shuō)完了,開(kāi)始今天的正文。

  首先來(lái)上一張圖片,了解一下數據庫系統的基本結構

  下面我想用一個(gè)簡(jiǎn)單的比喻來(lái)描述一下數據庫系統的基本結構。

  數據庫系統=====》倉儲中心

  數據庫========》倉儲中心的貨場(chǎng)或者是倉庫

  數據=========》存儲在貨場(chǎng)或者是倉庫中的貨物

  數據庫管理系統===》在倉儲中心一系列的管理體制規則下的倉庫自動(dòng)化管理系統

  數據庫管理員====》倉庫的庫管員

  應用系統======》倉儲中心對外的服務(wù)窗口

  操作系統======》公司或者集團,是一個(gè)基礎環(huán)境的作用

  這樣就可以將數據庫系統的運行描述為一個(gè)倉儲中心的運轉。

  當有客戶(hù)(用戶(hù))來(lái)倉儲中心(數據庫系統)存/取貨物的時(shí)候,客戶(hù)(用戶(hù))首先要接觸的是倉儲中心的對外服務(wù)窗口(軟件系統),服務(wù)窗口會(huì )對客戶(hù)(用戶(hù))的身份進(jìn)行驗證,出示證件或其他的一些方式和方法?蛻(hù)(用戶(hù))身份驗證通過(guò)之后就可以進(jìn)行通過(guò)服務(wù)窗口索取服務(wù)(發(fā)出一些命令)來(lái)傳給倉庫的自動(dòng)化管理系統(DBMS)會(huì )對這些命令再一次進(jìn)行驗證,驗證通過(guò)就提供相應的服務(wù)(返回相應的結果),驗證失敗會(huì )拒絕服務(wù)(返回一個(gè)錯誤)。在這個(gè)過(guò)程中,客戶(hù)(用戶(hù))不需要了解你想要的貨物放在倉庫(數據庫)的具體位置,這么多的貨物(數據)究竟是怎樣的一個(gè)組織結構。同樣的一個(gè)倉庫或者是貨場(chǎng)怎么才能更有效率的想客戶(hù)(用戶(hù))提供服務(wù),怎樣才能存放更多的貨物,這些都是倉庫管理員(數據庫管理員)應該做的事情。

  關(guān)于數據庫系統的幾點(diǎn)說(shuō)明

  1、(數據庫)DB和(數據庫管理系統)DBMS:數據庫和數據庫管理系統是兩個(gè)不同的概念。數據庫是數據存儲的倉庫,是一個(gè)實(shí)體,能夠合理的存放數據的地方。數據庫管理系統是一種操縱和管理數據庫的大型軟件,用于建立、使用和維護數據庫,它對數據庫進(jìn)行統一的管理和控制,以保證數據庫的安全性和完整性。我們通常說(shuō)的oracle、sql server、mysql、db2屬于DBMS的范疇。

  2、數據庫系統中數據的模型:層次模型、網(wǎng)狀模型、關(guān)系模型。我們通常所說(shuō)的關(guān)系型數據庫就是根據數據模型來(lái)劃分的。

  3、數據庫管理系統是數據庫系統的核心,對數據庫的一切操作,如原始數據的裝入、檢索、更新、再組織等等,都是在DBMS的指揮、調度下進(jìn)行的,它是用戶(hù)與物理數據庫之間的橋梁,根據用戶(hù)的命令對數據庫執行必要的操作。

  4、由于數據庫管理系統(DBMS)的核心作用,所以我們學(xué)習數據庫的時(shí)候主要還是學(xué)習的是數據庫管理系統(DBMS)。

  5、在實(shí)際的使用過(guò)程中我們一般不關(guān)心數據的物理結構只關(guān)心數據的邏輯結構,這就得借助于功能強大的數據庫管理系統(DBMS)

  數據庫 關(guān)系數據庫(Relational Database ,RDB)基于關(guān)系模型的數據庫。是現代最流行的數據管理系統中應用最為普遍的一種,也是最有效率的數據組織方式之一。

  理解關(guān)系數據庫可以從兩方面進(jìn)行理解:

  1、關(guān)系數據庫是有由行與列構成的二維表表之間的關(guān)聯(lián)組成

  2、表的關(guān)聯(lián)。表的關(guān)聯(lián)的好處就是無(wú)需將相同的數據重復的進(jìn)行存儲,降低了數據的冗余度。 術(shù)語(yǔ)

  鍵碼(key):在關(guān)系中用來(lái)標識行的一列或者是多列

  主關(guān)鍵字(Primary Key):是表行的唯一標識的候選關(guān)鍵字。這里需要注意的地方是,一個(gè)表只有一個(gè)關(guān)鍵字;主關(guān)鍵字可以由一個(gè)或者是多個(gè)字段組成,分別稱(chēng)為單段主鍵和多段主鍵

  候選關(guān)鍵字(Candidate Key):唯一標識表中的一行而又不包含多余屬性的一個(gè)屬性集 公共關(guān)鍵字(Common Key):兩個(gè)數據表中具有相同或者是相容的屬性或者是屬性組,那么這個(gè)屬性或屬性組就稱(chēng)之為關(guān)系的公共關(guān)鍵字

  外關(guān)鍵字(Foreign Key):外關(guān)鍵字存在于公共關(guān)鍵字的基礎之上。在公共關(guān)鍵字中如果這個(gè)公共關(guān)鍵字在其中的一個(gè)數據表中是主關(guān)鍵字那么這個(gè)公共關(guān)鍵字就稱(chēng)之為另一個(gè)表的外關(guān)鍵字。

  范式理論

  目前關(guān)系數據庫有六種范式,而在實(shí)際設計數據庫的時(shí)候,通常用到的是前三種范式

  1NF

  a)數組的每個(gè)屬性只能包含一個(gè)值

  b)關(guān)系中的每個(gè)數組必須包含相同數量的值

  c)關(guān)系中每一個(gè)數組一定不能相同

  反例

  如果符合1NF則修改如下

  2NF 滿(mǎn)足第一范式的基礎上,數據表中的任何一個(gè)非主鍵字段的數據都依賴(lài)于該數據表中的主關(guān)鍵字。

  若滿(mǎn)足2NF則需要將上面的表分拆為一下兩個(gè)表:

  3NF

  在滿(mǎn)足第二范式的基礎上,滿(mǎn)足第三范式的條件是數據表中的任何兩個(gè)非關(guān)鍵字段的數據值之間不存在函數依賴(lài)關(guān)系。

  這個(gè)范式比較容易理解就不拿例子來(lái)解釋了。

  這樣做有什么好處嗎?答案是肯定的哈。沒(méi)有無(wú)緣無(wú)故的愛(ài)和恨,呵呵。

  1、節約存儲空間

  2、避免的數據變動(dòng)時(shí)發(fā)生人為的錯誤

  E-R模型

  1、實(shí)體模型

  怎么樣理解這樣的一個(gè)概念呢。通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)解釋這樣的一個(gè)概念。

  這就是一個(gè)實(shí)體集

【SQL學(xué)習教程】相關(guān)文章:

關(guān)于sql多條件多字段排序的教程10-23

oracle的sql語(yǔ)句01-21

SQL優(yōu)化大全09-09

學(xué)習簡(jiǎn)單的踢踏舞教程06-17

SQL查詢(xún)語(yǔ)句大全10-24

SQL語(yǔ)句的理解原則10-05

PHP防止SQL注入的例子09-25

mysql SQL語(yǔ)句積累參考10-02

執行sql原理l分析05-12

SQL中的單記錄函數08-12

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频