SQL - Transact SQL

I. Lý thuyết.

1. Ngôn ngữ Transact SOL.
Transact SOL là một ngôn ngữ mạnh, nó hỗ trợ các tính năng khác như: Kiểu dữ liệu, đối tượng tạm thời, thủ tục lưu trữ và thủ tục hệ thống.
- Nó cung cấp một ngôn ngữ bao hàm toàn diện để định nghĩa bảng, chèn, xóa, thay đổi và truy cập dữ liệu trong bảng. Nó cho phép chúng ta định nghĩa đối tượng con trỏ, khai báo biến, caasi trúc dẽ nhánh, vòng lặp lỗi.
2. Một số câu lệnh cơ bản.
+ SELECT: câu lệnh này truy lục tất cả các bản ghi từ một bảng mà ta cần.
Ví dụ: SELECT *FROM Employee
Trong đó:
- SELECT lệnh lấy.
                 - Dấu * tức là lấy toàn bộ dữ liệu.
                 - FORM là lấy từ đâu.
                 - Employee là bảng mà ta cần lấy                              
3. Biến.
Biến là một đối tượng để lưu trữ một giá trị dữ liệu. Dữ liệu có thể được truyền đến câu lệnh SQL bằng cách sử dụng tên biến. Tên biến cục bộ phải khai báo bắt đầu ký hiệu @.
- Biến được chia ra làm hai loại: Biến cục bộ và biến toàn cục.
+ Biến cục bộ: Nó dùng để lưu trữ do người dùng tạo ra và để lưu trữ những giá trị tạm thời.
Cú pháp:
DECLARE
{
@local_variable[AS]data_type
}
Trong đó: 
@local_variable[AS]data_type: Tên biến cục bộ, phải bắt đầu bằng ký hiệu @.
                  - data_type: kiểu dữ liệu hệ thống hoặc kiểu dữ liệu người dùng.
- Chú ý: Ta dùng câu lệnh SET hoặc SELECT để gán giá trị cho biến.
Cú pháp:
SET @
local_variable = value
Hoặc
SELECT @
local_variable = value
+ Biến toàn cục: Nó có sẵn và hệ thống quản lý và trong SQL server được đặt tên bắt đầu bởi 2 ký hiệu @.
Cú pháp:SECLECT @@VERSION
4. Kiểu dữ liệu.
Kiểu dữ liệu là thuộc tính định nghĩa loại dữ liệu mà đối tượng có thể chứa. Trong Transact SQL bao gồm các kiểu dữ liệu như: nvarchar, text, int, nchar, float,.....
- Một số đối tượng sử dụng kiểu dữ liệu: Cột trong bảng và trong view, tham số trong thủ tục lưu trữ, biến, hàm trả về giá trị, thủ tục lưu trữ trả về giá trị.
5. Chú thích.
- Chú thích là diễn giải trong chương trình (đoạn lệnh) mà trình biên dịch sẽ bỏ qua.
- Mục địch của nó là giải thích mã lệnh để bảo trì hoặc sửa lỗi dễ dàng.
- Sử dụng -- để viết chú thích cho một dòng.
- Sử dụng /*....*/ để chú thích cho nhiều dòng
6. Hàm.
Hàm là tập lệnh Transact SQL để thực hiện công việc nào đó. Hàm trong SQL làm việc với dữ liệu, nhóm dữ liệu để trả về một kết quả mong đợi.
- Transact SQL có các loại hàm sau: Các hàm tập hợp, hàm chuyển đổi kiểu dữ liệu, hàm ngày tháng, hàm toán học, các hàm hệ thống, hàm xếp hạng.
Hàm tập hợp:
SUM(col_name) : Hàm tính tổng, trả về tổng giá trị của col_name.
AVG(col_name) : Trả tính giá trị trung bình.
COUNT : Đếm số bảng ghi trong bảng.
MAX(col_name) : trả về giá trị lớn nhất.
MIN(col_name) : trả về giá trị nhỏ nhất.
- Hàm chuyển đổi dữ liệu: Được sử dụng để biến kiểu dữ liệu này sang kiểu dữ liệu khác
Cú pháp:
CONVERT(datatype[(length)],expression[,style])
Trong đó: - datatype: là kiểu dữ liệu cần chuyển sang.
                - length: chỉ ra độ dài của dữ liệu.
                - expression: chỉ ra tên cột, hằng số, biến hoặc là câu truy vấn con.
                - style: chỉ ra kiểu hiển thị giá trị.
