By GokiSoft.com| 20:41 04/08/2020|
SQL Server/MySQL

[Video] Bài giảng - Thiết kế CSDL quản lý lớp học - sinh viên - create - alter - insert - update - delete trong CSDL - Học lập trình SQL Server BT1771



Nội dung bài học
- Tìm hiểu về tạo bảng CSDL
- Thêm/Sửa/Xoá column trong 1 bảng -> sau khi bảng đã được tạo
- Tìm hiểu foreign key trong CSDL -> Ý nghĩa của foreign key là gì -> thông qua ví dụ.
- Thêm/Sửa/Xoá dữ liệu
- Tìm hiểu select trong CSDL -> basic : thao tác trên 1 bảng.

====================================================
Làm 1 mini project
Thiết kế bảng sinh viên gồm các trường sau : student
	- rollno : nvarchar(20) => primary key
	- fullname : nvarchar(50) not null
	- email : nvarchar(150)
	- gender : nvarchar(20)
Thiết kế bảng lớp học: class
	- class_no : nvarchar(20) => primary key
	- class_name : nvarchar(50) not null
Bổ sung thêm column vào trong bảng student
	- address: nvarchar(200)
	- birthday : date
Thiết kế bảng class_group : quản lý sinh viên trong lớp học
	- rollno : nvarchar(20)
	- class_no: nvarchar(20) : trường khoá phụ liên kết với column class_no trong bảng class
Bổ sủng thông tin
	- rollno, class_no : trường khoá chính của bảng class_group
	- rollno : trường khoá phụ liên kêt với column rollno trong bảng student
Thêm dữ liệu
	- Thêm 5 sinh viên
	- Thêm 2 lớp học
	- Tạo quản lý lớp học
Update dữ liệu
	- Sửa lại sinh viên có mã R001 => thành tên khác : TRAN VAN ABC
Xoá dữ liệu
	- Xoá sinh viên có rollno : R001
	- Xoá sinh viên có ngày sinh từ : 1980-01-01 tới 1990-01-01
Select dữ liệu => lấy dữ liệu ra và xem
	- Xem tất cả thông tin sinh viên
	- Xem thông tin sinh viên gồm các trường : rollno, tên, giới tính
	- Xem thông tin sinh viên gồm các trường : rollno, tên, giới tính với điều kiện ngày sinh từ 1990-01-02 -> 2002-12-31



-- Tao CSDL : C2002L
create database C2002L
go

-- Active CSDL
use C2002L
go

-- Tao bang student
create table student (
	rollno nvarchar(20) primary key,
	fullname nvarchar(50) not null,
	email nvarchar(150),
	gender nvarchar(20)
)
go

-- Tao bang class
create table class (
	class_no nvarchar(20) primary key,
	class_name nvarchar(50) not null
)
go

-- CODE TEST
select * from student
select * from class
-- CODE TEST END
-- Modified column trong bang student
alter table student
add address nvarchar(200)

alter table student
add birthday date

-- Tao bang class_group
create table class_group (
	rollno nvarchar(20),
	class_no nvarchar(20) references class (class_no)
)
go
-- rollno (R001), class_no (C001) => rollno (R001), class_no (C001)
-- rollno (R001), class_no (C001) => rollno (R001), class_no (C001)
-- du lieu du thua => khong dung trong thiet database
-- duy nhat 1 cap du lieu >> rollno (R001), class_no (C001)

-- Bo sung thong tin cho bang class_group
-- fix thuoc tinh cua column trong table
-- fix not null cho rollno & class_no
alter table class_group
alter column rollno nvarchar(20) not null
go

alter table class_group
alter column class_no nvarchar(20) not null
go

alter table class_group
add constraint pk_class_group primary key (rollno, class_no)
go

alter table class_group
add constraint fk_rollno foreign key (rollno) references student(rollno)
go

---- Huy truong khoa chinh rollno, class_no trong bang class_group
alter table class_group
drop constraint pk_class_group

-----------------------------------
------------- THEM DATA ----------- INSERT
-----------------------------------
insert into student(rollno, fullname, email, gender, address, birthday)
values
('R001', 'TRAN VAN A', 'a@gmail.com', 'Nam', 'Ha Noi', '1985-02-06')
go

insert into student(rollno, fullname, email, gender, address, birthday)
values
('R002', 'TRAN VAN B', 'b@gmail.com', 'Nam', 'Nam Dinh', '1988-02-06'),
('R003', 'TRAN VAN C', 'c@gmail.com', 'Nam', 'Ha Nam', '2000-02-06'),
('R004', 'TRAN VAN D', 'd@gmail.com', 'Nam', 'Ninh Binh', '2001-02-06'),
('R005', 'TRAN VAN E', 'e@gmail.com', 'Nam', 'Nam Dinh', '2002-02-06')
go

select * from student

insert into class(class_no, class_name)
values
('C001', 'Lop hoc SQL - 01'),
('C002', 'Lop hoc PHP/Laravel')
go

select * from student
select * from class
select * from class_group

-- Add du lieu error vao database
insert into class_group (class_no, rollno)
values
('C001', 'R009')

-- Xoa het du lieu error di
delete from class_group

-- Add du lieu cho bang class_group
insert into class_group (class_no, rollno)
values
('C001', 'R001'),
('C001', 'R002'),
('C001', 'R003'),
('C002', 'R001'),
('C002', 'R004'),
('C002', 'R005')

select * from class_group
select * from student

-- Tim hieu lenh update
update student set fullname = N'TRAN VAN ABC'
where rollno = 'R001'

-- Xoa du lieu
delete from student
where rollno = 'R001'

---> Xoa tat cac foreign key cua rollno = R001 di => sau do moi xoa dc
delete from class_group
where rollno = 'R001'

delete from student
where birthday >= '1980-01-01' and birthday <= '1990-01-01'
-- Huong dan chung ta fix -> stop -> hieu dc van de la OK

--- Tim hieu select
select * from student

select rollno, fullname, gender from student

select rollno, fullname, gender, birthday from student
where birthday >= '1990-01-02' and birthday <= '2002-12-31'

-- Sua lai su dung between > and
select rollno, fullname, gender, birthday from student
where birthday between '1990-01-02' and '2002-12-31'
-- ap dung voi date, datetime, number (int, float, ...)

--- TOP ---





Liên kết rút gọn:

https://gokisoft.com/1771

Bình luận