• Không có kết quả nào được tìm thấy

Bảng - Table

Trong tài liệu Ngôn ngữ cơ sở dữ liệu...5 1.3.3 (Trang 59-67)

Chương 3: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER

3.2. LÀM VIỆC VỚI CÁC ĐỐI TƯỢNG TRONG SQL SERVER

3.2.2. Bảng - Table

2^30-1 ký tự. Hỗ trợ unicode.

nvarchar[(n)] Dữ liệu ký tự có chiều dài thay đổi với n ký tự. Có hỗ trợ Unicode. Với 1<n<4000.

real Dữ liệu số thực động, phạm vi từ - 3.4E+38 đến 3.4E+38.

Chiếm 4 byte.

smalldatetime Dữ liệu ngày giờ từ 1/1/1900 đến 6/6/2079. Chiếm 4 byte.

smallint Dữ liệu số nguyên từ -2^15 đến 2^15-1. Chiếm 2 byte.

smallmoney Dữ liệu kiểu tiền tệ từ -2^31 đến 2^31. Chiếm 4 byte.

sql_variant Cho phép giữ các giá trị của các kiểu dữ liệu khác nhau (tất cả các kiểu dữ liệu hệ thống khác).

sysname Đây là kiểu dữ liệu đặc biệt, do SQL Server định nghĩa là kiểu nvarchar(128). Chiếm 256 byte.

table Tương tự như bảng tạm, khai báo gồm danh sách các cột và các kiểu dữ liệu.

text Dữ liệu ký tự có chiều dài thay đổi, dài hơn 8000byte. Có thể lưu tới 2^31 ký tự. Không hỗ trợ Unicode.

timestamp Cột timestamp được cập nhật tự động mỗi khi dòng được thêm hoặc được cập nhật. Mỗi bảng chỉ có thể có 1 cột timestamp. Kích thước lưu trữ là 8 byte.

tinyint Dữ liệu số nguyên từ 0 đến 255. Chiếm 1 byte.

unique-identifier Giá trị nhị phân 16 byte, là số định danh duy nhất toàn cục.

varbinary[(n)] Dữ liệu nhị phân n có chiều dài thay đổi. Với 1<n<8000 varchar[(n) Dữ liệu ký tự có chiều dài thay đổi với n ký tự. Không hỗ

trợ Unicode. Với 1<n<4000.

b) Tảo bảng.

* Dùng SQL Server Enterprise Manager trong SQL Server 2000:

Hình 3.26. Cửa sổ thiết Table.

• Trong Enterprise Manager, mở rộng danh mục Database và mở rộng cơ sở dữ liệu QLDiemSV.

• Right Click lên danh mục Tables, chọn New Table.

• Xuất hiện cửa sổ thiết kế bảng như hình 3.26. Ta thực hiện thiết kế bảng HOSOSV gồm các trường (trong cột Column Name), kiểu trường (Data Type) và độ dài dữ liệu (Length) và cho phép trường đó nhận giá trị NULL hay không (Allow Nulls) hình 3.26.

• Chọn dòng MaSV, sau đó click vào nút Set primary key để thiết lập trường MaSV là khóa.

• Click vào nút Save, xuất hiện cửa sổ Choose Name nhập tên bảng là HOSOSV để lưu lại bảng.

* Dùng SQL Server Management Studio trong SQL Server 2005:

Để tạo bảng trong SQL Server Management Studio ta thực hiện:

1. Mở rộng các đối tượng trên thể hiện của SQL trong cửa sổ Object Explorer muốn tạo bảng.

2. Mở rộng mục Database và chọn cơ sở dữ liệu muốn tạo bảng.

Right click lên mục Table và chọn New Table xuất hiện cửa sổ thiết kế table (Hình 3.27):

+ Column Name: Nhập tên các cột trong bảng.

+ Data Type: Chọn kiểu dữ liệu và độ dài cho kiểu.

+ Allow Nulls: Cho phép chấp nhận dữ liệu NULL hay không?

+ Column Properties: Thiết lập các thuộc tính cho cột đang được chọn.

Hình 3.27. Cửa sổ thiết Table trong SQL Server Management Studio . 3. Để thiết lập khóa, chọn các trường khóa của bảng sau đó click vào

nút biểu tượng khóa (Set Primary Key) hoặc right click vào các trường đó và chọn Set Primary Key.

4. Dùng tổ hợp phím Ctrl+S hoặc click vào nút Save để lưu cấu trúc bảng vừa tạo trong cơ sở dữ liệu.

* Dùng T-SQL

Để tạo bảng dùng T – SQL ta sử dụng cú pháp sau:

CREATE TABLE table_name

( { < column_definition > | < table_constraint > } [ ,...n ]

)

< column_definition > ::=

{ column_name data_type }

[ { DEFAULT constant_expression

| [ IDENTITY [ ( seed , increment ) ] ]

} ]

[ < column_constraint > [ ...n ] ]

< column_constraint > ::=

[ CONSTRAINT constraint_name ] { [ NULL | NOT NULL ]

| [ PRIMARY KEY | UNIQUE ]

| REFERENCES ref_table [ ( ref_column ) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] }

< table_constraint > ::=

[ CONSTRAINT constraint_name ] { [ { PRIMARY KEY | UNIQUE } { ( column [ ,...n ] ) } ]

| FOREIGN KEY

( column [ ,...n ] )

REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]

[ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] }

Ví dụ 3.2. Tạo bảng

a) Tạo bảng LOP dùng T-SQL.

