BẢNG ĐIỂM HỌC PHẦN SQL – LỚP CT15

39 12 0
BẢNG ĐIỂM HỌC PHẦN SQL – LỚP CT15

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

• Có thể khai báo ràng buộc trong lúc tạo bảng hoặc sau khi bảng đã tồn tại.. Rule[r]

(1)

Trường Đại học Khoa học Tự nhiên Khoa Công nghệ Thông tin

Bộ môn Hệ thống Thông tin

Chương 2: Xây dựng, quản lý và khai

thác Cơ sở liệu

Phạm Nguyên Thảo

(2)

Nội dung

Khái niệm Database

Tạo quản lý Database

Các kiểu liệu

Tạo quản lý bảng

Ràng buộc tồn vẹn đơn giản

(3)

3 CSDL - Logic

Một database tập hợp chứa:

– Các bảng (tables) chứa liệu có cấu trúc ràng buộc(constraint) định nghĩa bảng

– Các khung nhìn (view) – Các thủ tục/ hàm

– Các vai trò (role) người dùng (user) – …

(4)

CSDL – lưu trữ vật lý

Một database SQL Server lưu trữ loại

tập tin:

– Tập tin liệu (data file)

1 tập tin liệu (primary data file), thường có “mdf” – Chứa liệu khởi đầu database

(5)

5 CSDL – lưu trữ vật lý

– Tập tin nhật ký giao tác (transaction log file)

1-n tập tin nhật ký, thường có “ldf”

(6)

Nội dung

Khái niệm Database

Tạo quản lý Database

Kiểu liệu

Tạo quản lý bảng

Ràng buộc tồn vẹn đơn giản

(7)

7 Tạo Database

Cú pháp lệnh tạo Database

Create Database database_name

[ On

[Primary]

{ file_spec [,…n] }

]

[ Log on

{ file_spec [,…n] } ]

Lưu ý: Cú pháp đầy đủ lệnh nên xem thêm

(8)

Tạo Database (tt)

Với

file_spec :: = ( Name = logical_file_name , Filename = 'os_file_name '

[ , Size = size [ KB | MB | GB | TB ] ] [ , Maxsize = { max_size | Unlimited } ] [ , Filegrowth = growth_increment ] )

(9)

9 Tạo Database – ví dụ

Ví dụ 1:

Create Database QLSinhVien

Ví dụ 2:

Create Database QLSinhVien

On

