SELECT INTO (T SQL)

Một phần của tài liệu Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng (Trang 46 - 47)

/ DEFAULT VALUES Lệnh này gồm 2 bớc:

SELECT INTO (T SQL)

d. INSERT và giao dịch

SELECT INTO (T SQL)

Sau khi đặc tả bảng, ta phải đặc tả vùng đích cho tập kết quả bằng lệnh mở rộng của T -SQL, INTO. Nếu dùng mệnh đề INTO, nó phải đứng trớc mệnh đề FROM và đặt tên một bảng mới (cha tồn tại).

SELECT DISTINCT state

INTO Authors_states

FROM Authors

Nếu bảng đích đã tồn tại và bạn muốn thêm một số hàng vào đó thì phải dùng công thức INSERT… SELECT. Để thực hiện đợc lệnh này, bạn phải bật tuỳ chọn Select Into/ Bulk Copy hoặc đặt vào một bảng tạm thời bằng:

SELECT *

INTO #Authors_temp

FROM Authors

Bảng tạm thời này nằm trong cơ sở dữ liệu Tempdb và theo mặc định thì nó không có bật tuỳ chọn Select Into/ Bulk Copy.

Mệnh đề FROM

Trong mệnh đề FROM, bạn đa vào tên của bảng hoặc view mà bạn muốn chọn thông tin từ đó. Nếu tên bảng chứa dấu trắng thì bạn phải bao tên đó trong cặp dấu ngoặc vuông ([, ]) hoặc dấu trích dẫn.

Các hàm tập hợp

Có thể sử dụng một số hàm tập hợp của T- SQL áp dụng cho từng cột của bảng để có các số liệu nh:

COUNT() - xác định số phần tử của một cột MAX () - xác định giá trị lớn nhất của cột MIN () - xác định giá trị nhỏ nhất của cột SUM () - trả ra tổng giá trị các phần tử của cột

AVG () - trả ra giá trị trung bình của các phần tử trong cột

Nếu bảng chứa nhiều giá trị NULL thì hàm COUNT( ) coi tất cả các NULL là một giá trị, các hàm MAX(), MIN (), SUM(), AVG() cũng bỏ qua

giá trị NULL trong các tính toán trừ khi tất cả các giá trị đều là NULL (khi đó kết quả là NULL).

Mệnh đề WHERE

Bạn có thể sử dụng mệnh đề WHERE để lọc các hàng mà câu hỏi trả ra, mệnh đề này thêm một điều kiện vào câu hỏi, dựa trên các giá trị dữ liệu trong các cột. Trong mệnh đề WHERE có thể sử dụng các ký tự so sánh chuẩn, các phép AND, OR, NOT và sử dụng các dấu ngoặc đơn.

Mệnh đề GROUP BY

Khi bạn muốn rút ra các số liệu tóm tắt, lệnh GROUP BY cho kết quả là một danh sách dữ liệu đã đợc nhóm lại. Các hàm tập hợp coi mỗi nhóm là một bảng và trả ta kết quả tính toán từ các phần tử của nhóm đó. Cần chú ý là các cột trong mệnh đề GROUP BY phải đợc nhắc tới trong danh sách cột của SELECT. Không đợc nhóm bằng bí danh hay nhóm các cột có kiểu dữ liệu bit, image, ntext hay text. Các giá trị NULL sẽ đợc nhóm thành một nhóm.

Mệnh đề HAVING

Mệnh đề HAVING lọc các kết quả của mệnh đề GROUP BY CUBE và ROLLUP

Toán tử ROLLUP sinh ra các tổng con và tổng lớn cho cột đầu tiên trong GROUP BY. Toán tử CUBE thực hiện thêm một bớc là tính tổng cho tất cả các cột trong GROUP BY.

Mệnh đề ORDER BY

Các lệnh SQL là hớng tập hợp (set -oriented), tức là các hàng của tập kết quả đợc trả ra không theo một hàm ý nào về trình tự vật lý. Trong các bảng quan hệ có một luật tơng đối nghiêm ngặt là không đợc tính đến, và không cần tham chiếu đến trình tự vật lý của nó. Điều này có thể do kết quả trả ra đều theo trình tự vật lý, dựa trên cách nó đợc lu trữ. Tuy nhiên Oracle Server cho phép phơng tiện quan hệ trả ra các hàng không theo trình tự vật lý bằng cách sử dụng mệnh đề ORDER BY trong lệnh SELECT. Trình tự mặc định là theo chiều tăng, để thay đổi kết quả ta thêm DESCENDING (hoặc DESC) trong ORDER.

Một phần của tài liệu Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng (Trang 46 - 47)