Tải bản đầy đủ (.pdf) (10 trang)

Lý thuyết hệ quản trị cơ sở dữ liệu (KMA)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (388.22 KB, 10 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>Các kiểu dữ liệu trong T – SQL </b>

trợ Unicode nên viết

<i>được tiếng Việt. Bộ </i>

<i>nhớ cấp phát tĩnh. <b><sup>Ví dụ: </sup></b></i>

Khai báo: Truong Nếu khai báo bằng Unicode nên viết

<i>được tiếng Việt. Bộ nhớ cấp phát động. </i>

text Lưu văn bản lớn Cấp phát bộ nhớ động theo chiều dài

<b>• Khởi tạo Database trong SQL Server: </b>

<i><b>- Cách 1: Tạo Database bằng giao diện (UI): Chuột phải vào Database/ New Database - Cách 2: Tạo Databse bằng code </b></i>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<i><b>Bước 1: Kết nối SQL Server với SQL Server 2019 Management Studio Bước 2: Chọn New Query hoặc (Ctrl + N) </b></i>

<i><b>Bước 3: Gõ code </b></i>

<i><b>o Tạo Database theo yêu cầu: Cú pháp </b></i>

<i><b>create database tên_csdl on primary --Tạo file data </b></i>

<i><b>Ví dụ Tạo Database QLSV với tập tin dữ liệu chính là QLSV.mdf, đặt tại thư </b></i>

<i>mục D:\ với dung lượng khởi tạo là 5MB, tối đa là 50MB và độ gia tăng kích </i>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<i><b>➢ Đổi tên Database </b></i>

<i>ALTER DATABASE <ten_Database> MODIFY NAME = <ten_moi> </i>

<i><b>Ví dụ Đổi tên CSDL “QLSV” thành “QL_SV” </b></i>

<i>ALTER DATABASE QLSV MODIFY NAME = QL_SV </i>

<i><b>➢ Xóa Database Khi sử dụng lệnh xóa, CSDL sẽ bị xóa khỏi vùng lưu trữ, muốn </b></i>

tạo thì phải thực thi lại lệnh

<i><b>Cú pháp DROP DATABASE <ten_Database> </b></i>

<i><Tên trường 1> <Kiểu dữ liệu> [RBTV] [,... ], <Tên trường 2> <Kiểu dữ liệu> [RBTV] [,... ], <Tên trường n> <Kiểu dữ liệu> [RBTV] [,... ] </i>

MaSV char(10) primary key, HotenSV nvarchar(50) not null,

GioiTinh nchar(7) check (Gioitinh = N'Nam' or Gioitinh = N'Nữ'),

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

NgaySinh date not null,

<i>ALTER TABLE Tên_bảng </i>

<i>ADD Tên_cột Kiểu_dữ_liệu [RBTV] [,... ] </i>

<i><b>Ví dụ </b></i>

alter table sinhvien add email char(30) unique

<i><b>Chú ý Cột mới luôn được thêm vào cuối bảng 2. Xoá một cột khỏi bảng </b></i>

<i><b>Cú pháp </b></i>

<i>ALTER TABLE Tên_bảng DROP COLUMN Tên_cột </i>

<i><b>Ví dụ </b></i>

alter table sinhvien drop column lop

<i><b>Lưu ý: Muốn xóa được cột thì phải xóa ràng buộc của cột đó trước 3. Sửa đổi kiểu dữ liệu của cột </b></i>

<i><b>Cú pháp </b></i>

<i>ALTER TABLE Tên_bảng ALTER COLUMN Tên_cột </i>

<i>SP_RENAME 'Tên_bảng_cũ', 'Tên_bảng_mới' </i>

<i><b>Lưu ý Có dấu nháy hoặc không đều được 6. Xem cấu trúc của bảng </b></i>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<i><b>Ví dụ: </b></i>

create table SINHVIEN (

MaSV char(10) primary key, HotenSV nvarchar(50) not null,

GioiTinh nchar(7) check (Gioitinh = N'Nam' or

Các bảng lưu trữ dữ liệu theo các dòng;

<b>Câu lệnh INSERT INTO dùng để thêm một dòng mới vào bảng. </b>

<i><b>➢ Cú pháp </b></i>

<i>INSERT INTO tenbang(cot1, cot2, cot3,...,) VALUES (gt1, gt2, gt3,...) </i>

<i><b>➢ Ví dụ </b></i>

insert into SINHVIEN values ('AT1', N'Cao Thu Huyền', N'Nữ’,'AT16A', N'Hà Nội', '10/10/1998','')

<i><b>➢ Lưu ý </b></i>

<b>- Nếu dữ liệu kiểu text và kiểu Date, khi chèn phải có ‘ ’, nếu là kiểu </b>

nvachar thì phải có tiếp đầu ngữ N’.

- Dữ liệu kiểu Date yêu cầu nhập tháng/ngày/năm hoặc năm/tháng/ngày hoặc nhập dưới dạng chuỗi.

- Dữ liệu dạng tự tăng thì khơng cần nhập.

- Cột nhập dữ liệu có thể thay đổi nhưng phải tương ứng với cột đưa giá trị vào

<b>Xem dữ liệu trên bảng </b>

<i><b>➢ Cú pháp SELECT * FROM </b><tenbang> SELECT * FROM Sinhvien </i>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>Cập nhật dữ liệu trên bảng – UPDATE </b>

<i><b>➢ Ý nghĩa </b></i>

1. UPDATE là truy vấn được sử dụng để chỉnh sửa những bản ghi đã tồn tại trong bảng.

2. Có thể sử dụng mệnh đề WHERE với lệnh UPDATE để cập nhật các hàng được chọn, nếu không muốn tất cả các hàng trong bảng bị ảnh hưởng.

DELETE FROM SINHVIEN WHERE MaSV = ‘DT1’

<i><b>➢ Yêu cầu So sánh DROP, DELETE VÀ TRUNCATE </b></i>

- Câu lệnh Drop Table không thể thực hiện nếu bảng cần xóa được tham chiếu

<b>bởi một Foreign Key </b>

- Các ràng buộc, chỉ mục, trigger,.. đều bị xóa, nếu tạo lại bảng thì cũng phải tạo lại các đối tượng này

- Sau khi xóa khơng thể khơi phục lại bảng và dữ liệu bảng

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>Cách khai báo RBTV </b>

<i><b>➢ Cú pháp </b></i>

<i><b>1. Khai báo ở mức cột </b></i>

✓ Khai báo không đặt tên cho ràng buộc

<i><Tencot> <kieudulieu> <loairangbuoc> </i>

✓ Khai báo đặt tên cho ràng buộc

<i><Tencot> <kieudulieu> constraint <tenrangbuoc> <loairangbuoc> </i>

<i><b>2. Khai báo ở mức bảng </b></i>

constraint <tenrangbuoc> <loairangbuoc> (dscot)

<b>Thêm ràng buộc mới vào bảng </b>

<i><b>➢ Ý nghĩa </b></i>

✓ Dùng để thêm ràng buộc (constraint) mới vào bảng đã được tạo sẵn ✓ Sử dụng từ khóa Alter table\

<i><b>➢ Cú pháp: </b></i>

ALTER TABLE <i><tenbang> </i>

ADD CONSTRAINT <i><tenrangbuoc> <loairangbuoc> (dscot) </i>

<b>Default </b>

<i><b>➢ Ý nghĩa </b></i>

DEFAULT là ràng buộc mặc định. Khi nhập dữ liệu cho bảng mà cột đó khơng được cung cấp giá trị thì giá trị mặc định sẽ được sử dụng

<i><b>Cách 1: Không đặt tên cho ràng buộc </b></i>

create table MONHOC (

MaMH char(4) primary key,

TenMH nvarchar(40) default 'Tên môn học', DVHT tinyint

)

<i><b>Cách 2: Đặt tên cho ràng buộc </b></i>

create table MONHOC (

MaMH char(4) primary key,

TenMH nvarchar(40) constraint default_MH default('Tên môn học'), DVHT tinyint,

)

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>Check </b>

<i><b>➢ Ý nghĩa: CHECK là ràng buộc kiểm tra. Yêu cầu cột tương ứng phải thỏa mãn một biểu </b></i>

thức logic.

<i><b>Khai báo ràng buộc CHECK ở mức cột:</b></i>

create table KETQUA (

MaSV char(3) not null, MaMH char(4) not null,

MaSV char(3) not null, MaMH char(4) not null,

<i><b>Khai báo ràng buộc CHECK ở mức bảng: </b></i>

-- khi muốn đặt tên cho ràng buộc và định nghĩa ràng buộc CHECK trên nhiều cột CREATE TABLE Persons (

ID int NOT NULL,

LastName varchar(255) NOT NULL,

<i><b>Khai báo ràng buộc CHECK sau khi tạo bảng (ràng buộc mức bảng) </b></i>

alter table KETQUA add constraint Chk_KQ check(diem>=0 and diem <=10)

<b>Khố chính </b>

<i><b>Tạo khố chính sau khi tạo bảng thành công: </b></i>

alter table KETQUA

add constraint PK_KQ primary key (MaSV, MaMH)

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>Khố ngoại </b>

<i><b>Cách tạo khố ngoại: </b></i>

<i><b>➢ Tạo khóa ngoại trong lúc tạo bảng </b></i>

create table KETQUA (

MaSV char(3) foreign key references SINHVIEN, MaMH char(4) foreign key references MONHOC , Diem tinyint check(diem>=0 and diem <=10), constraint PK_KQ primary key (MaSV, MaMh) )

<i><b>➢ Tạo khóa ngoại sau khi tạo bảng </b></i>

alter table KETQUA add constraint FK_SV foreign key (MaSV) references

alter table KETQUA drop constraint PK_KQ alter table SINHVIEN drop constraint Unique_SV

<b>Identity </b>

<i><b>Cú pháp </b></i>

<i>IDENTITY(seed, increment) </i>

<i><b>Trong đó seed là giá trị khởi tạo increment là giá trị tăng cho mỗi lần </b></i>

<i>Khi khơng khởi tạo thì seed và increment đều có giá trị bằng 1 </i>

<i><b>Ví dụ </b></i> <sup>ID int IDENTITY(1000,5) </sup>

ID int IDENTITY(-10,-5)

</div>

×