Showing posts with label Truy vấn SQL. Show all posts

SQL online trích từ Giáo trình SQL[ chuẩn ]

CHƯƠNG 1 : TỔNG QUAN VỀ SQL
SQL là ngôn ngữ cơ sở dữ liệu quan hệ
Vai trò của SQL
Tổng quan về cơ sở dữ liệu quan hệ
Mô hình dữ liệu quan hệ
Bảng (Table)
Khoá của bảng
Mối quan hệ và khoá ngoài
Sơ lược về SQL
Câu lệnh SQL
Qui tắc sử dụng tên trong SQL
Kiểu dữ liệu
Giá trị NULL
Kết chương 
CHƯƠNG 2 : NGÔN NGỮ THAO TÁC DỮ LIỆU
Truy xuất dữ liệu với câu lệnh SELECT
Mệnh đề FROM
Danh sách chọn trong câu lệnh SELECT
Chỉ định điều kiện truy vấn dữ liệu
Tạo mới bảng dữ liệu từ kết quả của câu lệnh SELECT
Sắp xếp kết quả truy vấn
Phép hợp
Phép nối
Sử dụng phép nối
Các loại phép nối
Sử dụng phép nối trong SQL
Thống kê dữ liệu với GROUP BY
Thống kê dữ liệu với COMPUTE
Truy vấn con (Subquery)
Bổ sung, cập nhật và xoá dữ liệu
Bổ sung dữ liệu
Cập nhật dữ liệu
Xoá dữ liệu
Bài tập chương 

CHƯƠNG 3: NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU
Tạo bảng dữ liệu
Ràng buộc CHECK
Ràng buộc PRIMARY KEY
Ràng buộc UNIQUE
Ràng buộc FOREIGN KEY
Sửa đổi định nghĩa bảng 
Xoá bảng 
Khung nhìn
Tạo khung nhìn
Cập nhật, bổ sung và xoá dữ liệu thông qua khung nhìn
Sửa đổi khung nhìn
Xoá khung nhìn
Bài tập chương 

CHƯƠNG 4 : BẢO MẬT TRONG SQL
Các khái niệm 
Cấp phát quyền
Cấp phát quyền cho người dùng trên các đối tượng cơ sở dữ liệu
Cấp phát quyền thực thi các câu lệnh
Thu hồi quyền
Thu hồi quyền trên đối tượng cơ sở dữ liệu:
Thu hồi quyền thực thi các câu lênh:

CHƯƠNG 5: THỦ TỤC LƯU TRỮ, HÀM VÀ TRIGGER
Thủ tục lưu trữ (stored procedure)
Các khái niệm
Tạo thủ tục lưu trữ
Lời gọi thủ tục lưu trữ
Sử dụng biến trong thủ tục
Giá trị trả về của tham số trong thủ tục lưu trữ
Tham số với giá trị mặc định
Sửa đổi thủ tục
Hàm do người dùng định nghĩa
Định nghĩa và sử dụng hàm
Hàm với giá trị trả về là “dữ liệu kiểu bảng”
Trigger 
Định nghĩa trigger
Sử dụng mệnh đề IF UPDATE trong trigger
ROLLBACK TRANSACTION và trigger
Sử dụng trigger trong trường hợp câu lệnh INSERT, UPDATE và DELETE có tác động đến nhiều dòng dữ liệu
Sử dụng truy vấn con
Sử dụng biến con trỏ
Bài tập chương 

CHƯƠNG 6: GIAO TÁC SQL
Giao tác và các tính chất của giao tác 
Mô hình giao tác trong SQL 
Giao tác lồng nhau 


PHỤ LỤC
A Cơ sở dữ liệu mẫu sử dụng trong giáo trình 
B Một số hàm thường sử dụng
B1. Các hàm trên dữ liệu kiểu chuỗi
B2. Các hàm trên dữ liệu kiểu ngày giờ
B3. Hàm chuyển đổi kiểu

Trigger và các câu lệnh trong SQL

Trigger là một kiểu thủ tục được lưu đặc biệt, chúng được tự
động gọi khi bạn sửa đổi dữ liệu mà trigger được thiết kế để
bảo vệ.

