By GokiSoft.com|
21:08 18/12/2023|
SQL Server/MySQL
[Share Code] Tìm hiểu Join SQL + Union SQL + Group By SQL - C2307L
#readme.txt
Nội dung học:
- Select
- distinct
- union
- order by
- group by .. having
- join
- inner join
- left join
- right join
- full outer join
- Index
- clustered index
- non-clustered index
=========================================================
#SQLQuery1.sql
-- Test data
select * from Class
select * from Student
select * from Subject
select * from Result
-- Hien thi du lieu dau ra nhu sau:
---- ClassId (Class), ClassCode (Class), StudentName (Student)
select Class.ClassId, Class.ClassCode, Student.StudentName
from Class, Student
where Class.ClassId = Student.ClassId
go
-- Xem danh sach lop hoc co sinh vien tham gia
select * from Class
go
select top(2) * from Class
go
select distinct Class.ClassId, Class.ClassCode
from Class, Student
where Class.ClassId = Student.ClassId
go
-- Sap xep du lieu theo ClassCode (A-Z)
select distinct Class.ClassId, Class.ClassCode
from Class, Student
where Class.ClassId = Student.ClassId
order by Class.ClassCode asc
go
select distinct Class.ClassId, Class.ClassCode
from Class, Student
where Class.ClassId = Student.ClassId
order by Class.ClassCode desc
go
-- Dem so sinh vien trong lop hoc
---- ClassId, ClassCode, Total
select Class.ClassId, Class.ClassCode, COUNT(Student.StudentId) 'Total'
from Class, Student
where Class.ClassId = Student.ClassId
group by Class.ClassId, Class.ClassCode
go
-- Dem so sinh vien trong lop hoc -> CHi hien thi lop hoc co >= 2 sinh vien
---- ClassId, ClassCode, Total
(
select Class.ClassId, Class.ClassCode, COUNT(Student.StudentId) 'Total'
from Class, Student
where Class.ClassId = Student.ClassId
group by Class.ClassId, Class.ClassCode
having COUNT(Student.StudentId) >= 2 -- Dieu kien > ket qua cua count, sum, min, max, avg -> having
)
union
(
select Class.ClassId, Class.ClassCode, COUNT(Student.StudentId) 'Total'
from Class, Student
where Class.ClassId = Student.ClassId
group by Class.ClassId, Class.ClassCode
having COUNT(Student.StudentId) <= 1
)
-- Noi du lieu tu nhieu bang
select * from Class
select * from Student
select Class.ClassId, Class.ClassCode, Student.StudentName
from Class, Student
where Class.ClassId = Student.ClassId
go
-- Join
select Class.ClassId, Class.ClassCode, Student.StudentName
from Class inner join Student on Class.ClassId = Student.ClassId
go
select Class.ClassId, Class.ClassCode, Student.StudentName
from Class join Student on Class.ClassId = Student.ClassId
go
-- Hien thi tat ca lop hoc
select Class.ClassId, Class.ClassCode, Student.StudentName
from Class left join Student on Class.ClassId = Student.ClassId
go
-- Hien thi tat sinh vien ra -> TH ko co Class -> NULL
select Class.ClassId, Class.ClassCode, Student.StudentName
from Class right join Student on Class.ClassId = Student.ClassId
go
select Class.ClassId, Class.ClassCode, Student.StudentName
from Class full outer join Student on Class.ClassId = Student.ClassId
go
-- Dem so sinh vien trong lop hoc -> Lop khong co sinh vien -> fill 0
---- ClassId, ClassCode, Total
select Class.ClassId, Class.ClassCode, COUNT(Student.StudentId) 'Total'
from Class left join Student on Class.ClassId = Student.ClassId
group by Class.ClassId, Class.ClassCode
go
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)