Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
Dung lượng
300,01 KB
Nội dung
Ngôn ngữ SQL Biên tập bởi: Ths Phạm Hoàng Nhung Ngôn ngữ SQL Biên tập bởi: Ths Phạm Hoàng Nhung Các tác giả: Ths Phạm Hoàng Nhung Phiên trực tuyến: http://voer.edu.vn/c/869443c2 MỤC LỤC Giới thiệu Các lệnh định nghĩa liệu (DDL) Các lệnh quản trị liệu Ngôn ngữ điều khiển (DCL) Truy vấn liệu (Select) Thực hành tổng hợp Tham gia đóng góp 1/65 Giới thiệu Lịch sử phát triển SQL (Structured Query Language, đọc "sequel") tập lệnh truy xuất CSDL quan hệ Ngôn ngữ SQL IBM sử dụng hệ quản trị CSDL System R vào năm 70, hệ ngôn ngữ SQL (SEQUEL2) IBM công bố vào tháng 11 năm 1976 Năm 1979, tập đoàn ORACLE giới thiệu thương phẩm SQL, SQL cài đặt hệ quản trị CSDL DB2 IBM SQL/DS Ngày nay, SQL sử dụng rộng rãi đuợc xem ngôn ngữ chuẩn để truy cập CSDL quan hệ Chuẩn SQL Năm 1989, viện tiêu chuẩn quốc gia Hoa kỳ (ANSI) công nhận SQL ngôn ngữ chuẩn để truy cập CSDL quan hệ văn ANSI SQL89 Năm 1989, tổ chức tiêu chuẩn quốc tế (ISO) công nhận SQL ngôn ngữ chuẩn để truy cập CSDL quan hệ văn ISO 9075-1989 Tất hệ quản trị CSDL lớn giới cho phép truy cập SQL hầu hết theo chuẩn ANSI Đặc điểm SQL • Ngôn ngữ gần với ngôn ngữ tự nhiên (tiếng Anh) • SQL ngôn ngữ phi cấu trúc, tức lệnh SQL người sử dụng CHỈ CẦN đưa yêu cầu hệ thống CÁI GÌ không cần phải làm THẾ NÀO Cho cấu trúc liệu để quản lý học sinh sau HOCSINH(MaHS, TenHS, ĐTB, Xeploai) Đưa TenHS, ĐTB học sinh có ĐTB>=8.0 Pascal SQL Type Hocsinh=Record MaHS: String[5]; TenHS: String[30]; ĐTB: Real; Xeploai: String[30]; End; HS: Array[1 100] Of Hocsinh; Begin For i:=1 to n If Tạo bảng HOCSINH sử dụng lệnh SELECT Select TenHS, ĐTBFrom 2/65 HS[i].ĐTB>=8.0 then Writeln(HS[i].TenHS, HS[i].DTB); End HOCSINH Where ĐTB>=5.0; • Ngôn ngữ SQL sử dụng rộng rãi Hệ quản trị sở liệu • SQL chia loại: SQL (ngôn ngữ hỏi) PL/SQL (ngôn ngữ lập trình) Các loại lệnh SQL Chia làm nhóm chính: • Cho phép truy vấn sở liệu để đưa thông tin cần thiết (SELECT) • Các lệnh định nghĩa liệu (DDL_ Data Definition Language): Tạo thay đổi cấu trúc đối tượng sở liệu (CREATE, ALTER ) • Các lệnh thực liệu (DML_ Data Manipulation Language): Cho phép thêm, sửa, xóa liệu (INSERT, UPDATE, DELETE ) • Các lệnh điều khiển liệu (DCL_Data Control Language): Cho phép gán huỷ quyền truy cập liệu (GRANT, REVOTE) 3/65 Các lệnh định nghĩa liệu (DDL) Tạo sở liệu Cú pháp: Create Database Tạo sở liệu có tên QLTV _ Quản lý thư viện Create Database QLTV; Tạo bảng Cú pháp CREATE TABLE ( Tên_thuộc_tính1 Kiểu_tt1 [NOT NULL], Tên_thuộc_tính2 Kiểu_tt2 [NOT NULL], Tên_thuộc_tínhn Kiểu_ttn [NOT NULL] [, CONSTRAINT mệnh đề ] ) Trong đó, mệnh đề CONSTRAINT cho phép ta khai báo ràng buộc liệu (chi tiết trình bày phần sau) Tạo bảng DOCGIA, có thuộc tính: CREATE TABLE DOCGIA( MaDG Text(10) NOT NULL PRIMARY KEY, TenDG Text(30) NOT NULL, DiaChi Text(50) NOT NULL, Tuoi NUMBER) Bảng nhận tên gọi cấu trúc (danh sách tên thuộc tính vài đặc trưng) Khi tạo, bảng chưa có liệu, cấu trúc lôgic tiếp nhận liệu Tên bảng Tên bảng xác định sau lệnh CREATE TABLE Mỗi HQTCSDL có quy tắc đặt tên riêng • Tên bảng phải bắt đầu chữ cái, có 30 kí tự (chữ cái, chữ số, dấu ‘_’) 4/65 • Tên bảng phải khác tên gọi khác bảng hay khung nhìn với tên gọi dành riêng SQL • Không phân biệt hoa, thường Xác định thuộc tính Trong lệnh tạo bảng ta phải xác định cấu trúc bảng Cần phải xác định thuộc tính định nghĩa kết thúc dấu ‘,’ gồm: • Tên thuộc tính • Loại liệu độ dài • Các ràng buộc có liên quan Các loại liệu Các loại liệu sử dụng tùy theo HQTCSDL Các loại liệu sử dụng MS Access Kiểu liệu Miêu tả Kích cỡ Text Sử dụng ký tự kết hợp ký tự số, địa chỉ, số không Khả lưu trữ tối đa (FieldSize)là 255 yêu cầu tính toán, số ký tự điện thoại, mã nước, mã vùng… Memo Sử dụng bạn cần lưu trữ lượng thông tin Khả lưu trữ tối đa 65.536 ký tự lớn, ví dụ trường thông tin ghi cán Number Khả lưu trữ 1, 2, 4, tuỳ Number: Sử dụng cho thuộc bào kiểu liệu ta chọn (byte, liệu cần tính toán integer, long integer, single, double, (loại trừ tính tiền, sử dụng decimal), riêng kiểu liệu Currency Type) ReplicationID (GUI) thi khả lưu trữ 16 byte Date/Time Lưu trữ thông tin thời gian Sử dụng byte để lưu trữ Currency Sử dụng Currency cho liệu cần tính toán Phần Khả lưu trữ byte 5/65 thập phân có từ đến số Đây kiểu số tự động tăng Sử dụng byte để lưu trữ Nếu chọn kiểu với bước tăng Ta AutoNumber liệu ReplicationID khả lưu cập nhật lại trữ lên tới 16 byte trường Yes/No Kiểu liệu YES/NO chứa giá trị (Yes/No, True/False, On/ Off)Y Sử dụng bite để lưu trữ OLE Object Đối tượng (như văn Microsoft Word, liệu đồ hoạ, âm thanh, kiểu liệu nhị phân… ) Sử dụng GB để lưu trữ (tuỳ thuộc vào dung lượng đĩa) Ngoài loại liệu khác Hyperlink, Lookup Wizard Đối với kiểu liệu Number, ta lựa chọ chi tiết: Kiểu Miêu tả liệu Độ xác thập phân Kích cỡ Byte Không byte Decimal Lưu trữ tối đa 10^38-1 28 12bytes Integer Lưu trữ số từ -32,768 to 32,767 (không có phân số) Không bytes Long Integer Lưu trữ số từ -2,147,483,648 tới 2,147,483,647 (không có phân số) None bytes Single Lưu trữ số từ -3.402823E38 to -1.401298E-45 cho giá trị âm từ 1.401298E-45 to 3.402823E38 giá trị dương bytes Double Lưu trữ số từ -1.79769313486231E308 tới -4.94065645841247E-324 cho giá trị âm 15 từ 4.94065645841247E–324 to 1.79769313486231E308 giá trị dương Lưu trữ số từ đến 255 (không có phân số) bytes 6/65 Các loại liệu sử dụng Oracle CHAR Kiểu CHAR dùng để khai báo chuỗi có chiều dài cố định, khai báo biến cột kiểu CHAR với chiều dài định tất mục tin biến hay cột có chiều dài định Các mục tin ngắn ORACLE tự động thêm vào khoảng trống cho đủ chiều dài ORACLE không cho phép gán mục tin dài chiều dài định kiểu CHAR Chiều dài tối đa cho phép kiểu CHAR 255 byte VARCHAR2 Kiểu VARCHAR2 dùng để khai báo chuỗi ký tự với chiều dài thay đổi Khi khai báo biến cột kiểu VARCHAR2 phải chiều dài tối đa, mục tin chứa biến hay cột kiểu VARCHAR2 có chiều dài thực chiều dài mục tin ORACLE không cho phép gán mục tin dài chiều dài tối đa định kiểu VARCHAR2 Chiều dài tối đa kiểu VARCHAR2 2000 byte VARCHAR Hiện ORACLE xem kiểu VARCHAR2 VARCHAR nhau, nhiên ORACLE khuyên nên dùng VARCHAR2 ORACLE dự định tương lai dùng kiểu VARCHAR để chứa chuỗi với chiều dài biến đổi, phép so sánh định theo nhiều ngữ nghĩa khác NUMBER Kiểu số ORACLE dùng để chứa mục tin dạng số dương, số âm, số với dấu chấm động NUMBER(p, s) Trong đó: p: số chữ số trước dấu chấm thập phân (precision), p từ đến 38 chữ số s: số chữ số tính từ dấu chấm thập phân bên phải (scale), s từ -84 đến 127 NUMBER(p) số có dấu chấm thập phân cố định với precision p scale NUMBER số với dấu chấm động với precision 38 Nhớ scale không áp dụng cho số với dấu chấm động 7/65 Ví dụ sau cho thấy cách thức ORACLE lưu trữ liệu kiểu số tùy theo cách định precision scale khác nhau: Dữ liệu thực Kiểu Lưu trữ 7456123.89 NUMBER 7456123.89 7456123.89 NUMBER(9) 7456123 7456123.89 NUMBER(9,2) 7456123.89 7456123.89 NUMBER(9,1) 7456123.8 7456123.89 NUMBER(6) Không hợp lệ 7456123.8 NUMBER(15,1) 7456123.8 7456123.89 NUMBER(7,-2) 7456100 7456123.89 NUMBER(-7,2) Không hợp lệ FLOAT Dùng để khai báo kiểu số dấu chấm động, với độ xác thập phân 38 hay độ xác nhị phân 126 FLOAT(b) Khai báo kiểu dấu chấm động với độ xác nhị phân b, b từ đến 126 Có thể chuyển từ độ xác nhị phận sang độ xác thập phân cách nhân độ xác nhị phân với 0.30103 LONG Dùng để khai báo kiểu chuỗi ký tự với độ dài biến đổi, chiều dài tối đa kiểu LONG gigabyte Kiểu LONG thường dùng để chứa văn Có số hạn chế dùng kiểu LONG: • Một table chứa nhiều cột kiểu LONG • Dữ liệu kiểu LONG tham gia vào ràng buộc toàn vẹn, ngoại trừ kiểm tra NULL khác NULL • Không thể index cột kiểu LONG • Không thể truyền tham số kiểu LONG cho hàm thủ tục • Các hàm trả liệu kiểu LONG • Trong câu lệnh SQL có truy cập cột kiểu LONG, việc cập nhật khóa bảng cho phép CSDL 8/65 Thực hành tổng hợp Hướng dẫn thực hành Mỗi yêu cầu ghi vào query Các bước thao tác với Query sau: Bước 1: Mở Microsoft Access Bước 2: Tạo sở liệu (New/ Blank Database) Nhập tên sở liệu Bước 3: Tạo truy vấn (Query) • Kích chuột vào Create query in Design view • • • • Chọn SQL Soạn thảo câu lệnh SQL Ghi đặt tên cho Query Thực câu lệnh cách nhấn vào ! công cụ 51/65 • Chọn Save, nhập tên Query • Tất yêu cầu thực hành thực lệnh SQL thông qua Query • Mỗi yêu cầu ghi lại Query Đặt tên Query theo tên câu hỏi Ví dụ: Cau1, Cau2,… Tạo sở liệu có tên Thuchanh Tạo bảng có tên DOCGIA, có thuộc tính sau CREATE TABLE DOCGIA( MaDG Text(10) NOT NULL PRIMARY KEY, TenDG Text(30) NOT NULL, DiaChi Text(50) NOT NULL, Tuoi NUMBER); Thêm thuộc tính có tên Ghichu cho bảng DOCGIA ALTER TABLE DOCGIA ADD COLUMN GhiChu Text(50)); Thay đổi kiểu liệu thuộc tính Ghichu thành kiểu liệu Memo 52/65 ALTER TABLE DOCGIA ALTER COLUMN GhiChu Memo; Xóa thuộc tính Ghichu bảng DOCGIA ALTER TABLE DOCGIA DROP COLUMN GhiChu; Thực lệnh sau đây, lệnh cho kết nào? Nêu khác chúng Câu INSERT INTO DOCGIA VALUES(‘DHTL05’,’Nguyễn Công Thành’,’Lớp 41NC’,22 ); Câu INSERT INTO DOCGIA(MaDG, TenDG, DiaChi) VALUES(‘DHTL06’,’Nguyễn Phương Lan’,’Lớp 41NC’ ); Xóa ghi có MaDG= ‘DHTL01’ bảng DOCGIA DELETE FROM DOCGIA WHERE MaDG=’DHTL01’; Xóa độc giả có địa là: 41NC bảng DOCGIA DELETE FROM DOCGIA WHERE Diachi=’41NC’; Sửa địa độc giả có MaDG TD001 thành địa CVK3I UPDATE DOCGIA SET (Diachi=’CVK3I’) WHERE MaDG=’TD001’; Tạo sở liệu (CSDL) dùng để quản lý nhân viên, lấy tên CSDL QLNhanVien Cấu trúc CSDL gồm bảng với quan hệ sau 53/65 • NHANVIEN Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng MaNV Ký tự HoTen Ký tự 30 Congviec Ký tự 50 Luong Số MaDV Ký tự MaPT Ký tự Chữ hoa +số Chữ hoa + số(Mã người phụ trách) • DONVI Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng MaDV Ký tự TenDV Ký tự 50 Chữ hoa +số • BACLUONG Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng MaBac Ký tự BacCao Số 50 Chữ hoa +số 54/65 BacThap Số Mỗi câu lệnh tạo bảng viết Query, đặt tên 21, 2b, 2c Thêm liệu (bằng lệnh INERT) cho bảng NHANVIEN để có kết sau NHANVIEN MaNV HoTen CongViec Luong MaDV NV001 Phạm Thị Nhàn Thư ký 500 0001 NV002 Hoàng Thanh Vân Giáo viên 600 0001 NV003 Hoàng Thị Lan Giáo viên 200 0002 NV004 Đỗ Trung Dũng Thư ký 0003 700 Thêm liệu (bằng lệnh INERT) cho bảng DONVI để có kết sau DONVI MaDV TenDV 0001 KHTN 0002 DHTL 0003 DHQG Thêm liệu (bằng lệnh INERT) cho bảng BACLUONG để có kết sau BACLUONG MaBac BacThap BacCao 400 500 501 600 601 800 • • • • • Dùng câu lệnh truy vấn liệu, đưa tất thông tin nhân viên Đưa Hoten, Congviec, Luong tất nhân viên Đưa toàn công việc nhân viên, giá trị không trùng Đưa Hoten, LuongQuy tất nhân viên, với LuongQuy= Luong*3 Đưa Hoten, Luong xếp theo thứ tự tăng dần/ giảm dần Luong 55/65 • Đưa Hoten, Luong nhân viên có Luong>300 • Đưa Hoten, Luong nhân viên có Luong>300 làm công việc Giáo viên • Đưa nhân viên có lương 200, 300, 600 • Đưa nhân viên có Lương khoảng 300 đến 600 • Đưa Hoten, Congviec nhân viên có Họ tên bắt đầu chữ ‘Hoàng’ • Đưa lương trung bình, lương lớn nhất, nhỏ tất nhân viên bảng NHANVIEN • Đưa Côngviệc, Lương trung bình loại công việc • Đưa Côngviệc, Lương trung bình tất nhân viên có Luong>200 theo loại công việc • Đưa tổng lương nhóm công việc đơn vị • Đưa Congviec trung bình lương công việc có trung bình lương >=300 • Đưa đơn vị lương lớn đơn vị có lương lớn >=300 • Đưa Hoten, Congviec, TenDV tất nhân viên • Câu lệnh sau cho kết SELECT HoTen, CongViec, TenDV FROM NHANVIEN NV, DONVI DV WHERE NV.MaDV= DV.MaDV; • Đưa Hoten, Congviec, MaBac tất nhân viên • Đưa HoTen, Congviec, TenDV, Luong nhân viên có Luong>=500 • Câu lệnh sau cho kết SELECT NV.MaNV, NV.Hoten, PT.MaNV, PT.Hoten FROM NHANVIEN NV, NHANVIEN PT WHERE (NV.MaNV=PT.MaPT) AND (NV.Luong>PT.Luong); • Đưa công việc đơn vị có MaDV 0001 đơn vị có MaDV 0002 • Đưa Hoten, TenDV, Congviec, Luong người có lương lớn lương trung bình toàn nhân viên • Đưa nhân viên có lương lớn người có lương lớn đơn vị có tên DHTL • Đưa Hoten, MaDV, Luong nhân viên có Luong=Luong thấp đơn vị họ • Đưa Hoten, MaDV, Luong nhân viên có Luong=Luong thấp đơn vị • Đưa Hoten, Luong nhân viên có Luong lớn đơn vị có mã đơn vị 0002 • Đưa MaDV, AVG(Luong) đơn vị có trung bình lương lớn lương nhỏ đơn vị có mã đơn vị 0003 Thực thao tác sau cho Cơ sở liệu dùng để quản lý cửa hàng kinh doanh 56/65 I ĐỊNH NGHĨA DỮ LIỆU Tạo sở liệu Tạo sở liệu dùng để quản lý cửa hàng đặt tên QLCH bao gồm bảng có mối quan hệ sau: Cấu trúc bảng sau: Khách Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng Ma_khach Ký tự Chữ hoa +số Ten_kh Ký tự 30 Chữ đầu viết hoa Diachi_kh Ký tự 30 Chữ đầu viết hoa Hàng Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng Ma_hang Ký tự Chữ hoa+số Ten_hang Ký tự 15 Chữ đầu viết hoa Mota_hang Ký tự 30 Chữ đầu viết hoa 57/65 Don_vi Ký tự 10 Chữ thường Đơn hàng Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng So_don Ký tự Chữ hoa +số Ma_khach Ký tự 15 Chữ hoa +số Ngay_don Ngày Dd/mm/yy Dòng đơn Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng So_don Ký tự Chữ hoa +số Ma_hang Ký tự Chữ hoa +số So_luongd Số Số nguyên Phiếu giao Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng So_phieu Ký tự Chữ hoa +số Ma_khach Ký tự Chữ hoa +số Ngay_giao Ngày 30 Dd/mm/yy Noi_giao Ký tự 30 Tong_tien Số Số thực Dòng phiếu Tên thuộc tính Kiểu liệu Kích cỡ Khuôn dạng So_phieu Ký tự Chữ hoa+ số Ma_hang Ký tự Chữ hoa + số Don_gia Số Số thực So_luonggi Số Số thực Sửa đổi cấu trúc a Thêm thuộc tính: 58/65 • Trong bảng KHACH, thêm thuộc tính SoThich nhằm lưu vào bảng KHACH sở thích khách hàng • Trong bảng HANG, thêm hai thuộc tính NoiCungCap NoiSanXuat nhằm lưu vào bảng HANG thông tin nơi cung cấp hàng hóa nơi sản xuất chúng b Thay đổi kiểu thuộc tính • Trong bảng KHACH, thay đổi kiểu liệu cho trường SoThich, từ kiểu Text thành kiểu Memo • Trong bang HANG, thay đổi kiểu liệu cho trường NoiCungCap, từ kiểu Text thành kiểu Number c Xóa thuộc tính • Trong bảng HANG, xóa thuộc tính NoiCungCap NoiSanXuat • Trong bảng KHACH, xóa thuộc tính SoThich II QUẢN TRỊ DỮ LIỆU Thêm giá trị vào dòng bảng • Thêm vào bảng KHACH giá trị sau: KHACH Ma_khach Ten_kh diachi_kh K001 Đào Minh Thư Đại học Quốc Gia K002 Nguyễn Liên Dung BNC K003 Phạm Hoàng Nhung Đại học Thủy Lợi • Thêm vào bảng DONHANG giá trị sau: DONHANG so_don Ma_khach ngay_don DH001 K001 3/22/2002 DH002 K001 7/13/2003 DH003 K002 12/24/2002 • Thêm vào tất bảng, bảng số giá trị phù hợp 59/65 Chú ý: Hãy thử trường hợp thêm ma_khach K0010 vào bảng DONHANG kết nào? Tại sao? Thêm giá trị cho số thuộc tính - Thêm giá trị vào bảng KHACH để giá trị sau: KHACH Ma_khach Ten_kh Diachi_kh K001 Đào Minh Thư Đại học Quốc Gia K002 Nguyễn Liên Dung BNC K003 Phạm Hoàng Nhung Đại học Thủy Lợi K004 Trịnh Hồng Cường K005 Nguyễn Văn Hải Đại học Thủy Lợi - Thêm giá trị vào bảng HANG để giá trị sau: HANG ma_hang ten_hang Mota_hang don_vi H001 Hoa loa kèn Hoa trắng, to Bông H002 Hoa hồng H003 Hoa lan Nhiều mau Bông Cành Xóa hàng • Xóa hàng có ma_hang = ‘H001’ bảng HANG • Xóa tất khách hàng có Diachi_kh = ‘Đại học Thủy Lợi ‘ bảng KHACH • Xóa khách hàng có tên Trịnh Hồng Cường Sửa đổi giá trị hàng • Sửa đổi địa khách hàng thành địa Đại học Quốc Gia với ma_khach K002 • Sửa đổi tất tên hàng “Hoa lan” thành “Hoa phong lan” mô tả hàng “Hàng nhập từ Đà Lạt” 60/65 III CÁC LỆNH TRUY VẤN DỮ LIỆU 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Xem toàn nội dung bảng KHACH Xem toàn nội dung bảng HANG Xem toàn nội dung bảng DONHANG Đưa Tên Địa tất Khách hàng bảng KHACH Đưa Tên hàng, Mô tả hàng Đơn vị tính tất mặt hàng bảng HANG Đưa tất đơn vị tính dùng để tính hàng hóa Đưa tất tên hàng bảng HANG Đưa tất địa khách hàng Đưa so_phieu, ma_hang, don_gia, soluonggi Thành tiền (don_gia*so_luong) tất hàng bảng PHIEU_GIAO Đưa so_phieu, ma_hang, don_gia, soluonggi Thành tiền (don_gia*so_luong), sử dụng bí danh la thanh_tien tất hàng bảng PHIEU_GIAO Đưa tất giá trị bảng HANG theo thứ tự giảm dần ma_hang Đưa tất giá trị bảng PHIEUGIAO theo thứ tự tăng dần (giảm dần) tổng tiền (tong_tien) Đưa tất khách hàng có địa Đại học Quốc Gia bảng KHACH Đưa So_phieu, Ma_khach bảng PHIEUGIAO với điều kiện Tong_tien>=100.000, xếp theo điều kiện giảm dần Tong_tien Đưa ten_hang, mota_hang hàng hóa có don_vi tính theo bảng HANG Đưa danh sách ghi bao gồm so_phieu, ma_khach, ngay_giao bảng PHIEUGIAO với điều kiện Noi_giao Hà Nội Tong_tien>50.000 Đưa danh sách ghi bao gồm Ma_khach, Ten_khach bảng KHACH với điều kiện địa khách Đại học Quốc Gia Đại học Thủy Lợi Đưa mặt hàng bảng HANG có đơn vị tính Bông, Cành Bó Đưa danh sách khách hàng (Ma_khach, Tong_tien) nằm bảng PHIEUGIAO có Noi_giao nằm số địa điểm sau: Hà Nội, Hồ Chí Minh, Hải Phòng Đưa tất thông tin bảng PHIEUGIAO với điều kiện tong_tien nằm khoảng từ 100.000 đến 500.000 Đưa ma_kh, ten_kh bảng KHACH khách hàng có họ Nguyễn Đếm số lần mua hàng khách hàng có ma_kh K001 bảng PHIEUGIAO Thuộc tính đặt tên SoLanMua Tính tổng tiền trung bình PHIEUGIAO Thuộc tính đặt tên TrungBinhPG 61/65 24 Tính tổng tiền bảng PHIEUGIAO khách hàng có ma_khach = ‘K002’ 25 Tính tổng số khách hàng bảng KHACH có địa (diachi_KH) Đại học Thủy Lợi 26 Đưa ma_khach, ngay_giao, noi_giao bảng PHIEUGIAO có tong_tien toán lớn 27 Đưa ma_khach, ngay_giao, noi_giao bảng PHIEUGIAO có tong_tien toán nhỏ 62/65 Tham gia đóng góp Tài liệu: Ngôn ngữ SQL Biên tập bởi: Ths Phạm Hoàng Nhung URL: http://voer.edu.vn/c/869443c2 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Giới thiệu Các tác giả: Ths Phạm Hoàng Nhung URL: http://www.voer.edu.vn/m/926e4723 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Các lệnh định nghĩa liệu (DDL) Các tác giả: Ths Phạm Hoàng Nhung URL: http://www.voer.edu.vn/m/b0ac8bca Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Các lệnh quản trị liệu Các tác giả: Ths Phạm Hoàng Nhung URL: http://www.voer.edu.vn/m/140fa679 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Ngôn ngữ điều khiển (DCL) Các tác giả: Ths Phạm Hoàng Nhung URL: http://www.voer.edu.vn/m/1e499767 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Truy vấn liệu (Select) Các tác giả: Ths Phạm Hoàng Nhung URL: http://www.voer.edu.vn/m/668008ec Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Thực hành tổng hợp Các tác giả: Ths Phạm Hoàng Nhung URL: http://www.voer.edu.vn/m/eaa43837 63/65 Giấy phép: http://creativecommons.org/licenses/by/3.0/ 64/65 Chương trình Thư viện Học liệu Mở Việt Nam Chương trình Thư viện Học liệu Mở Việt Nam (Vietnam Open Educational Resources – VOER) hỗ trợ Quỹ Việt Nam Mục tiêu chương trình xây dựng kho Tài nguyên giáo dục Mở miễn phí người Việt cho người Việt, có nội dung phong phú Các nội dung đểu tuân thủ Giấy phép Creative Commons Attribution (CC-by) 4.0 nội dung sử dụng, tái sử dụng truy nhập miễn phí trước hết trong môi trường giảng dạy, học tập nghiên cứu sau cho toàn xã hội Với hỗ trợ Quỹ Việt Nam, Thư viện Học liệu Mở Việt Nam (VOER) trở thành cổng thông tin cho sinh viên giảng viên Việt Nam Mỗi ngày có hàng chục nghìn lượt truy cập VOER (www.voer.edu.vn) để nghiên cứu, học tập tải tài liệu giảng dạy Với hàng chục nghìn module kiến thức từ hàng nghìn tác giả khác đóng góp, Thư Viện Học liệu Mở Việt Nam kho tàng tài liệu khổng lồ, nội dung phong phú phục vụ cho tất nhu cầu học tập, nghiên cứu độc giả Nguồn tài liệu mở phong phú có VOER có chia sẻ tự nguyện tác giả nước Quá trình chia sẻ tài liệu VOER trở lên dễ dàng đếm 1, 2, nhờ vào sức mạnh tảng Hanoi Spring Hanoi Spring tảng công nghệ tiên tiến thiết kế cho phép công chúng dễ dàng chia sẻ tài liệu giảng dạy, học tập chủ động phát triển chương trình giảng dạy dựa khái niệm học liệu mở (OCW) tài nguyên giáo dục mở (OER) Khái niệm chia sẻ tri thức có tính cách mạng khởi xướng phát triển tiên phong Đại học MIT Đại học Rice Hoa Kỳ vòng thập kỷ qua Kể từ đó, phong trào Tài nguyên Giáo dục Mở phát triển nhanh chóng, UNESCO hỗ trợ chấp nhận chương trình thức nhiều nước giới 65/65 [...]... xuất hiện thứ m • LENGTH(char): Cho chiều dài của chuỗi char Hàm LOWER(char) SELECT LOWER(DNAME), LOWER( SQL COURSE’) FROM DEPT; LOWER(DNAME) LOWER(' SQL COURSE’) LOWER(DNAME) LOWER(' SQL COURSE’) Accounting sql course Accounting sql course Research sql course Research sql course Sales sql course Sales sql course Hàm UPPER(char) SELECT ENAME FROM EMP WHERE ENAME = UPPER(‘Smith’); ENAME 28/65 SMITH Hàm... WHERE MaDG= ‘TD001’ 16/65 Ngôn ngữ điều khiển (DCL) Lệnh GRANT Câu lệnh này dùng để cấp phát quyền cho người sử dụng trên đối tượng Cơ sở dữ liệu hoặc quyền thực thi các câu lệnh SQL SERVER Cú pháp có 2 dạng như sau Dạng 1: Cấp quyền đối với câu lệnh SQL GRANT ALL | statement [, ,statementN ] TO account [, ,accountN] Dạng 2: Cấp quyền đối với các đối tượng trong cơ sở dữ liệu GRANT ALL | permission... thứ hai 10 MLSLABEL Kiểu MLSLABEL dùng để chứa label dạng nhị phân mà ORACLE dùng để đảm bảo hoạt động của bản thân hệ thống Các loại dữ liệu sử dụng trong SQL SERVER Phần này sẽ được trình bày trong phần sau, khi học về SQL SERVER 2000 Các loại ràng buộc trong bảng dữ liệu Các dạng constraint gồm: • • • • NOT NULL UNIQUE PRIMARYKEY FOREIGN KEY (Referential) 10/65 • CHECK NOT NULL- Không rỗng • Khi có... PRIMARY KEY (MaNV) ) FOREIGN KEY-Khoá ngoại Chỉ ra mối liên hệ ràng buộc tham chiếu giữa bảng này với bảng khác 11/65 Từ khoá ON DELETE CASCADE được chỉ định trong dạng khoá này để chỉ khi dữ liệu cha bị xoá thì dữ liệu con cũng tự động bị xoá theo Cú pháp: [CONSTRAINT constraint_name ] [FOREIGN KEY (colname [,colname2 [ ,colname16]])] REFERENCES reference_table [(ref_colname[,ref_colname2[ ,ref_colname... (TO_DATE('01-01-1992', 'MM-DD-YYYY'), 'J') JULIAN FROM DUAL Cho kết quả: JULIAN - 9/65 2448623 8 RAW và LONG RAW Kiểu RAW và LONG RAW dùng để chứa các chuỗi byte, các dữ liệu nhị phân như hình ảnh, âm thanh Các dữ liệu kiểu RAW chỉ có thể gán hoặc truy cập chứ không được thực hiện các thao tác như đối với chuỗi ký tự Kiểu RAW giống như kiểu VARCHAR2 và kiểu LONG RAW giống kiểu LONG, chỉ khác... stored_procedure TO account [, ,accountN] Trong đó: • ALL: là từ khoá được sử dụng khi muốn cấp phát tất cả các quyền cho người sử dụng • Account: là tên tài khoản đăng nhận hệ thống • Permission: là quyền cấp phát cho người sử dụng trên đối tượng cơ sở dữ liệu: ◦ Các quyền có thể cấp phát trên một bảng hoặc một View: Select, Insert, Delete, Update ◦ Các quyền có thể cấp phát trên cột của bảng hoặc của...Ngoài ra, các cột kiểu LONG không được tham gia trong các thành phần sau của câu lệnh SQL: • Các mệnh đề WHERE, GROUP BY, ORDER BY, CONNECT BY hoặc với tác tử DISTINCT trong câu lệnh SELECT • Các hàm sử dụng trong câu lệnh SQL như SUBSTR, INSTR • Trong danh sách lựa chọn của câu lệnh SELECT có sử dụng mệnh đề GROUP BY • Trong danh sách lựa chọn của câu... OPERATIONS OPERATIONS Hàm SOUNDEX(char) SELECT ENAME, SOUNDEX(ENAME) FROM EMP WHERE SOUNDEX(ENAME)= SOUNDEX(‘FRED’); ENAME SOUN FORD F630 Hàm LENGTH(char) SELECT LENGTH( SQL COURSE’), LENGTH(DEPTNO), LENGTH(DNAME) FROM DEPT; LENGTH('SQLCOURSE') LENGTH(DEPTNO) LENGTH(DNAME) 10 2 14 10 2 14 10 2 14 10 2 14 Hàm TRANSLATE(char, from, to) SELECT ENAME, TRANSLATE(ENAME,'C','F'), JOB, TRANSLATE(JOB,'AR','IT')... Công Thành’, ‘KhoaCNTT’,22 ) - Thêm bản ghi mới vào bảng, để tuổi không xác định: INSERT INTO DOCGIA(MaDG,TenDG,DiaChi) VALUES(‘DHTL06’,’Nguyễn Phương Lan’, ‘Khoa May’ ) Ngoài ra chúng ta còn có thêm dữ liệu cho bảng từ giá trị của bảng khác Cú pháp INSERT [INTO] (Column1, Column2, , Columnn) SELECT Select_list FROM Insert into NHANVIEN_tam (TenNV, Tuoi) Select TenNV, Tuoi from NHANVIEN... mặc định là 12 giờ đêm, Nếu gán giá trị kiểu ngày mà không chỉ ra ngày, thì ngày mặc định là ngày đầu của tháng Hàm SYSDATE cho biết ngày và thời gian hệ thống Tính toán đối với kiểu ngày: Đối với dữ liệu kiểu ngày, bạn có thể thực hiện các phép toán cộng và trừ • • • • SYSDATE+1 ngày hôm sau SYSDATE-7 cách đây một tuần SYSDATE+(10/1440) mười phút sau Ngày Julian: Là giá trị số cho biết số ngày kể