• 沒有找到結果。

資料庫與資料表定義

N/A
N/A
Protected

Academic year: 2021

Share "資料庫與資料表定義"

Copied!
24
0
0

加載中.... (立即查看全文)

全文

(1)

資料庫與資料表定義

1 使用CREATE DATABASE建立資料庫 2 使用USE 選取資料庫

3 使用CREATE TABLE建立資料表 4 使用CREATE INDEX建立索引

5 使用ALTER TABLE修改資料表定義 6 使用DROP TABLE刪除資料表

7 使用DROP DATABASE刪除資料庫

(2)

1 使用CREATE DATABASE建立資料庫

• 所謂資料庫指的是一塊儲存有資料表、索引或其他資料庫物件的 媒體空間。在商業化的SQL系統中,通常會提供CREATE DATABASE 的命令來建立資料庫,其最簡單的格式為如下:

• 【建立資料庫語法一】

CREATE DATABASE 資料庫名稱

(3)

2使用USE 選取資料庫

• 建立好了資料庫或者進入資料庫管理系統,並不代表著就立即使 用或連接我們想要操控的資料庫。假如我們想使用指定的資料庫,

則我們須下達如下的指令:

• 【使用資料庫語法】

USE 資料庫名稱;

• 如使用Products資料庫:

• USE Products;

如何連接資料庫這部分請參考各RDBMS的說明手冊。

(4)

3使用CREATE TABLE建立資料表

• 建立資料表時最主要的工作為:

• 為資料表命令

• 定義資料表所包含的欄位名稱

• 定義各個欄位的資料型態

• 指定各個欄位是否允許為NULL

• 決定那些欄位的資料值必須是唯一的

• 設定欄位限制條件

• 設定主鍵-連外鍵的關聯限制

• 建立索引

(5)

使用CREATE TABLE建立資料表(續)

• 用來建立資料表的SQL指令為CREATE TABLE,其指令格式如下:

• 【建立資料表語法】

CREATE TABLE 資料表名稱 (

欄位名稱一 資料型態 [NULL|NOT NULL], 欄位名稱二 資料型態 [NULL|NOT NULL], ...

欄位名稱N 資料型態 [NULL|NOT NULL]

)

(6)

使用CREATE TABLE建立資料表(續)

• 例如欲於資料庫HR中建立一個部門資料表Departments,其屬性 設定如下:

• 則先下指令使用HR資料庫或使用RDBMS系統的功能選取HR資料 庫:

• USE HR;

(7)

使用CREATE TABLE建立資料表(續)

• 接著下達CREATE TABLE指令如下:

• CREATE TABLE Departments (

DepartmentID int NOT NULL, Name VARCHAR(50) NOT NULL, Location VARCHAR(60)

)

(8)

使用CREATE TABLE建立資料表(續)

• 又例如我們想新增一員工資料表Employees,其

屬性如下:

(9)

使用CREATE TABLE建立資料表(續)

• 則可下達如下的指令:(SQL Server)

• CREATE TABLE Employees (

EmployeeID int NOT NULL , DepartmentID int ,

SupervisorID int , ReportsTo int ,

Name varchar (50) NOT NULL,

EngName varchar (50) NOT NULL , SSN varchar (10) ,

(10)

使用CREATE TABLE建立資料表(續)

Salary money ,

Commission money , Title varchar (30) ,

TitleOfCourtesy varchar (30) , BirthDate datetime ,

HireDate datetime , Address varchar (120) , City varchar (20) ,

Region varchar (10) , PostalCode varchar (5) )

(11)

使用CREATE TABLE建立資料表(續)

• 例如設計資料表Dept如下:

(12)

使用CREATE TABLE建立資料表(續)

• 則此時可加入PRIMARY KEY設定以指定主鍵的欄位,即可下達指 令如下:

• CREATE TABLE Dept (

DepartmentID int NOT NULL, Name varchar(20) NOT NULL, Location varchar(20) ,

PRIMARY KEY (DepartmentID) )

(13)

使用CREATE TABLE建立資料表(續)

• 即如下的指令格式:

• 【建立資料表語法】