• Các trigger giúp bảo đảm sự toàn vẹn cho dữ liệu của bạn bằng 
cách ngăn không cho những sự thay đổi không nhất quán được 
thực hiện.
• Vd : lương của nhân viên không thể cao hơn lương của người 
quản lý.



Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3469

Thuyết trình cơ sở dữ liệu - Ngông ngữ SQL

Đồng tác giả: nhóm gồm

1.VŨ ĐÌNH HƯỚNG TD2 
2.TRẦN PHƯỚC THỊNH TD23.PHẠM MINH THÀNH TD3
4.LÊ HỒNG HIẾU TD3 
5.ĐỖ THỊ HOA TD1 
6.NGUYỄN THỊ THÙY HƯƠNG TD1
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3468 



Thiết kế cơ sỡ dữ liệu quan hệ trong SQL [PowerPoint]

THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ (Relational Database Designing)
NGÔN NGỮ TRUY VẤN SQL(Structured Query Language = ngôn ngữ truy vấn có cấu trúc)


Nội dung tài liệu
Bấm vào đây để xem nội dung đầy đủ


Bài giảng bằng PowerPoint

      Password : Nếu có: kenhdaihoc.com


Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3467

SQL - Ngôn ngữ đinh nghĩa dữ liệu

Tài liệu chứa các lệnh trong SQL rất hay, mình đã tham khảo qua. khá good 



Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3465

So sánh MySQL và SQL server !


MS SQL và MySQL đều có những điểm đặc thù của chúng. Nếu cần so sánh, nên so sánh theo tính năng, hiệu suất, bảo mật và khả năng phục hồi.... 

Tôi thấy MySql phiên bản 4.x không thể so với MSSQL vì phiên bản này thiếu khá nhiều tính năng quan trọng để được xếp loại là một CSDL hạng nặng (ví dụ như thiếu ứng dụng View, StoreProc, Triggers...). Để công bằng nên thử so sánh MySql 5.x và MSSQL 2005. 

1. Tính năng: 
Tôi cho rằng MySql hơn MSSQL ở tính năng cung cấp nhiều loại storage engine. Tuy nhiên tính về mặt integration chặt chẽ cho trọn bộ hệ thống và công cụ phát triển software thì MSSQL integrate tốt hơn MySql, đặc biệt ở mảng .NET. MSSQL còn hỗ trợ XML trực tiếp trong DB, trong khi đó thì MySQL chưa làm được chuyện này. Các chức năng cần thiết như View, StoreProcedure, Trigger thì cả hai tương đương nhau. 

2. Hiệu suất: 
Tính về mặt hiệu suất, có rất nhiều thử nghiệm và tường trình cho rằng MSSQL perform kém hơn MySQL nhiều mặt. MSSQL đòi hỏi tài nguyên rất lớn (CPU mạnh, nhiều RAM...), nếu không nó rất ì ạch. MySQL không đòi hỏi nhiều như MSSQL. MySQL có thể chạy trên các UNIX highend system và perform tốt hơn MSSQL trên Windows highend server trong nhiều trường hợp. 

3. Bảo mật: 
MSSQL qua mặt MySQL về tính bảo mật ở column level. MySQL chỉ có thể set access đến row level là hết. Hệ thống xác thực người dùng của MSSQL cũng qua mặt MySQL. Tuy vậy, trên bình diện "để hở cổng" thì MSSQL dễ bị exploit hơn MySQL bởi MSSQL tích hợp quá chặt vào hệ điều hành. Lỗi của hệ điều hành hoặc một bộ phận nào đó dẫn đến việc nhân nhượng MSSQL nhanh chóng hơn MySQL. 

4. Khả năng nhân bản (replication): 
Cả hai đều có khả năng replicate hoặc cung cấp phương tiện để làm việc này. Tuy nhiên, MySQL nhanh hơn và ít sự cố hơn MSSQL vì tất cả các SQL statements dùng để thay đổi, cập nhật dữ liệu được lưu giữ trong binary log. MSSQL cung cấp nhiều phương pháp replicate cao cấp hơn, chi tiết hơn bởi thế nó phức tạp hơn và chậm hơn. 

