1. Trang chủ
  2. » Giáo án - Bài giảng

Tài liệu tự bồi dưỡng

10 626 4
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 64,5 KB

Nội dung

“Manager” sẽ khác với “manager” B- MỘT SỐ LỆNH CHUẨN CỦA SQL: Xét về công dụng, những lệnh của SQL được chia ra làm 4 loại:  Loại lệnh truy vấn dữ liệu Query SELECT: Là lệnh SQL phổ dụn

Trang 1

TRƯỜNG THPT THỚI BÌNH CHƯƠNG TRÌNH BỒI DƯỠNG THƯỜNG XUYÊN NĂM HỌC 2008 - 2009

 Lí do:

- Vì năm nay mới bắt đầu đưa môn tin học vào lớp 12, và Cơ sở dữ liệu(CSDL) là

kiến thức chủ yếu ở lớp 12, do tôi chỉ dạy khối 10 vì thế tôi thấy cần thiết phải tự bồi dưỡng thêm kiếm thức về CSDL , vì đợt bồi dưỡng chuyên môn vừa qua thời gian và nội dung kiếm thức bồi dưỡng về sách GK lớp 12 môn Tin Học còn hơi ít, vì thế tôi thường xuyên bồi dưỡng về CSDL để sau này nếu được phân công dạy khối 12 thì tôi sẽ hoàn thành tốt nhiệm vụ

I MỤC TIÊU CHƯƠNG TRÌNH BỒI DƯỠNG THƯỜNG XUYÊN

1 Về kiến thức

- Nắm vững được một số quy ước và cú pháp của SQL và biết một số lệnh chuẩn của SQL đồng thời hiểu một số lệnh truy vấn, định nghĩa dữ liệu

2 Về kỹ năng

- Thao tác trên bảng và truy vẫn CSDL bằng ngôn ngữ SQL

- Tự học và sử dụng một số phương tiện kỹ thuật truyền thông vào quá trình tự học, tự bồi dưỡng để cập nhật kiến thức và nâng cao trình độ chuyên môn nghiệp vụ

3 Về thái độ

- Rèn luyện thói quen tự học, tự nghiên cứu và tính năng động, sáng tạo nhằm nâng cao trình độ chuyên môn nghiệp vụ

- Có ý thức tự học và vận dụng kiến thức, kỹ năng đã học vào thực tiễn dạy học

II NỘI DUNG CHƯƠNG TRÌNH TỰ BỒI DƯỠNG THÁNG 09 +10 NĂM 2008

Chuyên Đề:

TẠO TRUY VẤN BẰNG NGÔN NGỮ SQL

(STRUCTURED QUERY LANGUAGE NGÔN NGỮ CỦA CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU)

A- MỘT SỐ QUY ƯỚC VỀ CÚ PHÁP CỦA SQL

%,_ Dấu phần trăm, dấu gạch

dưới Đại diện cho nhiều ký tự, đại diện cho 1 ký tựtương ứng với dấu *,? Của Dos

; Dấu chấm phẩy Dứt lệnh của SQL chuẩn

Trang 2

, Dấu phẩy Dấu phân cách giữa các chi tiết trong một

chuỗi Vd: SELECT col1, col2, … Các từ khoá, tên table, tên field, tên row … không phân biệt chữ hoa, chữ thường Trong chuỗi dạng ký tự phải chỉ định chính xác giá trị “Manager” sẽ khác với

“manager”

B- MỘT SỐ LỆNH CHUẨN CỦA SQL:

Xét về công dụng, những lệnh của SQL được chia ra làm 4 loại:

Loại lệnh truy vấn dữ liệu (Query)

SELECT: Là lệnh SQL phổ dụng nhất trong mọi sản phẩm SQL

Loại lệnh định nghĩa dữ liệu ( Data Define language – DLL):

CREATE: Định nghĩa và khởi tạo một Table/View/Index mới

ALTER: Hiệu chỉnh một Table đã tồn tại trước đó

DROP: Huỷ bỏ nếu xét thấy không cần sử dụng nữa

Những lệnh thuộc loại DLL dùng để định nghĩa các Table (file lưu trữ dữ liệu), các View (File ảo, file logic), các Index (chỉ mục) Loại lệnh DDL sẽ giúp cho người sử dụng can thiệp vào cách thức lưu trữ, tổ chức về mặt vật lý của cơ sở dữ liệu, làm biến đổi cấu trúc hệ thông dữ liệu Do đó loại lệnh này thường dành cho các chuyên viên hệ thống thông tin

Loại lệnh cập nhật dữ liệu (Data manipulation Language – DML):

INSERT : Bổ sung thêm một hoặc nhiều Row vào CSDL

UPDATE: Thay đổi các trường giá trị trong CSDL

DELETE: Huỷ bỏ các row