CREATE TABLE 資料表名稱 (

欄位名稱一 資料型態 [NULL|NOT NULL], 欄位名稱二 資料型態 [NULL|NOT NULL], ...

欄位名稱N 資料型態 [NULL|NOT NULL],

PRIMARY KEY (主鍵欄位名稱列表)

(14)

使用CREATE TABLE建立資料表(續)

• 又例如我們想設定如下的員工資料表Emp1:

(15)

使用CREATE TABLE建立資料表(續)

• 使用以下的指令建立資料表 Emp1:

• CREATE TABLE Emp1 (

EmployeeID int NOT NULL, DepartmentID int NOT NULL , Name varchar (50) NOT NULL, BirthDate datetime,

Sex char(2) DEFAULT '男' NOT NULL,

EngName varchar (50) ,

SSN char (10) NOT NULL, Salary decimal(12,2) , Phone varchar(12), CellarPhone char(10),

PRIMARY KEY (EmployeeID),

(16)

4. 使用CREATE INDEX建立索引

• 建立適當的索引可以增進SQL指令的執行速度。

• 建立索引的SQL指令為CREATE INDEX指令,其格式如下:

【CREATE INDEX語法】

CREATE [UNIQUE] INDEX 索引名稱 ON 資料表名稱 (欄位名稱列表)

(17)

5使用ALTER TABLE修改資料表定義

• 當資料表的欄位屬性需要異動、新增或刪除欄位、改變欄位名稱 或資料表關聯時,我們可以使用ALTER TABLE來修改資料表的定義。

ALTER TABLE的語法如下:

• 【ALTER TABLE語法】

ALTER TABLE 資料表名稱 異動項目 [,異動項目...]

(18)

使用ALTER TABLE修改資料表定義(續)

• 其中常見的異動項目如下:(詳細項目各RDBMS或有不同)

ADD 欄位名稱 欄位屬性

ADD PRIMARY KEY (欄位列表) ADD INDEX [索引名稱](欄位列表) DROP COLUMN 欄位名稱

DROP PRIMARY KEY DROP INDEX 索引名稱

ALTER COLUMN 欄位名稱 新的欄位屬性

(19)

使用ALTER TABLE修改資料表定義(續)

• 例如於HR(或於Orders)資料庫中新增一資料表Customer如下:

• CREATE TABLE Customer (

CustomerID VARCHAR(12) NOT NULL, CustomerName VARCHAR(30) NOT NULL, Tel VARCHAR(20),

PostalCode INT,

Address VARCHAR(80) )

(20)

使用ALTER TABLE修改資料表定義(續)

• 現在我們想加入一個新的性別欄位(Sex)如下:

Sex CHAR(2) NOT NULL DEFAULT '男'則可下達如下的指令:

ALTER TABLE Customer

ADD Sex CHAR(2) NOT NULL DEFAULT '男';

(21)

6. 使用DROP TABLE刪除資料表

• 若我們想將資料表及其相關的索引刪除,則可使用DROP TABLE指 令將其結構和資料一齊刪除。其指令語法如下:

• 【DROP TABLE語法】

DROP TABLE 資料表名稱

• 例如將先前建立的資料表Customer刪除,則可下達如下的指令:

• DROP TABLE Customer;

(22)

7. 使用DROP DATABASE刪除資料庫

• 刪除資料庫時會將資料庫內的所有物件、資料及結構全部刪除。

DROP DATABASE的語法如下:

• 【DROP DATABASE】

DROP DATABASE 資料庫名稱

• 如我們想將資料庫HR整個移除,則可下達如下的指令:

• DROP DATABASE HR;

(23)

請使用CREATE DATABASE 新增一名為MyTest的資料庫。

CREATE DATABASE MyTest;

請於上述資料庫中使用CREATE TABLE 指令新增一個用來儲存使用 者資料的資料表 users,其架構為 UserID CHAR(10)、UserPassword VARCHAR(20)、UserName VARCHAR(20) 及Status CHAR(1),其中除 Status外皆不可為NULL;而主鍵則為UserID。

作業:

(24)

SQL for Relational Database

• Data Definition Language (DDL)

• Create table S …

• Create view V …

• Alter table S…

• Drop table S

• Data Manipulation Language (DML)

• Insert into S …

• Delete from S …

• Update S set …

• Query Language

• Select – from – where

參考文獻

相關文件

動態時間扭曲:又稱為 DTW(Dynamic Time Wraping, DTW) ,主要是用來比

透過 Java Servlet 程式存取資料庫.

所以 10 個數字 個數字 個數字 個數字 pattern 就產生 就產生 就產生 就產生 10 列資料 列資料 列資料 列資料 ( 每一橫 每一橫 每一橫

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel

Grant, ed., The Process of Japanese Foreign Policy (London: Royal Institute of International Affairs, 1997), p.119.

(A)SQL 指令是關聯式資料庫的基本規格(B)只有 SQLServer 2000 支援 SQL 指令(C)SQL 指令 複雜難寫,適合程式進階者使用(D)是由 Oracle 發明的。.

• 不過,如果是為調查及懲處嚴重不當行為(並不限於罪案)的目的而使用 的個人資料,則受《 私隱條例》第58條所豁免 ,以致有關資料不受保障資

 點擊按鈕「Rollover」,工作表便會剪下紅色線以下的資料並複 製至綠色線以下的儲存格。