5. Khả năng phục hồi (recovery): 
Nếu MySQL chạy thuần túy với MyISAM storage engine thì khả năng phục hồi (sau khi bị crash) không cách gì so sánh với MSSQL. Tuy nhiên nếu MySQL chạy với Innodb engine thì khả năng phục hồi không thua kém gì MSSQL. Ngoài ra, khả năng phục hồi còn được xét ở biên độ liên quan đến khả năng nhân bản (replication) ở trên. Bởi vì MSSQL cung cấp nhiều phương thức nhân bản nên việc phục hồi dữ liệu trên MSSQL dễ dàng hơn. 

6. Phí tổn: 
MySQL bản community không hề tốn tiền để mua nhưng bạn phải tự xắn tay áo lên. Tuy nhiên cài đặt, sử dụng và tối ưu MySQL không khó vì tài liệu của nó rất đầy đủ, thông tin về MySQL tràn ngập trên web. So với MSSQL, bạn phải trả gần một ngàn rưỡi đô cho 1 license MSSQL standard và khi cần support, bạn phải trả thêm tiền support (tùy case). MS vẫn cung cấp bản MSSQL không thu phí dành cho mục đích development. Tài liệu về MSSQL cũng rất nhiều trên mạng. Bản MySQL enterprise thì phải trả tiền (khoảng 400 đô) nhưng bạn được support đầy đủ. 

Kinh nghiệm bản thân tôi thấy MySQL dùng được. Có thể cáng đáng khối lượng dữ liệu rất lớn. Tuy vậy, dùng MyISAM thì nhanh nhưng sẽ gặp nhiều vấn đề phức tạp. Dùng Innodb thì chậm hơn nhưng ít bị những trục trặc về "deadlock". Dùng MSSQL thì server phải tốt không thì ì ạch lắm. Nói chung, dùng CSDL nào đi chăng nữa, việc tối ưu chúng là việc không thể thiếu được. Việc nhập / xuất dữ liệu nên xét thật kỹ lưỡng và logic. Không lạm dụng tính năng của CSDL và phó mặc cho chúng. Tất cả các SQL statement phải "make sense" và vừa đủ. 

[SOURCE]hvaonline.net[/SOURCE]

Tài liệu Bài giảng môn cơ sở dữ liệu gồm 5 chương khá chi tiết [ Power Point]

Chương 1: Hệ Quản trị cơ sở dữ liệu DBMS
Chương 2- Tạo và Thiết lập các ràng buộc CSDL
Chương 3-Khai thác, quản lý và duy trì dữ liệu
Chương 4-Làm việc với View và Chỉ mục
Chương 5-Lập trình, thủ tục lưu trữ, hàm và Trigger ( Chương này hay nhất nek )

      Password : kenhdaihoc.com



Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3283

8 Câu hỏi và trả lời [ Bài tập quản lý điểm tốt nghiệp] - Tạo bảng ảo(View)

Tạo một database QLDiem_TN gồm các table sau

1: TABLE SINH VIÊN








2: TABLE ĐỀ TÀI






3: TABLE SV_DETAI











4: TABLE HOCHAM











5: TABLE GIAOVIEN










6: TABLE HOCVI












7: TABLE CHUYENNGANH












8: TABLE GV_HV_CN






9: TABLE GV_HĐT











10: GV_PBDT











11: GV_UVDT











11: TABLE HOIDONG











12: TABLE HOIDONG_GV











14: TABLE HOIDONG_DT












Tạo bảng ảo (view) với các câu hỏi sau

Câu 1: Ứng với mỗi đề tài cho biết: Tên đề tài, tên sinh viên tham gia, tên giáo viên hướng dẩn, tên giáo viên phản biện

Câu 2: Ứng với mỗi giáo viên cho biết: Tên đề tài hướng dẩn

Câu 3: Ứng với mỗi giáo viên cho biết: Tên đề tài phản biện

Câu 4: Ứng với mỗi hội đồng bảo vệ thử cho biết: Tên đề tài, quyết định được bảo vệ thật hay không?