Use QLDiemSV Go

Create Table DMLop

(MaLop char(10) NOT NULL, TenLop nvarchar(50) NOT NULL, Khoa char(10)

CONSTRAINT PK_DMLOP Primary Key (MaLop))

b) Tạo hai bảng MyCustomers và MyOrders. Bảng MyCustomers có hai cột, cột CustID vừa là cột nhận dạng IDENTITY[(seed,increment )]

có giá trị khởi tạo ban đầu là 100 và bước nhảy là 1 vừa là khóa. Bảng MyOrders có khóa là OrderID và khóa ngoại là CustID tham chiếu đến bảng MyCustomers.

CREATE TABLE MyCustomers (CustID int IDENTITY (100,1) PRIMARY KEY, CompanyName nvarchar (50))

CREATE TABLE MyOrders (OrderID int PRIMARY KEY, CustID int REFERENCES MyCustomers(CustID))

c) Thay đổi cấu trúc bảng

* Dùng SQL Server Enterprise Manager trong SQL Server 2000:

+ Trong Enterprise Manager, mở rộng danh mục Database, mở rộng cơ sở dữ liệu có bảng cần thay đổi cấu trúc, chẳng hạn QLDiemSV và chọn mục Table.

+ Right Click lên bảng thuộc CSDL QLDiemSV cần thay đổi cấu trúc, chọn Design Table. Xuất hiện cửa sổ thiết kế bảng như hình 3.26. Ta thực hiện các thay đổi về cấu trúc: đổi kiểu dữ liệu, thêm trường, xóa trường, thiết lập khóa .v.v…với bảng đã chọn đó.

* Dùng SQL Server Management Studio trong SQL Server 2005:

Để thay đổi cấu trúc bảng trong SQL Server Management Studio ta thực hiện các bước sau:

+ Mở rộng các đối tượng trên thể hiện của SQL trong cửa sổ Object Explorer muốn thay đổi cấu trúc bảng.

+ Mở rộng mục Database và chọn cơ sở dữ liệu và bảng cần thay đổi cấu trúc. Right click lên bảng đó và chọn Modify xuất hiện cửa sổ thiết kế table (Hình 3.27) và ta thực hiện các thay đổi đối với cấu trúc bảng như cách tạo bảng.

* Dùng T-SQL

Để thay đối cấu trúc bảng bằng T-SQL ta có cú pháp câu lệnh sau:

ALTER TABLE table_name {

ALTER COLUMN column_name {

type_name [ ( { precision [ , scale ] | max } ) ]

[ NULL | NOT NULL ] }

| [ WITH { CHECK | NOCHECK } ] ADD {

<column_definition>

| <computed_column_definition>

| <table_constraint>

} [ ,...n ] | DROP {

[ CONSTRAINT ] constraint_name | COLUMN column_name

} [ ,...n ]

| [ WITH { CHECK | NOCHECK } ] { CHECK | NOCHECK } CONSTRAINT

{ ALL | constraint_name [ ,...n ] } | { ENABLE | DISABLE } TRIGGER

{ ALL | trigger_name [ ,...n ] } [ ; ]

Ví dụ 3.3. Thay đổi cấu trúc bảng MyCustomers

ALTER TABLE MyCustomers ADD CustType CHAR(10) NULL

d) Nhập dữ liệu cho bảng

* Dùng Enterprise Manager

• Trong Enterprise Manager, mở rộng danh mục Database, mở rộng cơ sở dữ liệu QLDiemSV và chọn mục Table.

• Right Click lên bảng thuộc CSDL QLDiem cần nhập dữ liệu, chọn Open Table\Return all row. Xuất hiện cửa sổ nhập dữ liệu cho bảng đó.

* Dùng SQL Server Management Studio trong SQL Server 2005:

+ Mở rộng các đối tượng trên thể hiện của SQL trong cửa sổ Object Explorer muốn nhập dữ liệu cho bảng.

+ Mở rộng mục Database, chọn cơ sở dữ liệu và bảng cần nhập dữ liệu. Right click lên bảng cần nhập dữ liệu và chọn Open Table xuất hiện cửa sổ nhập dữ liệu cho bảng.

* Dùng T-SQL

Ví dụ 3.3. Chèn dữ liệu vào bảng LOP - Chèn một bản ghi:

Insert Into LOP(MaLop, TenLop, Khoa)

VALUES ('TH6A',N'Tin học 6A', '6') - Chèn tất cả các bản ghi từ bảng DMLOP vào bảng LOP.

Insert Into LOP(MaLop, TenLop, Khoa)

Select MaLop, TenLop, Khoa From DMLOP e) Xóa bảng

* Dùng Enterprise Manager

• Trong Enterprise Manager, mở rộng danh mục Database, mở rộng cơ sở dữ liệu QLDiemSV và chọn mục Table.

• Right Click lên bảng cần xóa, chọn Delete.

* Dùng SQL Server Management Studio trong SQL Server 2005:

+ Mở rộng các đối tượng trên thể hiện của SQL trong cửa sổ Object Explorer muốn xóa bảng.

+ Mở rộng mục Database, chọn cơ sở dữ liệu chứa bảng muốn xóa. Right click lên bảng muốn xóa và chọn Delete xuất hiện cửa sổ xác nhận thông tin xóa, chọn OK.

* Dùng T-SQL

DROP TABLE DMLOP

Trong tài liệu Ngôn ngữ cơ sở dữ liệu...5 1.3.3 (Trang 59-67)