Thiết Lập Các Thông Số Cho Kiểu Dữ Liệu Người Dùng


Hình 2 1 Tạo kiểu dữ liệu người dùng Bước 2 Nhập tên kiểu dữ liệu tại 1

Hình 2.1. Tạo kiểu dữ liệu người dùng

Bước 2: Nhập tên kiểu dữ liệu tại hộp Name/Chọn kiểu dữ liệu tại mục Data type/ Chọn độ dài tại mục Length/Chọn Allow Nulls (Nếu cần)/Nhập giá trị mặc định tại mục Default (nếu cần)/Thiết lập quy tắc tại mục Rule (Nếu cần)/Chọn OK.

Hình 2 2 Thiết lập các thông số cho kiểu dữ liệu người dùng Sử dụng câu 2

Hình 2.2. Thiết lập các thông số cho kiểu dữ liệu người dùng

- Sử dụng câu lệnh T-SQL: Chúng có thể được tạo bằng cách sử dụng câu lệnh CREATE TYPE.

Cú pháp

CREATE TYPE [ schema_name. ] type_name {FROM base_type [ ( precision [ , scale ] ) ] [ NULL | NOT NULL ] } [ ; ]

Trong đó:

- schema_name: là tên của giản đồ mà kiểu dữ liệu người dùng đang được tạo ra.

- type_name: là tên kiểu dữ liệu người dùng.

- base_type: là tên của kiểu dữ liệu hệ thống cơ sở.

- precision and scale: chỉ ra độ chính xác và độ co dãn đối với kiểu dữ liệu numeric



không.

- NULL | NOT NULL: qui định kiểu dữ liệu có cho phép chứa giá trị null hay


Ví dụ:

CREATE TYPE usertype FROM varchar(20) NOT NULL

3) Các toán tử (Operators)

Trong SQL Server các biểu diễn (expression) có thể xuất hiện nhiều toán tử.

Độ ưu tiên của toán tử sẽ quyết định thứ tự thực hiện của các phép tính. Thứ tự thực hiện ảnh hưởng rất lớn đến kết quả. Bảng dưới đây mô tả các toán tử trong SQL Server 2008 và mức độ ưu tiên của các toán tử đó.

Level

Operators

1

* (Multiply), / (Division), % (Modulo)

2

+ (Positive), - (Negative), + (Add), (+ Concatenate), - (Subtract)

3

=, >, <, >=, <=, <>, !=, !>, !< (Comparison operators)

4

NOT

5

AND

6

ALL, ANY, BETWEEN, IN, LIKE, OR, SOME

7

= (Assignment)

Có thể bạn quan tâm!

Xem toàn bộ 323 trang tài liệu này.

4) Biểu thức

Biếu thức là kết hợp nhiều phần tử: toán tử, giá trị, định danh mà SQL Server có thể ước tính được để trả về một kết quả. Biểu thức có thể được sử dụng trong nhiều trường hợp khi truy cập hoặc thay đổi dữ liệu. Sử dụng toán tử trong biểu thức. Toán tử được dùng để thực hiện tính toán, so sánh, ghép hoặc gán giá trị.

5) Các 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.

- Các hàm chuyển đổi kiểu dữ liệu.

- Các hàm ngày tháng.

- Các hàm toán học.

- Các hàm xử lý xâu.

- Các hàm hệ thống.

- Các hàm xếp hạng.

a) Các hàm tập hợp: Transact-SQL hỗ trợ các hàm tập hợp để thống kê dữ

liệu.


STT

Tên hàm

Giá trị trả về

Ví dụ

1

SUM(col_name)

Hàm tính tổng, trả về tổng giá trị của

col_name

SELECT SUM(soluong) AS Total FROM muaban

2

AVG(col_name)

Trả tính giá trị trung

bình

SELECT AVG(soluong*dongia)

AS AveragePrice FROM muaban

3

COUNT

Đếm số bản ghi trong bảng

SELECT COUNT(*) AS

„Number of Large Orders‟ FROM muaban

WHERE soluong > 100

4

MAX(col_name)

Trả về giá trị lớn nhất

SELECT MAX(soluong*dongia) AS „Largest Order‟ FROM

Purchasing.PurchaseOrderDetail

5

MIN(col_name)

Trả về giá trị nhỏ nhất

SELECT MIN(soluong*dongia) AS „Smallest Order‟ FROM

muaban

b) Hàm chuyển đổi kiểu dữ liệu

Hàm chuyển đổi được sử dụng để biến đổi giá trị của một kiểu dữ liệu 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 trường, hằng số, hàm, biến hoặc là câu truy vấn con

- style chỉ ra kiểu hiển thị giá trị ngày tháng(dd/mm/yyyy hay mm/dd/yyyy)

