bài 1 - kiến thức cơ bản về sql server - công nghệ ado.net với c#
DESCRIPTION
Các khái niệm cơ bản Tiện ích SQL Server Management Studio Các thao tác bằng lệnh trên các bảng dữ liệuTRANSCRIPT
11
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
22
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Kiến thức cơ bản về SQL Server
1.Các khái niệm cơ bản
2.Tiện ích SQL Server Management Studio
3.Các thao tác bằng lệnh trên các bảng dữ liệu
33
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
1. Các khái niệm cơ bản
•Hệ quản trị cơ sở dữ liệu quan hệ
•Cơ sở dữ liệu (Database)
•Bảng (Table)
•Người dùng (User)
•Xác thực (Authentication)
44
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Hệ quản trị cơ sở dữ liệu quan hệ
•Hệ quản trị cơ sở dữ liệu là gì?
Relational Database Management System (RDBMS)
Là hệ thống các chương trình hổ trợ việc quản lý và khai thác dữ liệu theo mô hình cơ sở dữ liệu quan hệ
Cài đặt xử lý theo mô hình Client – Server
Cho phép đồng thời nhiều người dùng cùng khai thác dữ liệu
Cho phép sao lưu và phục hồi lại dữ liệu khi gặp sự cố
…
55
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Cơ sở dữ liệu
•Cơ sở dữ liệu (Database) là gì?
Là tập hợp các thông tin cùng ý nghĩa trong một tổ chức
•Quan hệ (Relation) là gì?
Là một bảng gồm các cột (Column) và các dòng (Row)
Các cột còn được gọi là trường (Field)
Các dòng còn được gọi là mẩu tin (Record)
66
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Quan hệ (Bảng)
77
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Bảng (Table)
•Các cột (Column)
•Các dòng (Row)
•Khóa chính (Primary Key)
•Khóa ngoại (Foreign Key)
88
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Người dùng (User)
•Tên (user name)
•Mật khẩu (password)
•Quyền hạn
99
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Xác thực khi đăng nhập (Authentication)
•Windows Authentication
•SQL Server Authentication
1010
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
2. SQL Server Management Studio
•Khởi động SSMS và đăng nhập vào SQL Server
•Tạo Database
•Tạo Table
•Tạo Database Diagram
1111
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Khởi động SSMS
•Khởi động SSMS
Thực đơn Programs Microsoft SQL Server SQL Server Management Studio
•Đăng nhập vào SQL Server
Server type: Database Engine
Server name: tên server hoặc địa chỉ IP
Authentication: Windows hoặc SQL Server
Nếu SQL Server Authentication: User name và Password
1212
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Tạo Database
•Tạo bằng giao diện
Nhấn nút phải chuột tại mục Databases
Chọn New Database …
Nhập tên CSDL và nhấn OK
•Tạo bằng lệnh CREATE DATABASE
CREATE DATABASE <Tên CSDL>
Lệnh USE <Tên CSDL>
1313
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Tạo Table
•Một số kiểu dữ liệu cơ bản
Kiểu chuỗi: Char, Varchar, NChar, NVarchar
Kiểu số: Int, Real, Money
Kiểu ngày: DateTime
Kiểu luận lý: Bit
1414
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Tạo Table
•Tạo cấu trúc
Chọn Database muốn tạo Table
Nhấn nút phải chuột tại mục Tables
Chọn New Table …
Tạo các cột
Xác định các cột làm khóa chính (Primary Key)
•Nhập dữ liệu
Chọn Table, nhấn nút phải chuột
Chọn Open Table
1515
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Tạo Database Diagram
•Để khai báo các ràng buộc khóa ngoại
•Thao tác
Chọn Database muốn tạo Diagram
Nhấn nút phải chuột tại mục Database Diagrams
Đưa các Table vào Diagram
Kéo và thả các cột từ bảng cha đến bảng con
Lưu Diagram
1616
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Bài thực hành 1
•Tạo database QLSINHVIEN
•Tạo các table
•Tạo database diagram
•Nhập dữ liệu
1717
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
3. Các thao tác trên bảng dữ liệu
•Truy vấn dữ liệu
•Cập nhật dữ liệu
Thêm
Sửa
Hủy
1818
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn dữ liệu
•Giới thiệu Ngôn ngữ SQL
•Truy vấn đơn giản trên một bảng
•Truy vấn đơn giản trên nhiều bảng
•Truy vấn có nhóm
1919
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Giới thiệu ngôn ngữ SQL
•Ngôn ngữ SQL
Structured Query Language (ngôn ngữ truy vấn có cấu trúc)
Được công ty máy tính IBM đề xuất vào năm 1970
Ngôn ngữ dùng để truy vấn dữ liệu (dạng tiếng Anh)
Select ma_sinh_vien, ho_sinh_vien, ten_sinh_vienFrom SINH_VIEN
2020
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Giới thiệu ngôn ngữ SQL
•Phân loại ngôn ngữ SQL
Ngôn ngữ định nghĩa dữ liệu (Data Definition Language)
Ngôn ngữ truy vấn dữ liệu (Structured Query Language)
Ngôn ngữ thao tác dữ liệu (Data Manipulation Language)
Ngôn ngữ điều khiển dữ liệu (Data Control Language)
2121
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn đơn giản trên một bảng
•Cú pháp 1
Select <Cột>|<Biểu thức>
From Tên bảng
[Order By <Cột sắp thứ tự>]
2222
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn đơn giản trên một bảng
•Ví dụ:
Select *
From SINH_VIEN
•Ví dụ:
Select ma_sinh_vien, ho_sinh_vien, ten_sinh_vien
From SINH_VIEN
2323
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn đơn giản trên một bảng
•Cú pháp 2
Select <Cột>|<Biểu thức>
From Tên bảng
[Where <Điều kiện lọc>]
[Order By <Cột sắp thứ tự>]
2424
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn đơn giản trên một bảng
•Ví dụ:
Select *
From SINH_VIEN
Where hoc_bong>0
2525
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn đơn giản trên một bảng
•Điều kiện lọc
Các toán tử luận lý: And, Or, Not
Các toán tử so sánh: >, >=, <, <=, =, <>, Like
Từ khóa Between:
hoc_bong Between 100000 And 200000
Từ khóa In:
hoc_bong In (100000,200000)
2626
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn trên nhiều bảng
•Cú pháp 3
Select <Cột>|<Biểu thức>
From <Bảng 1> Liên kết <Bảng 2>
[Where <Điều kiện lọc>]
[Order By <Cột sắp thứ tự>]
2727
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn trên nhiều bảng
•Liên kết Inner Join (bằng)
Chỉ liên kết khi các mẩu tin của hai bảng có giá trị trên cột liên kết là bằng nhau
•Cú pháp<Bảng 1> Inner Join <Bảng 2> On <Bảng 1>.Cột= <Bảng 2>.Cột
•Ví dụSINH_VIEN Inner Join KHOA
On SINH_VIEN.ma_khoa= KHOA.ma_khoa
2828
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn trên nhiều bảng
•Liên kết Left Join (ưu tiên trái)
Liên kết khi các mẩu tin của hai bảng có giá trị trên cột liên kết là bằng nhau. Và
“Ưu tiên” cho các mẩu tin của bảng bên trái
•Cú pháp<Bảng 1> Left Join <Bảng 2> On <Bảng 1>.Cột= <Bảng 2>.Cột
•Ví dụSINH_VIEN Left Join KHOA
On SINH_VIEN.ma_khoa= KHOA.ma_khoa
2929
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn trên nhiều bảng
•Liên kết Right Join (ưu tiên phải)
Liên kết khi các mẩu tin của hai bảng có giá trị trên cột liên kết là bằng nhau. Và
“Ưu tiên” cho các mẩu tin của bảng bên phải
•Cú pháp<Bảng 1> Right Join <Bảng 2> On <Bảng 1>.Cột= <Bảng 2>.Cột
•Ví dụSINH_VIEN Right Join KHOA
On SINH_VIEN.ma_khoa= KHOA.ma_khoa
3030
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn có nhóm và thống kê
•Cú pháp 4
Select <Cột>|<Biểu thức>
From <Bảng 1> Liên kết <Bảng 2>
[Where <Điều kiện lọc cho mẩu tin>]
[Group By <Cột nhóm>]
[Having < Điều kiện lọc cho nhóm>]
[Order By <Cột sắp thứ tự>]
3131
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn có nhóm và thống kê
•Ví dụ:
Select ma_khoa,Count(*) As dem
From SINH_VIEN
Group By ma_khoa
•Ví dụ:
Select ma_khoa,Count(*) As dem
From SINH_VIEN
Group By ma_khoa Having Count(*)>10
3232
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn có nhóm và thống kê
•Ví dụ:
Select ma_khoa,Count(*) As dem
From SINH_VIEN
Where hoc_bong>0
Group By ma_khoa
Having Count(*)>10
Order By Count(*) Desc
3333
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn có nhóm và thống kê
•Ví dụ:
Select SV.ma_khoa, ten_khoa, Count(*) As dem
From SINH_VIEN SV Inner Join KHOA KHOn SV.ma_khoa=KH.ma_khoa
Group By SV.ma_khoa, ten_khoa
3434
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Truy vấn có nhóm và thống kê
•Một số hàm thống kê
Đếm: COUNT(*), COUNT(Biểu thức)
Tính Tổng: SUM(Biểu thức)
Tính Trung bình: AVG(Biểu thức)
Tìm Giá trị nhỏ nhất: MIN(Biểu thức)
Tìm Giá trị lớn nhất: MAX(Biểu thức)
3535
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Bài thực hành 2
•Thực hiện câu truy vấn trên một bảng
•Thực hiện câu truy vấn trên nhiều bảng
•Thực hiện câu truy vấn có nhóm
3636
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Thao tác cập nhật dữ liệu
•Thêm mẩu tin (INSERT)
•Sửa mẩu tin (UPDATE)
•Xóa mẩu tin (DELETE)
3737
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Thêm mẩu tin vào bảng
•Cú pháp 1
Insert Into <Tên bảng> [(<Danh sách cột>)]
Values(<Danh sách giá trị>)
•Ví dụ
Insert Into KHOA (ma_khoa, ten_khoa)
Values(‘AV’, ‘Khoa Anh’)
3838
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Thêm mẩu tin vào bảng
•Cú pháp 1
Insert Into <Tên bảng> [(<Danh sách cột>)]
Values(<Danh sách giá trị>)
•Ví dụ
Insert Into KHOA
Values(‘AV’, ‘Khoa Anh’)
3939
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Thêm mẩu tin vào bảng
•Cú pháp 2
Insert Into <Tên bảng> [(<Danh sách cột>)]
Select <Danh sách cột|biểu thức> From …
•Ví dụ
Insert Into KHOA_LUU (ma_khoa, ten_khoa)
Select ma_khoa, ten_khoa From KHOA
4040
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Thêm mẩu tin vào bảng
•Lưu ý:
Dữ liệu kiểu chuỗi: ‘Ánh trăng’
Dữ liệu kiểu ngày: ‘12/24/2008’
Dữ liệu kiểu số: 123456.789
Dữ liệu kiểu luận lý: 1/0
4141
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Sửa mẩu tin trong bảng
•Cú pháp
Update <Tên bảng>
Set Cột1=Giá trị1 [, Cột2=Giá trị2, …]
[Where <Điều kiện>]
•Ví dụ
Update SINH_VIEN
Set hoc_bong = hoc_bong*1.1
Where ma_khoa=‘TO’ And hoc_bong>0
4242
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Xóa mẩu tin trong bảng
•Cú pháp
Delete From <Tên bảng>
[Where <Điều kiện>]
4343
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Xóa mẩu tin trong bảng
•Ví dụ
Delete From SINH_VIEN
Where hoc_bong<0 And ma_khoa Is Null
4444
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
http://www.facebook.com/groups/hoclaptrinhweb/
Bài thực hành 3
•Thực hiện lệnh INSERT INTO
•Thực hiện lệnh UPDATE
•Thực hiện lệnh DELETE