( Name = QLSV_Data

Filename = „C:\ \ QLSV_Data.mdf ‟,

Size = 1,

(10)

Tạo Database – ví dụ (tt)

Ví dụ

Create Database QLSinhVien On

( Name = QLSV_Data1,

Filename = „C:\ \ QLSV_Data.mdf ‟, Size = 1,

Maxsize = 10 MB,

Filegrowth = MB ) , ( Name = QLSV_Data2 ,

Filename = „C:\ \QLSV_Data1.ndf‟ ) Log on

( Name = QLSV_Log,

(11)

11 Thay đổi xoá Database

Xố CSDL tồn tại:

Drop Database database_name

Thay đổi CSDL

Alter Database database_name

(12)

Nội dung

Khái niệm Database

Tạo quản lý Database

Kiểu liệu

Tạo quản lý bảng

Ràng buộc tồn vẹn đơn giản

(13)

13 Kiểu liệu SQL Server cung cấp

Số

– Số nguyên: bit, tinyint, smallint, int, bigint – Số thực

Floating point: – float(n)

– real = float(24) Fixed point

(14)

Kiểu liệu SQL Server cung cấp (tt)

Chuỗi

char(n); nchar(n)

varchar(n); nvarchar(n) text; ntext

Ngày

(15)

15 Kiểu người dùng tự định nghĩa

Định nghĩa kiểu liệu:

sp_addtype type_name, system_type [, null_type‟ ]

– Ví dụ:

Exec sp_addtype MyString, nvarchar(88), „NULL‟

Xóa kiểu liệu người dùng định nghĩa:

sp_droptype type_name

(16)

Nội dung

Khái niệm Database

Tạo quản lý Database

Kiểu liệu

Tạo quản lý bảng

Ràng buộc tồn vẹn đơn giản

(17)

17 Tạo bảng

Tạo bảng

– Xác định cột (các thuộc tính) bảng – Xác định khóa

– Xác định thuộc tính null/ not null

– Xác định thuộc tính identity (nếu có) (bắt buộc phải kiểu số

nguyên có thuộc tính này)

Lưu ý:

– Ln tạo khóa cho bảng

(18)

Tạo bảng (tt)

– Cú pháp lệnh tạo bảng

Create table Table_name

(

{ Column_name Data_type [null | not null]

[default default_value ]

[identity [( seed, increment)] ]

} [,…n]

[, [constraint constraint_name] primary key ( Column_name [,…n] ) ] [, [constraint constraint_name] foreign key ( Column_name [,…n] )

referencesTable_name ]

)

– Lưu ý tạo khóa chính/khóa ngoại trực tiếp có thuộc tính, e.g “column_name type primary key” “column_name type references

table_name”

Tên constraint không bắt buộc

(19)

19 Tạo bảng – ví dụ

Create table HOCSINH

(

STT tinyint not null,

Lop char(5) not null default ‟11A1‟ ,

HoTen nvarchar(30) not null,

NgaySinh datetime not null,

DiaChi nvarchar(100),

constraint pk_HS primary key (STT, Lop)

(20)

Thay đổi cấu trúc bảng / xóa bảng

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

Alter table…

– Thêm/ xoá/ cập nhật kiểu liệu… cột (column) – Thêm/ xoá/ kiểm tra/ không kiểm tra ràng buộc (constraint) – Enable/ disable trigger

Xóa bảng

Drop table …

– Nếu khơng có bảng báo lỗi bảng không tồn

(21)

21 Thay đổi cấu trúc bảng – ví dụ

Alter table HOCSINH

Add DanToc nvarchar(20) null default „Kinh‟

Alter table HOCSINH

(22)

Quản lý bảng (tt)

Các tên bảng, tên ràng buộc không trùng

trong database

Tên cột bảng khơng trùng

nhau

Thông tin bảng, ràng buộc lưu

bảng hệ thống sysobjects

– Ví dụ: đọc thơng tin bảng database hành:

(23)

23 Quản lý bảng (tt)

Một số thủ tục SQL Server cung cấp để quản lý bảng cấu trúc bảng:

sp_databases

sp_tables [table_name] [, owner][,‟database_name][, “ ‟type‟ ”]

Ví dụ:

Exec sp_tables null, null, null, “ „TABLE‟ ”

sp_help [object_name]

 sp_help cho biết thông tin đối tượng database (đối tượng có chứa sysobjects)

 Ví dụ:

Exec sp_help HOCSINH

sp_columns object [, owner] [, database] [,column] – sp_helpconstraint table_name

(24)

Nội dung

Khái niệm database

Tạo quản lý database

Kiểu liệu

Tạo quản lý bảng

Ràng buộc tồn vẹn đơn giản

(25)

25 Ràng buộc toàn vẹn đơn giản

SQL cung cấp sẵn chế để kiểm tra

Bao gồm:

– Có thể chứa giá trị rỗng hay khơng: null/not null Giá trị mặc định: default(value)

Các RB khai báo tạo bảng khai báo cho cột – Khóa (primary key constraint)

– Khoá ngoại (foreign key constraint) – Giá trị (unique constraint)

Hữu dụng cài đặt thêm khóa ứng viên khác ngồi khóa – Check constraint ( Kiểm tra ràng buộc miền giá trị ràng buộc liên

thuộc tính quan hệ)

(26)

Khai báo ràng buộc lúc tạo bảng

Cú pháp:

Create table Table_name

( …

[, [constraint Constraint_name ]

{ primary key (Column_name [,…n])

| unique ( Column_name [,…n])

| check ( logical_expression ) }

| foreign key ( Column_name [,…n]) references Table (

Column_name [,…n]) on_delete_update_handling

] […n]

(27)

27 Khai báo ràng buộc lúc tạo bảng – Ví dụ

Create table SinhVien (

MaSV char(10) not null,

HoTen nvarchar(30) not null,

Nam tinyint,

CMND char(10),

Khoa char(5),

constraint pk_SV primary key (MaSV),

constraint u_CMND unique (CMND),

(28)

Khai báo ràng buộc bảng tồn Cú pháp:

Alter table table_name

[with check| with nocheck] Add { constraint constraint_name

{ primary key ( column_name [,…n] )

| unique ( column_name [,…n] )

| check ( logical_expression )

| foreign key ( column_name [,…n] )

references ref_table ( ref_column [,…n] )

[ on delete {cascade| no action | set null | set default } ]

[ on update {cascade| no action | set null | set default } ]

} [,…n]

(29)

29

Khai báo ràng buộc bảng tồn – Ví dụ

Alter table SINHVIEN

with check add

constraint u_CMND unique (CMND),

constraint chk_Nam check (Nam in (1, 2, 3, 4) ),

constraint fk_SV_maKhoa foreign key (Khoa),

references KHOA(MaKhoa)

(30)

Kiểm tra / không kiểm tra ràng buộc

Cú pháp :

Alter table Table_name

{Check| Nocheck} constraint { All | constraint_name [,…n] }

Ví dụ

alter table SINHVIEN

(31)

31 Xoá ràng buộc

Cú pháp

Alter table table_name

Drop { [constraint ] constraint_name } [,…n]

Ví dụ:

Alter table SINHVIEN

(32)

Rule

Rule qui định chung tạo

database

Một rule áp dụng cho nhiều thuộc tính

(33)

33 Tạo rule

Cú pháp:

Create rule rule_name

as logical_expression

– “logical_expression” phải chứa biến Biến tương ứng với đối tượng áp dụng rule

Ví dụ:

create rule r_SoDuong as @value >0

(34)

Kết buộc/ gỡ kết buộc rule

Kết buộc rule

sp_bindrulerule_name‟, „object‟, [ „futureonly‟ ]

Tùy chọn futureonly dùng kết buộc rule với kiểu liệu người

dùng định nghĩa, có nghĩa cột thuộc kiểu liệu trước khơng bị ảnh hưởng rule

Ví dụ:

sp_bindrule „r_SoDuong‟, „SinhVien.Nam‟

Rule kết buộc ngầm gỡ rule cũ đối tượng

Gỡ kết buộc

sp_unbindruleobject‟, [ „futureonly‟ ]

(35)

35 Xoá rule

Cú pháp

Drop rule {rule_name} [,…n]

Chỉ xóa rule khơng cịn kết buộc với đối

tượng

Nếu ngược lại, cịn kết buộc

(36)

Nội dung

Khái niệm database

Tạo quản lý database

Kiểu liệu

Tạo quản lý bảng

Ràng buộc tồn vẹn đơn giản

(37)

37 Thêm/ xoá/ cập nhật liệu

Chú ý thêm/ xóa / cập nhật

– Dữ liệu nhập phải phù hợp với kiểu liệu – Đảm bảo ràng buộc toàn vẹn

– Chú ý định dạng giá trị:

kiểu chuỗi unicode N‟giá trị chuỗi Tiếng Việt có dấu Unicode

kiểu datetime „13 Jan 09‟ hay ‟13/01/09‟ hay „01/13/09‟ biểu thức đúng? Nên dùng set dateformat dmy; để định dạng kiểu ngày tháng

dùng Việt Nam

(38)

Các dạng lệnh insert

Thêm dòng liệu vào bảng

Insert [into] Table_name[ (column_name[,…n] )]

values ( value [,…n] )

[, values (value [,…n] ), [,…n] ]

Thêm dòng liệu từ bảng khác

Insert [into] Table_name Select_statement

Lưu ý: câu select, ta đọc liệu từ

bảng database khác Khi đó, tên bảng viết đầy đủ sau:

Database_name.Owner.Table_name

– Ví dụ:

(39)

Ngày đăng: 04/04/2021, 07:04

Tài liệu cùng người dùng

Tài liệu liên quan