c) Các hàm ngày tháng

Hàm ngày tháng được dùng để thao tác giá trị ngày tháng. Hàm ngày tháng cho phép chúng ta lấy một phần của giá trị ngày tháng như: lấy ngày, tháng hoặc năm. DATEPART là một phần giá trị ngày tháng, được kết hợp sử dụng trong hàm ngày tháng để lấy một phần nào đó của giá trị ngày tháng. Tất cả các DATEPART được hỗ trợ trong Transact-SQL.


STT

Datepart

Abbreviation

Values

1

Hour

Hh

0-23

2

Minute

Mi

0-59

3

Second

Ss

0-59

4

Millisecond

Ms

0-999

5

Day of Year

Dy

1-366

6

Day

Dd

1-31

7

Week

Wk

1-53

8

Weekday

Dw

1-7

9

Month

Mm

1-12

10

Quarter

Qq

1-4

11

Year

Yy

1753-9999

Các hàm ngày tháng


STT

Hàm

Giá trị trả về

Ví dụ

1

GETDATE()

Trả về ngày hiện

tại của hệ thống

SELECT

GETDATE()


2


DATEADD(datepart,number,date)


Cộng vào thêm number giá trị vào date

SELECT DATEADD(mm,4,‟0

1/01/99‟) - returns 05/01/99 in the

current date format




SELECT

3

DATEDIFF(datepart,date1,date2)

So sánh giữa hai

giá trị ngày tháng

DATEDIFF(mm,‟01/

01/99‟,‟05/01/99‟) -




returns 4


4


DATENAME(datepart,date)

Trả về giá trị ngày tháng dưới dạng chuỗi

SELECT DATENAME(dw,‟0

1/01/2000‟) - returns

Saturday




SELECT

5

DATEPART(datepart,date)

Trả về một phần

giá trị ngày tháng

DATEPART(day,‟01

/15/2000‟) - returns




15


d) Các hàm toán học: Thực hiện các phép tính đại số trên trường dữ liệu/giá trị

số.


STT

Hàm

Giá trị trả về

Ví dụ

1

ABS(num_expr)

Trả về giá trị tuyệt đối

SELECT ABS

(-43) return 43


2


CEILING(num_expr)

Trả về giá trị nhỏ nhất lớn hơn hoặc bằng

num_expr

SELECT CEILING(43.5)

returns 44


3


FLOOR(num_expr)

Trả về giá trị lớn nhất nhỏ hơn hoặc bằng

num_expr

SELECT FLOOR(43.5)

returns 43


4


POWER(num_expr,y)


Hàm lũy thừa

SELECT POWER(5,2)

returns 25


5


ROUND(num_expr,length)


Hàm làm tròn

SELECT ROUND(43.543

,1) returns

43.500


6


SIGN(num_expr)

Trả về +1 nếu num_expr là số dương, -1 nếu num_expr là số âm, 0

nếu num_expr bằng 0

SELECT SIGN(-43)

returns -1


7


SQRT(float_expr)


Hàm căn bậc hai

SELECT

SQRT(9) returns 3


8


ISNUMERIC(num_expr)


Hàm isNumeric kiểm tra một giá trị có phải thuộc kiểu dữ liệu số hay không.

select CUSTOMERN AME,

isnumeric(ADD RESS) as ISNUMERIC

from customers


e) Hàm xử lý xâu:


STT

Hàm

Giá trị trả về

Ví dụ


1

ASCII(st)

Trả về mã ASCII của kí tự đầu tiên trong xâu st

ASCII(“A”)

Trả về 65


2

CHAR(n)

Trả về kí tự có mã ASCII là n

Char(90) Trả về Z


3

UPPER()

Chuyển các chuỗi ký tự thường trong chuỗi thành

các ký tự hoa.

select upper(„khoa cntt‟) Trả về „KHOA CNTT‟


4

LOWER(st)

Chuyển các ký tự hoa trong

chuỗi thành các kí tự thường.

select lower(„KHOA CNTT‟)

Trả về „khoa cntt‟


5

LEN(st)


Trả về chiều dài một chuỗi

select len(„KHOA CNTT‟)

Trả về 9

6

LTRIM()

Cắt các khoảng trắng bên

trái của chuỗi

select ltrim(„ KHOA‟)

Trả về „KHOA‟

7

RTRIM()

Cắt các khoảng trắng bên

phải của chuỗi

select ltrim(„KHOA „)

Trả về „KHOA‟


8

LEFT(st,k)

Trả về một chuỗi ký tự có chiều dài k được chỉ định

tính từ bên trái của chuỗi.

select left(„KHOA CNTT‟, 4)

Trả về „KHOA‟


9