- Hàm ngày tháng:
GETDATE() : Trả về ngày hiện tại của hệ thống.
DATEADD(datepart,number,date) : cộng và thêm number giá trị của date.
DATEDIFF(datepart,date1,date2) : song sánh giữa 2 giá trị ngày tháng.
DATENAME(datepart,date) : trả về giá trị ngày tháng dưới dạng chuỗi.
DATEPART(datepart,date) : trả về một phần giá trị ngày tháng.
- Hàm toán học:
ABS(num_expr) : trả về giá trị tuyệt đối.
CEILING(num_expr) : trả về giá trị nhỏ nhất lớn hơn hoặn bằng num_expr.
FLOOR(num_expr) : trả về giá trị nhỏ nhất lớn hơn hoặn bằng num_expr. 
POWER(num_expr,y) : Hàm lũy thừa.
ROUND(num_expr,length) : Hàm làm tròn.
SIGN(num_expr) : Trả về +1 nếu num_expr là số dương, trả về -1 nếu num_expr là số âm, trả về 0 nếu num_expr bằng 0.
SQRT(num_expr) : Hàm căn bậc hai.
-Hàm hệ thống: 
DB_ID('database_name') : trả về số định danh của cơ sở dữ liệu.
DB_NAME([database_id]) " trả về tên cơ sở dữ liệu.
HOST_ID() : trả về số định danh cho máy trạm.
HOST_NAME() : trả về tên máy trạm.
ISNULL(expr,value) : nếu expr là NULL thì được thay giá trị bằng value.
OBJECT_ID('obj_name') : Số định danh đối tượng
OBJECT_NAME('obj_id') : trả về đối tượng.
USER_ID([user_name']) : số định danh người dùng.
USER_NAME([user_id']) : tên người dùng.
- Hàm xếp hạng:
ROW_NUMBER() : Hàm đánh số hàng, bắt đầu, bằng 1 với hàng đầu tiên và 2,3 với các hàng tiếp theo.
DENSE_RANK() : Trả về giá trị xếp hạng giữa các hàng mà không có khoảng cách giữ các hạng.
7. Câu lệnh trong thao tác dữ liệu.
- Có 4 câu lệnh: SELECT, INSERT, UPDATE, DELETE.
- SELECT: Lấy dữ liệu ra.
Cú pháp:
SELECT <column_name(s)> FROM <Table_name>
Trong đó: - <column_name(s)> : là tên của cột hoặc danh sách cột cần lấy dữ liệu.
                - <Table_name> : tên của bảng dữ liệu. 
- INSERT: Chèn dữ liệu.
Cú pháp:
INSERT INTO <Table_name>
VALUES <value>
Trong đó: - <Table_name> : tên bảng mà dữ liệu được chèn vào.
                - <value>: là các giá trị được chèn vào các cột trường tương ứng trong bảng.
                - INTO là từ khóa được sử dụng.
- UPDATE:Cập nhập dữ liệu.
Cú pháp: 
UPDATE <Table_name>
SET <Column_Name = Value>
[WHERE <Search condition>]
Trong đó: - <Table_name> là tên bảng mà dữ liệu trong đó được thay đổi.
                - <Column_Name> là tên cột dữ liệu thay đổi.
                - <Search condition> là điều kiện thỏa mãn mà các dữ liệu thay đổi.
                - Value là giá trị giữ liệu thay đổi.
- DELETE: Xóa dữ liệu.
Cú pháp:
DELETE FROM <Table_name>
[WHERE <Search condition>]
Trong đó: - <Table_name> là tên bảng có dữ liệu cần xóa
                - <Search condition> chỉ định điều kiện. Nếu không có mệnh đè này, tất cả các bản ghi trong bảng sẽ bị xóa.

II. Một số code về các dòng lệnh.
1. SELECT


2. Biến



4. Hàm

5. Câu lệnh trong các thao tác dữ liệu
- Tạo một cơ sở dữ liệu mới.

 - Xóa 1 bản ghi trong bảng

- Sửa 1 bản ghi trong bảng

----------------------------------------------------------------------------------------------------------

SQL - TẠO VÀ QUẢN LÍ CSDL

I. Lý thuyết.
1. Các cơ sở dữ liệu được SQL hỗ trợ.
- SQL Server hỗ trợ ba loại cơ sở dữ liệu:
+ Cơ sở dữ liệu hệ thống: Được tạo bởi SQL Server. Các cơ sở dữ liệu này được sử dụng để lưu thông tin về SQL Server. Ngoài ra, các cơ sở dữ liệu này còn được sử dụng để quản lí người dùng.
+ Cơ sở dữ liệu người dùng định nghĩa: Người sử dụng SQL Server có thể tạo các cơ sở dữ liệu người dùng định nghĩa. Mục đích các cơ sở dữ liệu này là để lưu dữ liệu của người sử dụng.
- Để tạo một cơ sở dữ liệu người dùng, các thông tin sau được yêu cầu:
+ Tên của sơ sở dữ liệu.
+ Người sở hữu hoặc người tạo cơ sở dữ liệu.
+ Kích thước của cơ sở dữ liệu.
+ Các tập tin và nhóm các tập tin được sử dụng để lưu trữ cơ sở dữ liệu.
Cú Pháp:
CREATE DATABASE database_name
[ ON
[ PRIMARY ] [ <filespec> [ ,....n ]
[ , <filegroup> [ ,...n ] } ]
]
[ COLLATE collation_name ]
]
[;]
- Cách chỉnh sửa một cơ sở dữ liệu:
Cú Pháp:
ALTER DATABASE database_name
{
<add_or_modify_files>
| <add_or_modify_filegroups>
| <set_database_options>
| MODIFY NAME = new_database_name
| COLLATE collation_name
} [;]
- Thay đổi người sở hữu database:
Cú Pháp:
EXECUTE sp_changedbowner [@loginame=]'login';
+ Cơ sở dữ liệu mẫu: SQL Server cung cấp các cơ sở dữ liệu mẫu để người sử dụng làm việc với SQL Server. Một cơ sở dữ liệu mẫu được giới thiệu trong SQL Server là AdventureWorks.
- Các cơ sở dữ liệu hệ thống gồm có:
+ master: Lữu trữ các tất cả các thông tin ở mức hệ thống của một nhân bản SQL Server.
+ msdb: Được sử dụng bởi SQL Server Agent để nhắc nhở các công tác thực hiện theo lịch biểu và các công việc khác. 

+ model: Được sử dụng như cơ sở sữ liệu mẫu cho tất cả các cơ sở dữ liệu được tạo ra trong một nhân bản cụ thể của SQL Server.
+ resource: Là cơ sở dữ liệu chỉ đọc. Nó gồm các đối tượng hệ thống được gộp vào trong SQL Server.
+ tempdb: Lữu dữ các đối được tạm và các tập kết quả trung gian.
- Người dùng không được phép cập nhập thông tin trực tiếp vào các đối tượng cơ sở dữ liệu hệ thống.
- Người sử dụng có thể sử dụng các công cụ quản trị để quản trị hệ thống và quản lý tất cả các đối tượng cơ sở dữ liệu. Gồm có:
+ SQL Server Management Studio.
+ SQL Server Management Objects (SMO): Giao diện lập trình ứng dụng  với các đối tượng quản lý SQL Server.
+ Transact-SQL scrip and stored procedures: sử dụng các thủ tục lưu trữ hệ thống và các phát biểu ngôn ngữ truy vẫn dữ liệu Transact-SQL.
2. Tập tin và nhóm tập tin.
- Các tập tin:
+ Là một đơn vị lưu trữ vật lý.
+ Có chứa các đối tượng CSDL.
+ Có một file logic và file vật lý.
- Nhóm tập tin:
+ Bao gồm nhiều tập tin được nhóm lại để thực hiện và quản lý một cách tốt hơn.
+ Một nhóm tập tin logic có thể chứa nhiều tập tin vật lý.
+ Trong mỗi nhóm tập tin gồm có nhiều tập tin liên quan với nhau và được lưu trong đối tượng của CSDL.
+ Nhóm tập tin có thể được tạo khi cơ sở dữ liệu hoặc thêm vào cơ sở dữ liệu đã có.
+ Một tập tin không thể là thành viên của nhiều hơn 1 nhóm tập tin lại cùng thời điểm.
+ Các tập tin không thể di chuyển đến các nhóm tập tin khác nhau khi các tập tin được thêm vào trong CSDL.
+ Nhóm tập tin có thể chỉ chứa các file dữ liệu và không có các file giao dịch.
- FILE_ID: Hàm trả về số ID của tập tin theo tên tập tin luận lý trong cơ sở dữ liệu hiện tại.
- FILE_NAME: Hàm trả về tên luận lý của tập tin theo số ID của tập tin cho trước.
- Ghi viết giao dịch: Nó ghi lại tất cả các quá trình hoạt động của CSDL. Các mẫu tin ghi viết được sử dụng để phục hồi trở lại các thay đổi.
- Xóa bỏ một CSDL:
Cú Pháp:
DROP DATABASE { database_name }
- Tạo một bản chụp CSDL:
Cú Pháp:
CREATE DATABASE database_snapshot_name
ON
{
NAME = logical_file_name,
FILENAME = 'ó_file_name'
} [ ,...n ]
AS SNAPSHOT OF source_database_name
[;]
II. Code cơ bản của bài học.





---------------------------------------------------------------------------------------------

SQL - Task 3

I. Lý thuyết.
1. Lệnh CREATE.
- Lệnh này dùng để tạo ra các đối tượng như DATABASE, TABLE.
+ CREATE TABLE:
- Bảng là một cấu trúc để cất giữ các bộ của quan hệ. Có khuôn dạng hai chiều gồm có các cột và hàng. Nó là yếu tố cơ bản cho các thao tác khác nhau. Có thể nói việc tạo bảng là bước đầu tiên quan trọng nhất để thiết lập CSDL.
Cú pháp:
CREATE TABLE table-name(colom_name type(size)..)
- Khi tạo ra bảng chúng ta phải chỉ ra kiểu dữ liệu của cột và mỗi cột chỉ có thể có môt kiểu dữ liệu duy nhất. Khi tạo bảng ta có thể đưa ra các ràng buộc
- Các ràng buộc của các trường có thể là : primary key, foreign key , unique, not null ...
Ví Dụ: Tạo bảng danh sách sinh viên.
CREATE TABLE SINH_VIEN (SV varchar(4) constraint SV_Primary key, ho_ten Varchar(25), Ngay_sinh date, lop varchar(20), ma_sinh_vien varchar(30));
- Trong VD trên ta tạo ra một ràng buộc là SV được định nghĩa là primary key
- Ta cũng có thể tạo ra bảng mới với cấu trúc và dữ liệu từ 1 bảng khác.
Cú pháp:
CREATE TABLE table_name[(colum_name..)]AS
SELECT statement;

2. Lệnh ALTER.

- Dùng để hoặc là thêm một hay nhiều trường vào bảng hoặc sửa đổi kiểu dữ liệu một cột hiện tại và thêm.
Cú pháp:
ALTER TABLE TABLE_name ADD | MODIFY | DROP option (colum Datatype..)
+ ADD:thêm cột mới.
+ MODIFY:sửa đổi cột.
+ DROP option xoá bỏ các ràng buộc.

* Thêm colunn vào table
Cú pháp:
ALTER TABLE table_nameADD colunm_name datatype
- Trong đó:table_name: là tên table cần thêm column, ở đây table_name là Product.colunm_name : là tên column sẽ được thêm vào table_name.datatype: là kiểu dữ liệu của column_name, ví dụ int, varchar, nvarchar, decimal.
* xóa column khỏi table
Cú pháp:
ALTER TABLE table_nameDROP COLUMN column_name
- Trong đó:table_name: là tên table chứa column sẽ bị xóa, ở đây table_name là Productcolunm_name : là tên column sẽ bị xóa khỏi table_name
* Thay đổi kiểu dữ liệu column
Cú pháp:
ALTER TABLE table_nameALTER COLUMN column_name datatype
- Trong đó:table_name: là tên table có column cần thay đổi kiểu dữ liệu, ở đây table_name là Productcolunm_name : là tên column sẽ được thay đổi kiểu dữ liệudatatype: là kiểu dữ liệu của column_name, ví dụ int, varchar, nvarchar, decimal.
3.Lệnh INSERT INTO.
- Câu lệnh INSERT INTO được dùng để chèn dòng mới vào bảng.
Cú pháp:
INSERT INTO tên_bảngVALUES (giá_trị_1, giá_trị_2,....)
- Chúng ta cũng có thể chỉ rõ các cột/trường nào cần chèn dữ liệu:
INSERT INTO tên_bảng (cột_1, cột_2,...)VALUES (giá_trị_1, giá_trị_2,....)
4. Lệnh UPDATE.
- Câu lệnh UPDATE được sử dụng để cập nhật/sửa đổi dữ liệu đã có trong bảng.
Cú pháp:
UPDATE tên_bảngSET tên_cột = giá_trị_mớiWHERE tên_cột = giá_trị
II. Một số code cơ bản.




Comments

Popular Posts