Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
2,02 MB
Nội dung
THỰC HÀNH NGUYÊN LÝ HQTCSDL (CT237) Nội dung thực hành Nội dung thực hành học phần bao gồm buổi: Giới thiệu MySQL MySQL nâng cao (transaction, trigger,…) Giới thiệu đồ án sở lý thuyết để thực đồ án (JDBC) Tìm hiểu phân tích u cầu đồ án, thiết kế CSDL, tạo CSDL Thiết kế giao diện, kết nối xử lý liệu Báo cáo kết đồ án BUỔI - GIỚI THIỆU MYSQL Nội dung: - Giới thiệu Hệ quản trị sở liệu MySQL - Căn MySQL - Tạo ràng buộc toàn vẹn MySQL Phần giới thiệu ngắn gọn hệ Quản trị CSDL MySQL Chi tiết hệ quản trị CSDL tham khảo giáo trình Lập trình Web (CT428) giảng Lập trình Web (link: https://goo.gl/cRBapd) 1.1 Giới thiệu MySQL MySQL Hệ quản trị sở liệu (CSDL) quan hệ, mã nguồn mở thông dụng giới Đây đánh giá hệ quản trị có hiệu tốt, đáng tin cậy, tính dãn nở (scalability) cao, dễ sử dụng đa (Unix, Linux, BSD, Windows,…) MySQL sử dụng cho ứng dụng có kiến trúc client/server hệ thống nhúng Ngồi ra, hệ quản trị LAMP (Linux , Apache, MySQL, PHP/Perl/Python), tảng phát triển web thông dụng Hiện nay, MySQL bao gồm phiên (chi tiết phiên tham khảo www.mysql.com/products): MySQL Enterprise Edition MySQL Standard Edition MySQL Classic Edition MySQL Cluster CGE MySQL Embedded Một số đặc điểm tính MySQL: Unicode support, ACID compliance, stored procedures , triggers, cursors, views, transactions and savepoints, query TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -1- caching, sub-SELECTs (i.e nested SELECTs), replication support, full-text indexing and searching, clustering, support for hotbackup, commit grouping,… 1.2 Cài đặt MySQL 1.2.1 Trên hệ điều hành Linux (Ubuntu Debian) Sử dụng công cụ quản lý package apt-get sau: apt-get install mysql-server 1.2.2 Trên hệ điều hành Windows Bộ cài đặt MySQL phiên cộng đồng (cimmunity, miễn phí) cơng cụ cho Windows download địa sau: https://dev.mysql.com/downloads/ Để cài đặt MySQL, thực thi tập tin MySQL installer (file msi) thực theo bước hướng dẫn cài đặt 1.3 Nối kết làm việc với MySQL Để nối kết thao tác MySQL, dùng cơng cụ dịng lệnh (shell), cơng cụ giao diện đồ họa, API (để nối kết truy xuất từ chương trình) 1.3.1 Giao diện dòng lệnh Từ giao diện dòng lệnh (Terminal Linux, Command Prompt Windows), gõ lệnh: mysql [-u [-p ]] Figure Nối kết MySQL từ giao diện dòng lệnh Để ngắt nối kết với MySQL, ta gõ lệnh exit quit Lưu ý, đối số -u cho phép định tài khoản người dùng đối số -p cho phép khai báo mật dùng để nối kết đến MySQL Ví dụ, để nối kết đến MySQL người dùng root dùng lệnh: mysql –u root 1.3.2 Giao diện đồ họa Hiện có nhiều công cụ giao diện đồ họa giúp người dùng truy xuất MySQL thuận tiện Một số công cụ thông dụng miễn phí MySQL Wordbench, HeidiSQL, Toad, TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -2- Eclipse (+plugin), myPHPAdmin (web),… Trong phần giới thiệu công cụ MySQL Workbench Để cài đặt công cụ Linux, ta thực lệnh sau: sudo apt-get install MySQL-workbench Còn Windows, ta cài đặt MySQL phiên Community Server cơng cụ tự động cài đặt Ngoài ra, cài đặt cơng cụ download https://www.mysql.com/products/workbench/ Giao diện chương trình cài đặt xong: Nối kết mặc định đến server máy cục Tạo nối kết Giao diện chương trình cho phép tạo nối kết đến server máy cục nối kết đến MySQL server máy khác Để tạo nối kết đến MySQL Server ta cần khai thông tin hình sau: TS Trần Cơng Án - Thực hành Ngun lý Hệ quản trị CSDL (CT237) -3- Tên nối kết Địa chỉ/Cổng server Tên tài khoản truy cập server Schema mặc định Giao diện tiện ích sau nối kết vào server: Cửa sổ tạo lệnh truy vấn Danh sách CSDL server Trợ giúp lệnh Công cụ bao gồm chức cho phép tạo CSDL, đối tượng CSDL table, procedure, view,… lệnh DDL hay qua giao diện trực quan Ngồi cịn cho phép tạo thực thi câu truy vấn TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -4- 1.4 Căn MySQL 1.4.1 Cú pháp dòng lệnh Một số quy tắc cú pháp dịng lệnh MySQL: Các lệnh MySQL từ dịng lệnh ln kết thúc dấu chấm phẩy ; Một lệnh bao gồm nhiều dịng Một lệnh nhập hủy cách thêm “\c” cuối dịng Các lệnh khơng phân biệt chữ hoa, chữ thường 1.4.2 Các lệnh sở liệu (DDL, Data Definition Language) Một server quản trị nhiều CSDL Một số lệnh liên quan đến việc quản lý CSDL: SHOW DATABASE: liệt kê CSDL server USE : chọn CSDL sử dụng (làm việc) CREATE DATABASE : tạo CSDL DROP DATABASE : xóa CSDL ALTER DATABASE : thay đổi thông số CSDL Để thực lệnh này, người dùng cần có quyền CREATE DATABASE Chi tiết lệnh số lệnh DDL khác tham khảo website MySQL: https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-data-definition.html 1.4.3 Người dùng quyền (user and permission) Trong MySQL, người dung root (được tạo lúc cài đặt) có quyền cao Muốn tạo người dùng server, ta dùng lệnh: CREATE USER Gán quyền cho người dùng: GRANT ON TO ''@'' IDENTIFIED BY '' Nếu người dùng gán quyền câu lệnh GRANT chưa có hệ thống người dùng tự động tạo Hình sau minh họa cho việc người dùng khơng thể tạo CSDL server chưa gán quyền TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -5- Đăng nhập với người dùng root để tạo CSDL gán quyền cho người dùng “tcan” toàn quyền CSDL vừa tạo: Để lấy tên người dùng nối kết, ta dùng lệnh: SELECT user(); 1.4.4 Các kiểu liệu MySQL Một số kiểu liệu MySQL: Chuỗi ký tự: CHAR (255 bytes), VARCHAR (65KB), TINYTEXT (255 bytes), TEXT (65KB), MEDIUMTEXT (16MB), LONGTEXT (4GB) Nhị phân: BINARY (255 bytes), VARBINARY (65KB), TINYBLOB (255 bytes), BLOB (65KB), MEDIUMBLOB (16MB), LONGBLOB (4GB) Kiểu số: TINYINT (1 byte), SMALLINT (2 bytes), MEDIUMINT (3 bytes), INT/INTEGER (4 bytes), BIGINT (8 bytes), FLOAT (4 bytes), DOUBLE/REAL(8 bytes) Ngày tháng: DATETIME (yyyy-mm-dd hh-mm-ss), DATE (yyyy-mm-dd), TIMESTAMP (yyyy-mm-dd, 1970-2037), TIME (hh-mm-ss), YEAR (1901-2155) Các thuộc tính giá trị mặc định kiểu liệu cho bảng sau: Kiểu liệu Thuộc tính Số nguyên AUTO_INCREMENT, UNSIGNED, SERIAL DEFAULT VALUE Số thực Nhị phân UNSIGNED, ZERO FILL BINARY, CHARACTER SET Giá trị mặc định NULL NOT NULL NULL NULL NULL TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) Rỗng -6- Ngày tháng Timestamp NULL Rỗng curdate() curdate() Chi tiết kiểu DL: https://dev.mysql.com/doc/refman/5.7/en/data-types.html 1.4.5 Các lệnh DDL table Một số lệnh DDL cho phép tạo thay đổi cấu trúc table: 1.4.5.1 Tạo table – CREATE TABLE Cú pháp bản: CREATE TABLE ( [options], [options], [, PRIMARY KEY(col_name[,col_name, ])] ) Cú pháp đầy đủ: https://dev.mysql.com/doc/refman/5.7/en/create-table.html Một số thông số (options) áp dụng cho trường: o NOT NULL: trường không rỗng o DEFAULT : định giá trị o AUTO_INCREMENT: giá trị tự động tăng dần o UNSIGNED: số không dấu (số dương) 1.4.5.2 Thay đổi cấu trúc table – ALTER TABLE Một số lệnh để thay đổi cấu trúc table: ALTER TABLE RENAME : đổi tên table ALTER TABLE MODIFY : đổi kiểu liệu trường ALTER TABLE CHANGE : đổi tên trường ALTER TABLE ADD : thêm trường ALTER TABLE DROP : xóa trường TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -7- 1.4.5.3 Một số lưu ý: Cần phải chọn CSDL (lệnh: USE ) trước thực lệnh Lệnh để lấy danh sách table CSDL: SHOW TABLES Để truy vấn cấu trúc table, dùng lệnh: DESCRIBE Để xóa table khỏi CSDL, dùng lệnh: DROP TABLE 1.4.6 Các lệnh thao tác liệu DML Các lệnh DML cho phép thao tác liệu thêm liệu vào table, xóa liệu khỏi table, cập nhật giá trị mẫu tin table,…: INSERT INTO…: thêm mẩu tin vào table INSERT [INTO] tbl_name [(col_name, )] {VALUES | VALUE} ({expr | DEFAULT}, ),( ), DELETE FROM…: xóa mẩu tin khỏi table DELETE FROM tbl_name [WHERE where_condition] [LIMIT row_count] TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -8- UPDATE…: cập nhật liệu table UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1={expr1|DEFAULT} [,col_name2={expr2|DEFAULT}] [WHERE where_condition] LOAD DATA…: thêm liệu từ tập tin bên LOAD DATA INFILE 'file_name' INTO TABLE tbl_name [CHARACTER SET charset_name] [{FIELDS | COLUMNS} [TERMINATED BY 'string'] [ENCLOSED BY 'char'] [ESCAPED BY 'char'] ] [LINES [STARTING BY 'string'] [TERMINATED BY 'string'] ] [IGNORE number {LINES | ROWS}] FIELDS TERMINATED BY: định chuỗi ngăn cách trường tập tin liệu FIELDS ENCLOSED BY: định ký tự bao quanh giá trị trường LINE STARTING BY: định ký tự (dấu hiệu) bắt đầu mẩu tin LINE TERMINATED BY: định ký tự ngăn cách mẩu tin IGNORE number LINES: bỏ qua number dòng file (Chi tiết: https://dev.mysql.com/doc/refman/5.7/en/load-data.html ) Ví dụ: Tương tự lệnh DDL, ta cần phải chọn CSDL trước thực lệnh DML 1.4.7 Truy vấn liệu MySQL Tương tự DBMS khác, MySQL hỗ trợ lệnh SELECT để truy vấn liệu Cú pháp lệnh SELECT MySQL sau: TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -9- SELECT [ALL | DISTINCT | DISTINCTROW ] select_expr [, select_expr ] [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [INTO OUTFILE 'file_name' [CHARACTER SET charset_name] export_options | INTO DUMPFILE 'file_name' | INTO var_name [, var_name]] Các thông số lệnh tương tự ANSI SQL Ý nghĩa số thông số đặc trưng MySQL sau: DISTINCTROW: từ khóa khác DISTINCT WITH ROLLUP: yêu cầu sinh kết thống kê nhóm theo nhiều cấp INTO OUTFILE: yêu cầu lưu kết truy vấn vào file biến Một số hàm thông dụng MySQL: Hàm xử lý chuỗi: CONCAT(str1, str2, ), LEFT/RIGHT(str, len), MID(str, pos, len), LENGTH(str), LPAD/RPAD(str, len, padstr), LOCATE(substr, str, pos), LOWER/UPPER(str), TRIM/LTRIM/RTRIM(str), CONCAT_WS(sep, str1, str2, ) Hàm xử lý liệu ngày tháng: CURDATE(), DATE(expr), DATE_ADD(date, INTERVAL expr unit), DAY/MONTH/YEAR(date), DATENAME(date), DAYOFWEEK(date) Hàm xử lý liệu giờ: CURTIME(), HOUR/MINUTE/SECOND(time), TIMEDIFF(expr1, expr2) Hàm tốn học: ABS(expr), FLOOR(expr), MOD(expr), ROUND(expr) Ví dụ: chọn sinh viên có tháng sinh tháng TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -10- 1.4.8 Nối kết (join) bảng Join dùng để truy vấn liệu từ nhiều table, dựa vào mối quan hệ luận lý chúng (giá trị trường) Có lệnh để nối kết table: NATURAL JOIN : tự động nối kết table mệnh đề FROM dựa trường tên JOIN ON : nối kết table mệnh đề FROM JOIN dựa trường định mệnh đề ON FROM WHERE : kết nối table mệnh đề FROM sử dụng điều kiện mệnh đề WHERE Các nối kết phân làm loại: INNER JOIN, LEFT/RIGHT/FULL OUTER JOIN Để minh họa cho câu lệnh phần này, table sau sử dụng: Table Student: Table Province: 1.4.8.1 Inner join Đây loại nối kết mặc định MySQL Inner join trả mẩu tin có giá trị trường định nối kết mơ tả hình sau: TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -11- Trong đó, FTable table mệnh đề FROM JTable table mệnh đề JOIN Kết trả phần giao hai table, dựa điều kiện định mệnh đề JOIN WHERE Ví dụ: Truy vấn mã sinh viên, họ tên sinh viên với tên quê quán SV 1.4.8.2 Left outer join Left outer join trả mẩu tin có giá trị trường định nối kết cộng với mẩu tin table mệnh đề FROM Hình sau minh họa cách thức làm việc loại nối kết này: Phần có tơ phần trả câu truy vấn Đối với mẩu tin thuộc table mệnh đề FROM không giao với table mệnh đề JOIN, thuộc tính trường thuộc table mệnh đề JOIN có giá trị NULL Ví dụ, tương tự ví dụ phần 1.4.8.1, trả sinh viên có mã tỉnh khơng hợp lệ (khơng có danh sách tỉnh table Province) Câu truy vấn kết tương ứng sau: TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -12- 1.4.8.3 Right outer join Ngược với left outer join, right outer join trả mẩu tin giao table mẩu tin table mệnh đề JOIN Đối với mẩu tin table mệnh đề JOIN mà không giao với table mệnh đề FROM, trường mệnh đề SELECT mang giá trị NULL Hoạt động loại nối kết minh họa câu truy vấn kết tương ứng sau: 1.4.8.4 Full outer join (union) Kết full outer join kết hợp left outer join right outer join TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -13- 1.4.9 Các câu truy vấn lồng Câu truy vấn lồng có nghĩa câu truy vấn sử dụng mệnh đề điều kiện câu truy vấn khác Sau ví dụ câu truy vấn lồng nhau: 1.5 Ràng buộc (Constraint) MySQL Ràng buộc qui tắc (rule) người dùng thiết đặt phép hay ngăn cấm giá trị lưu trữ trường mẩu tin Mục đích việc thiết đặt ràng buộc để đảm bảo tính tồn vẹn liệu Ràng buộc MySQL phân làm mức: Ràng buộc mức cột: dùng để thiết đặt cho trường Ràng buộc mức table: áo dụng cho toàn table Các kiểu ràng buộc hỗ trợ MySQL: NOT NULL: không cho phép chưa giá trị NULL UNIQUE: không cho phép trường mẩu tin có giá trị trùng PRIMARY KEY: ràng buộc khóa chính, khơng cho phép trùng FOREIGN KEY: ràng buộc khóa ngoại, bắt buộc giá trị khóa ngoại phải có giá trị khóa tương ứng CHECK: dùng để định giá trị cho phép lưu trữ trường DEFAULT: dùng để định giá trị cho trường giá trị trường không cung cấp Các ràng buộc định câu lệnh CREATE TABLE ALTER TABLE Cú pháp tạo table với thông số liên quan đến ràng buộc bao gồm: CREATE TABLE [IF NOT EXISTS] tbl_name (create_definition, ) create_definition: col_name column_definition | [CONSTRAINT [symbol]] PRIMARY KEY (index_col_name, ) | [CONSTRAINT [symbol]] UNIQUE [index_name] [index_type] (index_col_name, ) | [CONSTRAINT [symbol]] FOREIGN KEY TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -14- [index_name] (index_col_name, ) reference_definition | CHECK (expr) column_definition: data_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE | [PRIMARY] KEY] [reference_definition] reference_definition: REFERENCES tbl_name (index_col_name, ) Ví dụ, tạo table Publisher (nhà xuất bản) với trường ràng buộc sau: CREATE TABLE IF NOT EXISTS Publisher ( pub_id varchar(8) PRIMARY KEY, khóa pub_name varchar(50) NOT NULL UNIQUE, ko NULL, ko trùng pub_city varchar(25) NOT NULL, ko rỗng country varchar(25) DEFAULT 'Vietnam', giá trị ); pub_id: mã nhà xuất bản, khóa table pub_name: tên nhà xuất bản, khơng rỗng trùng pub_city: thành phố đặt NXB, không rỗng country: quốc gia đặt NXB, giá trị “Vietnam” Tương tự, table Book (sách) bao gồm trường ràng buộc sau: CREATE TABLE IF NOT EXISTS Book ( book_id varchar(15) PRIMARY KEY, thiết đặt khóa book_name varchar(50) NOT NULL, tên sách ko NULL isbn_no varchar(15) NOT NULL UNIQUE, ISBN ko trùng pub_id varchar(8), date_of_pub date CHECK (dt_of_pub LIKE ' / / '), no_page decimal(5,0) CHECK(no_page > 0), FOREIGN KEY(pub_id) REFERENCES Publisher(pub_id) ); book_id: mã sách, khóa book_name: tên sách, khơng rỗng TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -15- isbn_no: số xuất bản, không rỗng không trùng pub_id: mã NXB, khóa ngoại tham chiếu đến pub_id table Publisher date_of_pub: ngày xuất bản, giá trị phải định dạng ngày tháng năm no_page: số trang, giá trị phải > 1.6 Thực hành Bài Làm quen với MySQL giao diện dịng lệnh Mục tiêu: - Tìm hiểu giao diện dòng lệnh MySQL - Thực số lệnh giao diện dòng lệnh Yêu cầu: 1) Dùng giao diện dòng lệnh (trên Windows Command Prompt, Linux MacOS Console Terminal), nối kết đến MySQL, không định tên người dùng (mysql ) Lưu ý: Nếu gõ lệnh mysql bị báo lỗi có nghĩa đường dẫn đến MySQL chưa thiết đặt Cần thiết đặt đường dẫn trước gọi Windows sử dụng MySQL Command Line Client: Start\All Programs\MySQL Server…\MySQL Command Line) 2) Liệt kê CSDL server (show databases; ) 3) Tạo CSDL tên dbms server cho nhận xét (create database dbms; ) 4) Thoát khỏi MySQL (quit; ) 5) Nối kết lại vào MySQL với người dùng root (mysql –u root ) 6) Thực lại yêu cầu 2) 3) giải thích khác kết Bài Làm quen với MySQL giao diện đồ họa, chương trình MySQL Workbench Mục tiêu: - Làm quen với chương trình MySQL Workbench - Thực số thao tác MySQL Workbench Yêu cầu: 1) Tạo nối kết đến MySQL máy tính cục tài khoản root 2) Thực yêu cầu tương tự Bài giao diện đồ họa Bài Tạo table, chèn liệu vào table Mục tiêu: - Ôn tập lệnh DML DDL Yêu cầu: 1) Tạo CSDL tên QLDIEM tạo tables sau: TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -16- 2) Dùng câu lệnh SQL để thêm liệu cho table sau: Học phần (hocPhan): maHP CT101 tenHP Lập trình soTinChi soTietLT soTietTH 30 60 CT176 CT237 Lập trình Hướng đối tượng Nguyên lý Hệ điều hành 3 30 30 30 30 TN001 TN101 SP102 TN172 Vi tích phân A1 Xác suất thống kê Đại số tuyến tính Tốn rời rạc 3 4 45 45 60 60 0 0 Khoa: maKhoa ktqtkd cntt&tt khtn khxh sp tenKhoa Kinh tế quản trị kinh doanh Công nghệ thông tin Truyền thông Khoa học tự nhiên Khoa học xã hội Sư phạm Sinh viên (sinhVien): mssv B1234567 hoten Nguyễn Thanh Hải M ngaySinh 2001-12-02 noiSinh Bạc Liêu diaChi Phòng 01, KTX Khu B, ĐHCT maKhoa cntt&tt B1234568 Trần Thanh Mai M 2001-01-20 Cần Thơ cntt&tt B1234569 Trần Thu Thủy F 2001-07-01 Cần Thơ B1334569 F 2002-05-25 Sóc Trăng B1345678 Nguyễn Thị Trúc Mã Trần Hồng Trúc F 2002-03-02 Cần Thơ B1345679 Bùi Hoàng Yến F 2001-11-05 Vĩnh Long 232, Nguyễn Văn Khéo, Q Ninh Kiều, TPCT 02, Đại lộ Hịa Bình, Q Ninh Kiều, TPCT 343, Đường 30/4, Q/ Ninh Kiều, TPCT 123, Trần Hưng Đạo, Q Ninh Kiều, TPCT Phòng 201, KTX Khu A, TPCT TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) cntt&tt sp cntt&tt cntt&tt -17- B1456789 Trần Trọng Kim M 2003-05-10 Kiên Giang Phòng 101, KTX Khu A, ĐHCT khtn B1456790 Lê Bạch Yến F 2003-10-20 Kiên Giang 177, Đường 3/2, Q Ninh Kiều, TPCT khtn Kết (ketQua): mssv B1234567 maHP CT101 diem mssv B1234567 B1234568 CT176 B1234568 B1234569 CT237 B1234569 B1334569 SP102 B1334569 B1345678 CT101 B1345678 B1345679 CT176 B1345679 B1456789 B1456790 TN172 TN172 10 B1456789 B1456790 maHP diem CT176 CT101 CT101 CT101 TN001 CT101 CT101 CT101 Bài Thực số yêu cầu sau dựa CSDL Bài 3: 1) Hiển thị danh sách SV bao gồm MSSV, họ tên, ngày tháng năm sinh, xếp theo tăng dần theo MSSV 2) Hiển thị danh sách SV (MSSV, họ tên) thuộc khoa “Công nghệ thông tin Truyền thông” 3) Hiển thị bảng điểm bao gồm thông tin sau: MSSV, họ tên, tên học phần, điểm 4) Hiển thị MSSV họ tên SV nữ sinh năm 2001 5) Hiển thị danh sách bao gồm MSSV, họ tên, số học phần học điểm trung bình 6) Hiển thị danh sách mơn học chưa có SV học 7) Hiển thị sinh viên có điểm trung bình lớn 8) Hiển thị danh sách SV có điểm trung bình nhỏ trung bình điểm trung bình tất SV 9) Hiển thị danh sách Khoa với số sinh viên tương ứng Khoa 10) Hiển thị khoa có nhiều SV 11) Cập nhật lại điểm sinh viên không thuộc Khoa CNTT&TT học môn CT101 lên SV điểm Bài Tạo ràng buộc toàn vẹn table CSDL QLDIEM sau: 1) MSSV: Ký tự phải chữ từ ‘A’ đến ‘Z’, ký tự lại phải số từ ‘0’ đến ‘9’ 2) hoten: cho phép ký tự từ ‘a’ đến ‘z’ (thường hoa) khoảng trắng 3) diem: có giá trị từ đến 10 4) Phai: cho phép giá trị ‘F’ ‘M’ TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -18- Bài (Bài tập làm thêm 1) Cho lược đồ CSDL bao gồm quan hệ đại lý (daily), hàng hóa (hangHoa), mua (mua) bán (ban) sau, tạo sơ đồ thực câu lệnh truy vấn để trích xuất thơng tin theo u cầu: 1) Thực số câu truy vấn sau: a Liệt kê giao dịch bán hàng gồm mã hàng, tên hàng, mã đại lý, ngày bán, số lượng thành tiền b Thống kê giá trị bán theo tháng c Thống kê giá trị bán theo đại lý, theo tháng d Thống kê chênh lệch giá trị mua bán theo tháng 2) Thiết đặt ràng buộc sau: a Giá trị soLuongBan, giaTriBan, soLuongMua, giaTriMua > b Giá trị ngayBan ngayMua >= ngày TS Trần Công Án - Thực hành Nguyên lý Hệ quản trị CSDL (CT237) -19-