RIGHT(st,k)

Trả về một chuỗi ký tự có

chiều dài k được chỉ định tính từ bên phải của chuỗi.

select right(„KHOA CNTT‟, 4)

Trả về „CNTT‟


10

SUBSTRING

(st, i, k)

Trích xuất một chuỗi con gồm k từ vị trí thứ k.

select substring(„KHOA CNTT‟, 4)

Trả về „CNTT‟


11


REPLACE(st,s

t1, st2)


Thay thế chuỗi st1 trong chuỗi st bởi chuỗi st2

select replace(„KHOA CNTT‟, „CNTT‟, „TIN HOC‟)

Trả về „KHOA TIN

HOC‟



12


STUFF(st,n,k,s t1)


Thay thế k ký tự trong chuỗi st bằng chuỗi st1 bắt đầu từ vị trí thứ n.

select stuff(„KHOA CNTT‟, 6, 4, „TIN HOC‟)

Trả về „KHOA TIN

HOC‟


13


CHARINDEX(

st1,st[,n])

Trả về vị trí đầu tiên của chuỗi st1 xuất hiện trong chuỗi st của lần xuất hiện

thứ n

select CHARINDEX(„CNTT‟,‟ KHOA CNTT‟)

Trả về 6

g) Hàm hệ thống: Trả về dữ liệu hệ thống hay thông tin cấu hình của SQL Server .

STT

Hàm

Giá trị trả về

1

DB_ID([„database_name‟])

Trả về số định danh của cơ sở dữ liệu

2

DB_NAME([database_id])

Trả về tên cơ sở dữ liệu

3

HOST_ID()

Trả về số định danh cho máy trạm

4

HOST_NAME()

Trả về tên máy trạm

5

ISNULL(expr,value)

Nếu expr là NULL thì được thay thế

bằng giá trị VALUE

6

OBJECT_ID(„obj_name‟)

Số định danh đối tượng

7

OBJECT_NAME(object_id)

Trả về tên đối tượng

8

USER_ID([„user_name‟])

Số định danh người dùng

9

USER_NAME([user_id])

Tên người dùng

h) Hàm xếp hạng:

Những hàm này trong SQL Server được dùng để liên kết các tập kết quả đã sắp xếp và các giá trị hàng đầu dùng thứ tự chỉ ra độc lập với thứ tự kết quả.

- Hàm ROW_NUMBER()

Cú pháp:

ROW_NUMBER() OVER (ORDER BY expression) Trong đó: expression chỉ ra tên trường, hằng số, hàm, biến.

Hàm này trả về số nguyên với giá trị tăng dần dựa trên mệnh đề ORDER BY được truyền cho hàm. Nếu ORDER BY của ROW_NUMBER trùng với thứ tự kết quả thì giá trị được tăng lên. Nếu ORDER BY của ROW_NUMBER không trùng với ORDER BY của tập kết quả thì những giá trị này không được liệt kê theo thứ tự nhưng vẫn thể hiện theo thứ tự ORDERY BY của ROW_NUMBER.


Ví dụ 1: Trong phát biểu sau, thứ tự ORDER BY của ROW_NUMBER trùng khớp với thứ tự ORDER BY trong tập kết quả. Do đó, giá trị của ROW_NUMBER trả về được liệt kê theo thứ tự.

USE QLTS

SELECT sbd, hoten, dtoan, ROW_NUMBER() OVER (ORDER BY dtoan) FROM thisinh

ORDER BY dtoan as sx

Ví dụ 2: Trong phát biểu sau, thứ tự ORDER BY của ROW_NUMBER không trùng khớp với thứ tự ORDER BY trong tập kết quả.

USE QLTS

SELECT sbd, hoten, dtoan, ROW_NUMBER() OVER (ORDER BY dtoan)as sx

FROM thisinh ORDER BY sbd

Kết quả ví dụ 1 Kết quả ví dụ 2 Hàm RANK Dùng hàm Rank để một dòng có 3Kết quả ví dụ 1 Kết quả ví dụ 2 Hàm RANK Dùng hàm Rank để một dòng có 4

Kết quả ví dụ 1 Kết quả ví dụ 2

- Hàm RANK()

Dùng hàm Rank để một dòng có cùng sắp xếp giá trị trường như các dòng khác có cùng một xếp loại.

Cú pháp:

RANK() OVER (ORDER BY expression)

Trong đó: expression chỉ ra tên trường, hằng số, hàm, biến.

Hàm RANK sẽ đánh số liên tục một tập hợp bản ghi nhưng khi có 2 dòng có cùng giá trị sắp xếp thì hàm sẽ đánh giá là cùng bậc giá trị. Giá trị xếp loại vẫn sẽ tăng

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 16/07/2022