Loại lệnh kiểm soát dữ liệu (Data Control Language – DCL):

GRANT: Giao các quyền khai thác dữ liệu cho người sử dụng

REVOKE: Thu hồi các quyền khai thác dữ liệu

Loại lệnh này nhằm đảm bảo sự an toàn về CSDL dùng chung

1 MỘT SỐ LỆNH TRUY VẤN ĐỊNH NGHĨA DỮ LIỆU

SQL là một ngôn ngữ định nghĩa dữ liệu, cho phép tạo ra một hệ thống các file dữ liệu, có thể hiệu chỉnh một phần cấu trúc dữ liệu đã có bằng các lệnh khởi tạo, thay đổi hoặc hủy bỏ các table …

Trang 3

Với SQL có thể thực hiện dễ dàng những công việc như:

 Định nghĩa table mới

 Thay đổi các cấu trúc của những Table đã có trong máy

 Xoá bỏ field hoặc Table/View/Index đang tồn tại

 Định nghĩa một Table logic để tăng cường khả năng an toàn dữ liệu

 Định nghĩa các Index để hệ thống hoạt động nhanh hơn

 Thay đổi thuộc tính khoá (Primary hay Foreign key)

Hầu hết các lệnh định nghĩa dữ liệu của SQL thông qua 3 lệnh chính CREATE, ALTER và DROP Sau đây ta lần lược làm quen với các lệnh trên:

Để tạo một câu lệnh SQL trong Microsoft Access chúng ta thực hiện theo các bước sau:

 Bước 1: Trong cửa sổ CSDL, chọn phiếu QueryNewDesign View nhấn chọn Ok

 Bước 2: Không cần chọn Table hay Query làm nguồn dữ liệu (vì đã ghi tên bản trong câu lệnh), nhấn chọn nút Close

 Bước 3: Nhấn chọn nút SQL, xuất hiện cửa sổ soạn thảo câu lệnh SQL

 Bước 4: Sau khi soạn thảo xong câu lệnh, nhấn chọn nút Run để chạy Query

 Bước 5: Lưu lại Query

Khởi tạo Table :

CREATE TABLE <Tên Table> (<tên field-1><kiểu dữ liệu> [NOT NULL],

<tên field-2><kiểu dữ liệu> [NOT NULL],

<tên field-3><kiểu dữ liệu> [NOT NULL],

<tên field-n><kiểu dữ liệu> [NOT NULL], CONSTRAINT <tên constraint> PRIMARY KEY (tên field),

CONSTRAINT <tên constraint> FOREIGN KEY (tên field)REFERENCES(Tên Table 2));

Giải Thích:

 Từ khoá CREATE TABLE : Dùng để tạo lập Table

 <Tên table> : Đặc table tên gì

 <Tên field> <kiểu dữ liệu> : Trong table đó có các Field (Column, cột) nào

và kiểu dữ liệu gì

Trang 4

 PRIMARY KEY : Tên các Column (field) đặc làm khoá chính

 FOREIGN KEY (tên các field) REFERENCES (Tên Table 2) : Tên các field nào làm khoá ngoại và nó là khoá chính trong table nào

Ví dụ: Dùng SQL để tạo ra Table Nhân sự có những Fields như sau: Manv, Hoten, Diachi, Ngaysinh, Phai, Mucluong, Ngaycong, Ghichu, Hinh Có Manv là khoá chính

CREATE TABLE NHANSU (Manv Text(4), Hoten Text(20), Diachi Text(30), Ngaysinh Datetime, Phai YesNo, Mucluong Integer, Ngaycong Byte, Ghichu Memo, HINH OleObject,

CONSTRAINT PK_MANV PRIMARY KEY (Manv));

Sau đó các bạn nhập khoảng 10 Record (mẫu tin) vào

Hiệu chỉnh một Table: Việc hiệu chỉnh cấu trúc dữ liệu là một công việc hết sức quan trọng, chỉ nên làm khi thật sự cần thiết

Thêm một Column (Filed)

ALTER TABLE <tên table> ADD <tên field><kiểu dữ liệu>;

Ví dụ: Thêm một Field Luongthang trong Table Nhansu

ALTER TABLE Nhansu ADD Luongthang Double;

Hủy bỏ một field

ALTER TABLE <tên Table> DROP <tên field>;

Ví dụ: Xoá Field Luongthang trong Table Nhansu

ALTER TABLE Nhansu DROP Luongthang;

Khởi tạo một Index (chỉ mục)

ALTER TABLE <Tên Table> ADD CONSTRAINT <Tên Index> UNIQUE (<Tên Field>)

hoặc

CREATE [UNIQUE] INDEX <Tên INDEX> ON <tên table> (tên các field> [ASC/ DESC]);

Ví dụ: Tạo chỉ mục cho Field Mucluong, Hoten trong Table Nhansu

