資料庫複習⑦

来源:http://www.cnblogs.com/zpfbuaa/archive/2016/06/18/5596903.html
-Advertisement-
Play Games

資料庫複習⑦ 2016年6月18日 20:03 Main DDL & DML & Views 數據定義語言、數據操縱語言、視圖 DDL數據定義語言 1.聲明一個關係表和刪除一個關係表 Simplest form is: CREATE TABLE <name> ( <list of elements> ...


資料庫複習⑦

2016年6月18日

20:03

Main DDL & DML & Views 數據定義語言、數據操縱語言、視圖

=============DDL數據定義語言=============

1.聲明一個關係表和刪除一個關係表

Simplest form is:

CREATE TABLE <name> (

<list of elements>

);

And you may remove a relation from the database schema by:

DROP TABLE <name>;

常用的數據類型:

INT

REAL or FLOAT

CHAR(n) = 定長字元串有n個字元

VARCHAR(n) = 變長字元串最多有n個字元

DATE: 'yyyy-mm-dd'

TIME:'hh:mm:ss'

一個關係表中最多有一個PRIMARY KEY主鍵但是UNIQUE屬性列可以有多個;

主鍵要求非空NULL,UNIQUE 可以有NULL值存在

2.向已有表中添加屬性列

ALTER TABLE<name> ADD

<attribute declaration>

舉例說明:

ALTER TABLE Bars ADD

phone CHAR(16)DEFAULT ‘unlisted’;

3.刪除某一屬性列

ALTER TABLE<name>

DROP <attribute>

舉例說明: ALTER TABLE Bars DROP license;

==========================================

=============DML數據操縱語言=============

4.插入一個或多個元組值 Insert

INSERT INTO <relation>

VALUES (<list of values>);

舉例說明:

clip_image002

clip_image004

5.刪除滿足某些條件的元組

DELETE FROM <relation>

WHERE <condition>;

clip_image006

刪除所有元組 Delete all Tuples

DELETE FROM <relation>

clip_image008

6.更新關係表

更新某些元組值語句:

UPDATE <relation>

SET <list of attribute assignments>

WHERE <condition on tuples>

clip_image010

更新多個元組值:

clip_image012

==========================================

=================Views 視圖================

7.創建視圖

CREATE VIEW <name> AS <query>;

舉例說明:

clip_image014

使用視圖進行相關查詢操作

clip_image016

8.使用視圖進行查詢操作

視圖其實就是關係表,不過視圖並不在物理空間上存儲。

clip_image018

使用上述視圖進行查詢操作:

clip_image020

clip_image022

9.更新視圖

(1)若視圖的欄位是來自欄位表達式或常數,則不允許對此視圖執行INSERT、UPDATE操作,允許執行DELETE操作;

(2)若視圖的欄位是來自庫函數,則此視圖不允許更新;

(3)若視圖的定義中有GROUP BY子句或聚集函數時,則此視圖不允許更新;

(4)若視圖的定義中有DISTINCT任選項,則此視圖不允許更新;

(5)若視圖的定義中有嵌套查詢,並且嵌套查詢的FROM子句中涉及的表也是導出該視圖的基表,則此視圖不允許更新;

(6)若視圖是由兩個以上的基表導出的,此視圖不允許更新;

(7)一個不允許更新的視圖上定義的視圖也不允許更新;

8)由一個基表定義的視圖,只含有基表的主鍵或候補鍵,並且視圖中沒有用表達式或函數定義的屬性,才允許更新。

clip_image024

10.WITH CHECK OPTION的視圖

為視圖添加with check option,可以在通過視圖進行增刪改操作時,不破壞視圖定義中的謂詞條件(即子查詢中的條件表達式)

CREATE VIEW

F_Student1(stdnum,name,sex,age,dept) AS

SELECT * FROM Student

WHERE Ssex='女';

進行以下更新操作:

UPDATE F_Student1

SET Ssex = '男'

WHERE age = 18

結果會將18歲的女生性別改為男

SELECT *

FROM F_Student1

結果和之前的數據相比,那些18歲的女生都不見了。

因此需要加上Check約束。

clip_image026

clip_image028

11.建立與刪除索引

clip_image030

在一個基本表上最多只能建立一個聚簇索引。

聚簇索引的用途:對於基於聚簇索引列的 查詢(特別是範圍查詢),可以提高查詢 效率

聚簇索引的適用範圍:

聚簇索引列存在大量非重覆值

很少對基表進行增刪操作

很少對其中的變長列進行修改操作

clip_image032

CREATE [ UNIQUE ] [CLUSTER] INDEX <索引名>

ON < 表名 >(< 列名 > [ 次序 ][, 列名 ][< 次序 >] )

用<表名>指定要建索引的基本表名字;

clip_image034

索引可以建立在該表的一列或多列上,各列名之間用逗號分隔

用 <次序>指定索引值的排列次序,升序:ASC,降序:DESC。預設值:ASC

UNIQUE表明此索引的每一個索引值只對應唯一的數據記錄 CLUSTER表示要建立的索引是聚簇索引

clip_image036

clip_image038


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上文中《Android 獲取系統的聯繫人》主要介紹了怎樣獲取系統聯繫人並實戰了一下,本文將介紹如何添加一條聯繫人信息 添加聯繫人 1. 添加raw_contacts表,添加一條聯繫人的id 2. 操作data表,插入聯繫人的數據,每個聯繫人數據都對應一列 raw_contact_id 新建項目,佈局 ...
  • 一、Android系統自帶VideoView控制項 1. 創建步驟: (1)自帶視頻文件放入res/raw文件夾下; (2)聲明初始化VideoView控制項; (3)創建視頻文件Uri路徑,Uri調用parse(),傳入(”android.resource://”+getPackageName()+” ...
  • 本文主要介紹android中怎樣獲取系統的聯繫人數據 首先打開模擬器 點擊聯繫人圖標按鈕 說明系統聯繫人資料庫是空的,打開File explorer,找到data/data下麵的文件夾: 將contacts2.db文件導出,添加到sqlite中的時候報錯: 點擊“ok”忽略之 表結構相當的複雜,首先 ...
  • Android 開發中經常遇到各種hdpi,xhdpi,xxhdpi....很多尺寸大小的png圖片要求. 網上也有不少工具,今天我又發現一款線上轉換大小的網站,用了一下,一個png 114X114 轉換成 16X16和512X512效果還可以; 連接在這裡,希望需要的mark一下,麽麽 png工具 ...
  • “階段一”是指我第一次系統地學習Android開發。這主要是對我的學習過程作個記錄。 一、drawText的位置問題 1、先講一下Canvas畫布的坐標,原點是在畫布的左上角,往右,x為正,往下,y為正。如下圖: 2、預設的情況下,Text的左邊為x坐標,Text的Baseline為y坐標,比如dr ...
  • 我也是看了網上的一個示例代碼後,在它的基礎上進行的修改。因為項目上會用到,我相信很多人的項目上也會用到。所以實現後,也趕緊分享出來,希望後來人不需要花費時間了。 提示:這裡用到了正則表達式,使用了一個第三方開源的組件:RegexKitLite (該組件如何使用網上教程很多) #pragma mark ...
  • ....... ...
  • ORACLE資料庫中的索引到底要不要定期重建呢? 如果不需要定期重建,那麼理由是什麼? 如果需要定期重建,那麼理由又是什麼?另外,如果需要定期重建,那麼滿足那些條件的索引才需要重建呢?關於這個問題,網上也有很多爭論,也一直讓我有點困惑,因為總有點不得廬山真面目的感覺,直到上周看到了一些資料,遂整理於 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...