Câu 5: Ứng với mỗi hội đồng bảo vệ thật co biết: Tên đề tài, điểm cuối cùng của mỗi đề tài ( DIEMTB=diem.GVHD+diem.GVPB+sum(diem.GVUV)

Câu 6: Ứng với mỗi đề tài cho biết: Tên đề tài,tên sinh viên, điểm của mỗi giáo viên thuộc hội đồng

Câu 7: Ứng với mỗi hội đồng cho biết: Thời gian, ngày, số lượng đề tài bảo vệ, tên chủ tịch hội đồng.

Câu 8: Ứng với mỗi hội đồng cho biết: Tên giáo viên thuộc hội đồng và số điện thoại.

Download file SQL: 
http://kenhdaihoc.com/forum/attachment.php?attachmentid=19&d=1334649662

/* Su dung Query analyzer thuc hien cac cau hoi sau */

/* Cau 1: Tao mot Database QLDiem_TN gom cac bang sao */

create database QLDiem_TN

on primary /* Tap tin chinh */(name=QLDiem_TN,filename='D:\Sql Server\QLDiem_TN.mdf',size=10MB,maxsize=200MB,filegrowth=10%)

log on /* Tap tin luu vet */(name=QLDiem_TN_log,filename='D:\Sql Server\QLDiem_TN_log.ldf',size=20MB,maxsize=200MB,filegrowth=10%)

/* Tao bang */create table SINHVIEN(MSSV char(6) not null,TENSV varchar(30)not null,SODT varchar(10) not null,LOP char(6) not null,DIACHI char(50) not nullconstraint PK_SINHVIEN_MSSV primary key(MSSV)

create table DETAI(MSDT char(6) not null,TENDT varchar(30) not null,constraint PK_DETAI_MSDT primary key(MSDT))

create table SV_DETAI(MSSV char(6) not null,MSDT char(6) not null,constraint FK_SV_DETAI_MSSV foreign key(MSSV) references SINHVIEN(MSSV),constraint FK_SV_DETAI_MSDT foreign key(MSDT) references DETAI(MSDT))

create table HOCHAM(MSHH smallint not null,TENHH varchar(20) not null,constraint PK_HOCHAM_MSHH primary key(MSHH))

create table GIAOVIEN(MSGV smallint not null,TENGV varchar(30)not null,DIACHI varchar(50) not null,SODT varchar(10) not null,MSHHAM smallint not null,NAMHH smalldatetime not nullconstraint PK_GIAOVIEN_MSGV primary key(MSGV),constraint FK_GIAOVIEN_MSHHAM foreign key(MSHHAM) references HOCHAM(MSHH) )

create table HOCVI(MSHV smallint not null,TENHV varchar(10) not null,constraint PK_HOCVI_MSHV primary key(MSHV))

create table CHUYENNGANH(MSCN smallint not null,TENCN varchar(30) not null,constraint PK_CHUYENNGANH_MSCH primary key(MSCN))

create table GV_HV_CN(MSGV smallint not null,MSHV smallint not null,MSCN smallint not null,NAM smalldatetime not null,constraint PK_GV_HV_CN_MSGV_MSHV_MACN primary key(MSGV,MSHV,MSCN),constraint FK_GV_HV_CN_MSGV foreign key(MSGV) references GIAOVIEN(MSGV),constraint FK_GV_HV_CN_MSHV foreign key(MSHV) references HOCVI(MSHV),constraint FK_GV_HV_CN_MSCN foreign key(MSCN) references CHUYENNGANH(MSCN) )

create table GV_HDDT(MSGV smallint not null,MSDT char(6) not null,DIEM float not null,constraint PK_GV_HDDT_MSGV_MSDT primary key(MSGV,MSDT),constraint FK_GV_HDDT_MSGV foreign key(MSGV) references GIAOVIEN(MSGV),constraint FK_GV_HDDT_MSDT foreign key(MSDT) references DETAI(MSDT))

create table GV_PBDT(MSGV smallint not null,MSDT char(6) not null,DIEM float not null,constraint PK_GV_PBDT_MSGV_MADT primary key(MSGV,MSDT),constraint FK_GV_PBDT_MSGV foreign key(MSGV) references GIAOVIEN(MSGV),constraint FK_GV_PBDT_MSDT foreign key(MSDT) references DETAI(MSDT) )

create table GV_UVDT(MSGV smallint not null,MSDT char(6) not null,DIEM float not null,constraint PK_GV_UVDT_MSGV_MSDT primary key (MSGV,MSDT),constraint FK_GV_UVDT_MSGV foreign key(MSGV) references GIAOVIEN(MSGV),constraint FK_GV_UVDT_MSDT foreign key(MSDT) references DETAI(MSDT))

create table HOIDONG(MSHD smallint not null,PHONG smallint,TGBD datetime,NGAYHD smalldatetime not null,TINHTRANG varchar(30) not null,MSGVCTHD smallint not null,constraint PK_HOIDONG_MSHD primary key(MSHD),constraint FK_HOIDONG_MSGVCTHD foreign key(MSGVCTHD)references GIAOVIEN(MSGV) )

create table HOIDONG_GV(MSHD smallint not null,MSGV smallint not null,constraint PK_HOIDONG_GV_MSHD_MSGV primary key(MSHD,MSGV),constraint FK_HOIDONG_GV_MSHD foreign key(MSHD) references HOIDONG(MSHD),constraint FK_HOIDONG_GV_MSGV foreign key(MSGV) references GIAOVIEN(MSGV) )

create table HOIDONG_DT(MSHD smallint not null,MSDT char(6) not null,QUYETDINH char(10),constraint PK_HOIDONG_DT_MSHD_MSDT primary key(MSHD,MSDT),constraint FK_HOIDONG_DT_MSHD foreign key(MSHD) references HOIDONG(MSHD),constraint FK_HOIDONG_DT_MSDT foreign key(MSDT) references DETAI(MSDT))

/* Cau 2: Nhap du lieu cho cac table */

/* Nhap du lieu cho bang SINHVIEN */insert into SINHVIEN(MSSV,TENSV,DIACHI,LOP,SODT)select '97TH01','Nguyen Van An','12 NTMK','97TH01','9688543' unionselect '97TH02','Tran Hung','13/4 LCT','97TH01','6453443' unionselect '97TH03','Le Thuy Hang','24 Pasteur','97TH01','8544457' unionselect '97TH04','Ngo Khoa','54/12 LHP','97TH02','8545439' unionselect '97TH05','Pham Tai','12 HPT','97TH02','8149023' unionselect '97TH06','Dinh Tien','31 THD','97TH01','8956123'

/* Nhap du lieu cho bang DETAI */insert into DETAI(MSDT,TENDT)select '97001','Quan ly thu vien' unionselect '97002','Nhan dang van tay' unionselect '97003','Ban dau gia tren mang' union select '97004','Quan ly sieu thi' union select '97005','Xu ly anh' 



/* Nhap du lieu cho bang SV_DETAI */insert into SV_DETAIselect '97TH01','97004' unionselect '97TH02','97005' unionselect '97TH03','97001' unionselect '97TH04','97002' unionselect '97TH05','97003' unionselect '97TH06','97005'

/* Nhap du lieu cho bang HOCHAM */insert into HOCHAM(MSHH,TENHH)values('1','Pho giao su')insert into HOCHAM(MSHH,TENHH)values('2','Giao su')

/* Nhap du lieu cho bang GIAOVIEN */insert into GIAOVIEN(MSGV,TENGV,DIACHI,SODT,MSHHAM,NAMHH)select '1','Nguyen Van A','11 NVD','8754321','1','1/1/1996' unionselect '2','Tran Thu Trang','54 XVNT','8964334','1','1/1/1996' unionselect '3','Le Trung','12/5/CMTT','8903561','1','1/1/1996' unionselect '4','Nguyen Thi Loan','321 BTX','8012864','2','1/1/1997' unionselect '5','Chu Van Tien','1/60 TVD','8157906','2','1/1/1997'

/* Nhap du lieu cho bang HOCVI */insert into HOCVI(MSHV,TENHV)select '1','KS' unionselect '2','CN' union select '3','Th.S' union select '4','TS' union select '5','TSKH'

/* Nhap du lieu cho bang CHUYENNGANH*/insert into CHUYENNGANH(MSCN,TENCN)select '1','He thong thong tin' unionselect '2','Mang' unionselect '3','Do hoa' unionselect '4','Cong nghe phan mem'

/* Nhap du lieu cho bang GV_HV_CN*/insert into GV_HV_CN(MSGV,MSHV,MSCN,NAM)select '1','1','1','1/1/1999' unionselect '1','1','2','1/1/1999' unionselect '1','2','1','1/1/1998' unionselect '2','3','2','1/1/1997' unionselect '3','2','4','1/1/1997' unionselect '4','3','2','1/1/1996' 

/* Nhap du lieu cho bang GV_HDDT*/insert into GV_HDDT(MSGV,MSDT,DIEM)select '1','97001','7' unionselect '2','97002','8' unionselect '3','97003','9' unionselect '4','97004','8.5' unionselect '5','97005','7' 
/* Nhap du lieu cho bang GV_PBDT*/insert into GV_PBDT(MSGV,MSDT,DIEM)select '1','97005','5' unionselect '2','97001','7' unionselect '3','97004','6' unionselect '4','97003','8.5' unionselect '5','97002','8'

/* Nhap du lieu cho bang GV_UVDT*/insert into GV_UVDT(MSGV,MSDT,DIEM)select '5','97005','6' unionselect '2','97005','5' unionselect '4','97005','5' unionselect '3','97001','7' unionselect '4','97001','7' unionselect '5','97001','8' unionselect '3','97003','10' unionselect '1','97003','7' unionselect '2','97003','7' unionselect '1','97004','8' unionselect '2','97004','9' unionselect '3','97004','5' unionselect '1','97002','9' unionselect '4','97002','9' unionselect '5','97002','6'

/* Nhap du lieu cho bang HOIDONG*/insert into HOIDONG(MSHD,PHONG,TGBD,NGAYHD,TINHTRANG,MSGVCTHD)select '1','002','7:00','10/30/2001','That','1' unionselect '2','102','7:00','10/31/2001','Thu','2' unionselect '3','003','8:00','10/31/2001','That','3'

/* Nhap du lieu cho bang HOIDONG_GV*/insert into HOIDONG_GV(MSHD,MSGV)select '1','1' unionselect '1','2' unionselect '1','3' unionselect '1','4' unionselect '2','3' unionselect '2','2' unionselect '2','5' unionselect '2','4' union select '3','1' unionselect '3','2' unionselect '3','3' unionselect '3','4'

/* Nhap du lieu cho bang HOIDONG_DT*/insert into HOIDONG_DT(MSHD,MSDT,QUYETDINH)select '1','97001','Duoc' unionselect '1','97002','Duoc' unionselect '2','97003','Khong' unionselect '2','97004','Khong' unionselect '1','97005','Duoc' unionselect '3','97001','Khong' unionselect '3','97002','Duoc' unionselect '3','97004','Khong'

/* Cau III: Tao cac bang ao(view) nhu sau */

/* Cau1: Ung voi moi de tai cho biet: ten de tai, ten sinh vien tham gia, ten giao vien huong dan, ten giao vien phan bien */create view cau1asselect TENDT,TENSV, GV1.TENGV as [GIAO VIEN HUONG DAN],GV2.TENGV as [GIAO VIEN PHAN BIEN]from DETAI DT,SINHVIEN SV, SV_DETAI SV_DT,GIAOVIEN GV1, GIAOVIEN GV2,GV_HDDT,GV_PBDTwhere DT.MSDT=SV_DT.MSDT and SV.MSSV=SV_DT.MSSV and DT.MSDT= GV_HDDT.MSDT and DT.MSDT=GV_PBDT.MSDTand GV1.MSGV=GV_HDDT.MSGV and GV2.MSGV=GV_PBDT.MSGVand GV1.TENGV in(select GV1.TENGV from DETAI, GIAOVIEN,GV_HDDT where DT.MSDT=GV_HDDT.MSDT and GV1.MSGV=GV_HDDT.MSGV)and GV2.TENGV in(select GV2.TENGV from DETAI, GIAOVIEN,GV_PBDTwhere DT.MSDT=GV_PBDT.MSDT and GV2.MSGV=GV_PBDT.MSGV)goselect*from cau1

/* Cau 2: Ung voi moi giao vien cho biet ten de tai huong da */create view cau2asselect TENGV,TENDTfrom GIAOVIEN inner join GV_HDDT on GIAOVIEN.MSGV=GV_HDDT.MSGVinner join DETAI on DETAI.MSDT=GV_HDDT.MSDTgoselect *from cau2/* cach 2 */create view cau2_otherwiseas select TENGV,TENDTfrom GIAOVIEN,DETAI,GV_HDDTwhere(GIAOVIEN.MSGV=GV_HDDT.MSGV and GV_HDDT.MSDT=DETAI.MSDT) goselect *from cau2_otherwise

/*Cau 3: Ung voi moi giao vien cho biet: Ten de tai huong dan */create view cau3asselect TENGV,TENDTfrom DETAI,GIAOVIEN,GV_HDDTwhere (DETAI.MSDT=GV_HDDT.MSDT and GIAOVIEN.MSGV=GV_HDDT.MSGV) goselect *from cau3

create view cau3_otherwiseasselect TENGV,TENDTfrom DETAI inner join GV_HDDT on DETAI.MSDT=GV_HDDT.MSDTinner join GIAOVIEN on GIAOVIEN.MSGV=GV_HDDT.MSGVgoselect *from cau3_otherwise
/* Cau 4: Ung voi moi hoi dong bao ve "that" cho biet: ten de tai, quyet dinh duoc bao ve hay khong? */create view cau4asselect DETAI.TENDT,HOIDONG_DT.QUYETDINHfrom DETAI,HOIDONG_DT,HOIDONGwhere(DETAI.MSDT=HOIDONG_DT.MSDT AND HOIDONG.MSHD=HOIDONG_DT.MSHD AND HOIDONG.TINHTRANG='THU')goselect *from cau4
/*cau 5: ung voi moi hoi dong bao ve "that" cho biet: ten de tai, diem cuoi cung cua moi de tai(DIEMTB=diemGVHD+diem.GVPB+sum(diemGV+UV) */create view cau5 /* MÌNH CHUA LÀM RA :d BAN NAO LAM RA ROI GIUP MINH VOI NHÉ ]asselect DETAI.TENDT,avg(GV_HDDT.DIEM+GV_PBDT.DIEM) + sum(GV_UVDT.DIEM) as [DIEM TB]from DETAI,GV_UVDT,GV_HDDT,GV_PBDTwhere(DETAI.MSDT=GV_HDDT.MSDT and DETAI.MSDT=GV_PBDT.MSDT and GV_UVDT.MSDT=DETAI.MSDT)group by TENDTgoselect *from cau5

/* Cau 6: Ung voi moi hoi dong cho biet: Ten de tai, ten sinh vien,diem cua moi giao vien thuoc hoi dong */create view cau6asselect DETAI.TENDT,SINHVIEN.TENSV,GV_HDDT.DIEM AS[DIEM GV HDDT],GV_PBDT.DIEM AS[DIEM GV PBDT]from DETAI,SINHVIEN,GV_HDDT,GV_PBDT,SV_DETAIwhere(SINHVIEN.MSSV=SV_DETAI.MSSV AND GV_HDDT.MSDT=GV_PBDT.MSDT AND SV_DETAI.MSDT=DETAI.MSDT AND GV_HDDT.MSDT=SV_DETAI.MSDT AND GV_PBDT.MSDT=SV_DETAI.MSDT)goselect *from cau6

/*Cau7:ung voi moi hoi dong cho biet: thoi gian, ngay, so luong de tai bao ve. ten chu tich hoi dong */ create view cau7([THOI GIAN],[NGAY BAO VE],[SO LUONG DE TAI],[ TEN CTHD])asselect cast(datepart(hour,TGBD) as varchar)+'GIO',cast(day(NGAYHD) as varchar)+'-'+cast(month(NGAYHD)as varchar)+'-'+cast(year(NGAYHD)as varchar),count(MSDT),TENGVfrom HOIDONG T1,HOIDONG_DT T2,GIAOVIEN T3where T1.MSHD=T2.MSHD and MSGVCTHD=MSGV group by TGBD,NGAYHD,TENGVgoselect *from cau7

/* Cau 8: Ung voi moi hoi dong cho biet: Ten giao vien thuoc hoi dong va so dien thoai */create view cau8asselect TENGV,SODTfrom GIAOVIEN,HOIDONGwhere (GIAOVIEN.MSGV=HOIDONG.MSGVCTHD)goselect *from cau8


Popular Posts