ALTER TABLE Nhansu ADD CONSTRAINT HT UNIQUE (Hoten);

CREATE UNIQUE INDEX ML ON Nhansu (Mucluong);

Xoá một Index (chỉ mục)

Trang 5

ALTER TABLE <tên table> DROP CONSTRAINT <tên Index>;

hoặc

DROP INDEX <Tên Index> ON <Tên Table>

Ví dụ: Xoá chỉ mục cho Field Mucluong, Hoten trong Table Nhansu

ALTER TABLE Nhansu DROP CONSTRAINT HT;

Hủy bỏ một Table

DROP TABLE <tên table>

Ví dụ: Hủy bỏ Table Nhansu

DROP TABLE NHANSU;

2 MỘT SỐ CÂU TRUY VẤN HÀNH ĐỘNG DÙNG SQL

 Truy vấn tạo bảng (MAKE TABLE QUERY)

Cú pháp:

SELECT field1[,field2[,…]]INTO table mới [IN MDB khác]

FROM table nguồn

[WHERE điều kiện]

[ ORDER BY… field [DESC]];

Giải thích:

 field1,field2 :Tên các cột( trong table nguồn) muốn sao chép

dữ liệu sang table mới

 Table mới : Tên bảng mới muốn tạo

 Table nguồn : Tên bảng chứa dữ liệu nguồn mà truy vấn sẽ

lấy dữ liệu chép qua table mới

 Điều kiện : Là điều kiện sao chép

Ví dụ: Tạo ra một table LUUTRU lưu các chứng từ xuất của table HOADON

SELECT * INTO LUUTRU

FROM HOADON

WHERE LOAIVT="X";

 Truy vấn cập nhật ( UPDATE QUERY):

Công dụng: Dùng để sửa đổi dữ liệu thuộc các cột ở nhiều dòng khác nhau trong table , chỉ sửa dữ liệu thuộc những dòng ( record) thoả mãn điều kiện đã cho

Trang 6

Cú pháp:

UPDATE table

SET field1= giá trị 1, field2= giá trị 2, …

[WHERE điều kiện]

Giải thích:

 Table : Là tên table muốn sửa đổi dữ liệu

 field1 , field2 : Tên các cột trong table muốn thay đổi giá trị

 giá trị 1 , giá trị 2 : Các giá trị mới của field1 ,field2

Ví dụ: Tăng tiền lên thêm 50 đồng cho các chứng từ xuất trong Table LUUTRU

UPDATE LUUTRU

SET DONGIA = DONGIA+50

WHERE LOAIVT="X";

 Truy vấn thêm (NỐI KẾT - APPEND QUERY)

Công dụng: Dùng để thêm dữ liệu mới từ một table khác vào cuối một table , hay chỉ thêm một dòng dữ liệu mới vào cuối table

Cú pháp thêm một dòng:

INSERT INTO table( field1[,field2[,…]])

VALUES( giá trị 1[,giá trị 2[,…]])

Cú pháp thêm nhiều dòng:

INSERT INTO table đích [IN MDB khác]

SELECT field1,[, field2[,…]]

FROM table nguồn;

[WHERE điều kiện];

Ví dụ: Tạo nối kết các chứng từ nhập từ Table NHAPXUAT vào Table LUUTRU

INSERT INTO LUUTRU

SELECT *

FROM HOADON

WHERE LOAIVT="N";

 Truy vấn xoá ( DELETE QUERY)

Trang 7

Công dụng: dùng để xoá dữ liệu trong một table.

Cú pháp:

DELETE FROM table

[WHERE điều kiện];

Ví dụ: Xoá hết các chứng từ nhập trong Table LUUTRU

DELETE *

FROM LUUTRU

WHERE LOAIVT ="N";

 Truy vấn chọn (Select query)

Cú pháp:

SELECT [Tính chất] {* |Table.*| [table.]field 1 [, [table.]field 2 [, […]]}

[biểu thức As tên cột mới]

FROM table 1 [ kiểu kết nối] [, table 2 [on điều kiện]]

[WHERE điều kiện]

[GROUP BY tên cột]

[HAVING điều kiện]

[ORDER BY tên cột [DESC]]

Giải thích các thành phần của câu lệnh SQL:

 Tính chất : Dùng một trong các từ khóa sau: ALL, DISTINCT, DISTINCT

ROW, TOP <n> Với ý nghĩa:

 ALL : Chọn tất cả các dòng trong bảng

 DISTINCT : Chọn nhưng có lọai bỏ những cột trùng lắp thông tin

 DISTINCT ROW : Chọn nhưng có lọai bỏ những dòng trùng lắp thông tin

 TOP <n> : Chọn n dòng đầu tiên trong bảng

 Table.field : Tên các cột thuộc các bảng muốn lấy dữ liệu

 Biễu thức : Ghi biểu thức sinh ra trị cho cột mới

 Tên cột mới : Ghi tên cột mới, nếu tên cột mới có chứa ký tự trắng thì phải bao tên cột mới bằng cặp ngoặc vuông [ ]

Trang 8

 Table 1, table 2 :Tên các bảng, table 1 tên bảng trái, table 2 tên bảng phải.

 Kiểu kết nối : Dùng một trong 3 kiểu sau: (Thường dùng nhất là INNER JOIN)

 INNER JOIN : Là kiểu kết nối chỉ lấy ra các dòng mà dữ liệu thuộc cột quan hệ ở hai bảng là bằng nhau

 LEFT JOIN : Là kiểu kết nối ưu tiên cho bảng bên trái (Table 1), lấy ra tất cả các dòng của bảng bên trái còn với bảng bên phải (table 2) chỉ lấy ra những dòng nào có dữ liệu trên cột quan hệ bằng dữ liệu trên cột quan hệ ở bảng bên trái

 RIGHT JOIN : Là kiểu kết nối ưu tiên cho cho bảng bên phải (Table 2), lấy

ra tất cả các dòng của bảng bên phải còn với bảng bên trái (table 1) chỉ lấy ra những dòng nào có dữ liệu trên cột quan hệ bằng dữ liệu trên cột quan hệ ở bảng bên phải

 On điều kiện : Ghi ra điều kiện kết nối

 WHERE điều kiện : Điều kiện lọc dữ liệu

 GROUP By tên cột : Nhóm dữ liệu theo cột nào

 HAVING điều kiện : Điều kiện lọc lại dữ liệu nếu đã có nhóm dữ liệu

 ORDER BY tên cột [DESC] : Sắp xếp theo cột nào, thứ tự tăng dần hay giảm dần, ghi DESC: Sắp giảm dần

 Tạo một truy vấn chéo (Crosstab query

Cú pháp:

TRANSFORM <Value > // Hàm tính toán thống kê mà ta muốn tính toán thống kê SELECT <Tên các fields> // Tên cột làm tiêu đề dòng (Tối đa là 3 cột)

FROM <Tên table> // Tên Table liên quan

WHERE <Điều kiện> // điều kiện thực hiện

GROUP BY <tên Field> // Tên cột được nhóm

PIVOT <tên field> // tên cột mà ta muốn làm tiêu đề cột

Ví dụ: Thực hiện những câu truy vấn sau:

 Tạo một Seclect query gồm các chứng từ vật tư là Xuất của kho TD

SELECT *

FROM HOADON

WHERE LOAIVT = "X" AND MAKHO = "TD";

Trang 9

 Tạo select query chỉ gồm 4 chứng từ nhập trong những ngày gần đây nhất

SELECT TOP 4, *

FROM HOADON

WHERE LOAIVT = "N"

ORDER BY NGAY DESC;

 Tạo một Total select query thống kê tổng số lượng vật tư Nhập theo từng Kho: SELECT MAKHO, Sum(SOLUONG) AS [TONG SO LUONG]

FROM HOADON

WHERE LOAIVT="N"

GROUP BY MAKHO

ORDER BY MAKHO DESC;

 Tạo một total select query chỉ thống kê những kho có số lượng vật tư nhập trên 25 SELECT MAKHO, Sum(SOLUONG) AS [TONG SO LUONG]

FROM HOADON

WHERE LOAIVT="N"

GROUP BY MAKHO

HAVING SUM(SOLUONG)>25;

 Tạo một Crosstab query tính tổng số lượng vật tư nhập theo từng kho

TRANSFORM Sum(HOADON.SOLUONG) AS TSL

SELECT HOADON.makho, Sum(HOADON.SOLUONG) AS [TONG SO LUONG] FROM HOADON

WHERE (((HOADON.LOAIVT)="N"))

GROUP BY HOADON.makho

PIVOT HOADON.MASP;

 Tạo query lấy dữ liệu từ HOADON và KHO

SELECT HOADON.NGAY, HOADON.LOAIVT, HOADON.SOHD, KHO.TENKHO

FROM KHO INNER JOIN HOADON ON KHO.MAKHO = HOADON.MAKHO;

 Tạo select query từ 3 table HOADON, KHO và SANPHAM

SELECT HOADON.NGAY, HOADON.LOAIVT, KHO.TENKHO, SANPHAM.TENSP, HOADON.SOLUONG, SANPHAM.DONGIA

Trang 10

FROM SANPHAM INNER JOIN (KHO INNER JOIN HOADON ON KHO.MAKHO = HOADON.MAKHO) ON SANPHAM.MASP = HOADON.MASP;

Ngày đăng: 28/08/2013, 15:10

TỪ KHÓA LIÊN QUAN

w