Ngôn ngữ truy vấn CSDL MySQL Trần Tiến Dũng Session 3 MySQL

27 158 0
Ngôn ngữ truy vấn CSDL MySQL  Trần Tiến Dũng Session 3    MySQL

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tạo Cơ sở liệu Tạo bảng Session 03 Mục tiêu v Làm việc với sở liệu MySQL n Liệt kê sở liệu server n Tạo sở liệu n Chọn sở liệu cần làm việc n Xóa sở liệu v Các kiểu bảng MySQL v Làm việc với bảng v n Liệt kê tất bảng có sở liệu n Tạo bảng n Chỉnh sửa cấu trúc bảng n Xóa bảng Các ràng buộc toàn vẹn liệu Xem csdl có server v Cú pháp: SHOW DATABASE; v Lệnh dùng để kiểm tra csdl vừa tạo v Giúp tránh tạo csdl trùng tên với csdl có Lệnh tạo Cơ sở Dữ liệu v Cú pháp CREATE DATABASE [IF NOT EXISTS] database_name; n Trong đó: n n v database_name: tên csdl [IF NOT EXISTS]: thành phần tùy chọn giúp tránh lỗi tạo csdl có tên trùng với tên csdl có Ví du: Tạo sở liệu với tên QLBANHANG CREATE DATABASE QLBANHANG; Chọn sở liệu làm việc v Cú pháp USE database_name; n Trong đó: n v database_name: tên csdl cần làm việc Ví du: Chọn sở liệu QLBANHANG USE QLBANHANG; Xóa sở liệu v Cú pháp: DROP DATABASE [IF NOT EXISTS] database_name; n Trong đó: n v v database_name: tên csdl cần làm việc Chú ý: n Câu lệnh xóa vĩnh viễn csdl bạn khỏi server n Csdl bị xóa khơng thể phục hồi Ví dụ: xóa csdl QLBANHANG USE QLBANHANG; Các kiểu bảng MySQL v MySQL hỗ trợ nhiều kiểu bảng máy lưu trữ khác để giúp tối ưu hóa CSDL v Kiểu bảng tạo bảng v Mỗi bảng tạo, MySQL tạo file frm để lưu trữ bảng định nghĩa cột Ngoài ra, tùy vào kiểu bảng, sử dụng index loại liệu mà MySQL tạo thêm số file khác v Nếu lúc tạo không kiểu bảng, kiểu mặc định bảng MyISAM, v MySQL chia bảng thành hai loại n Các bảng có tính an tồn giao tác (transaction-safe tables): InnoDB BDB n Các bảng tính an tồn giao tác (not transaction-safe tables): HEAP, ISAM, MERGE, and MyISAM Các kiểu bảng MySQL v Các thuận lợi tính an tồn giao tác (transaction-safe tables) n n n n v An toàn Ngay MySQL bị treo có vấn đề phần cứng, bạn nhận lại liệu bạn, tự động phục hồi từ lưu + ghi giao dịch (transaction log) Có thể gộp nhiều câu lệnh thực chúng lần với lệnh COMMIT Có thể thực ROLLBACK để bỏ qua thay đổi (nếu không chạy chế độ commit tự động) Nếu cập nhật không thành công, tất thay đổi phục hồi (Với bảng khơng có tính an tồn giao tác, tất thay đổi xảy vĩnh viễn) Các thuận lợi khơng có tính an tồn giao tác (not transactionsafe tables) n Nhanh nhiều khơng có chi phí giao dịch n Sẽ sử dụng khơng gian đĩa khơng có phí giao dịch n Sẽ sử dụng nhớ thực cập nhật Các kiểu bảng MySQL v v Bảng kiểu ISAM n Có dung lượng tối đa 4GB di chuyển n Sử dụng B-Tree index n Index lưu tập tin ISM, liệu lưu file ISD n ISAM bị loại khỏi phiên từ 5.x trở Nó thay MyISAM Bảng kiểu MyISAM n n n n n Dung lượng bảng liệu kiểu MyISAM phụ thuộc hệ điều hành Bảng liệu kiểu MyISAM chuyển từ hệ thống sang hệ thống khác (do liệu bảng lưu trữ dạng byte mức thấp) Index lưu tập tin MYI, liệu lưu file MYD Có thể tạo index cột BLOB TEXT Chấp nhận giá trị NULL cột Index Có thể mở rộng đến 64 khóa bảng (64 index), độ dài khóa lên tới 1024 Bytes Các kiểu bảng MySQL v Bảng kiểu InnoDB n Có đặc tính an tồn giao tác hỗ trợ khóa dòng (row level locking) n Các khóa ngoại hỗ trợ kiểu InnoDB n v Tập tin liệu bảng liệu kiểu InnoDB lưu trữ nhiều file khác Vì dung lượng bảng InnoDB phụ thuộc vào dung lượng ổ đĩa n Tập tin liệu InnoDB chuyển từ hệ thống sang hệ thống khác n Điểm bất lợi InnoDB so với MyISAM cần nhiều không gian lưu trữ Bảng kiểu BDB n n BDB tương tự InnoDB tính an tồn giao tác Nó hỗ trợ khóa trang (page level locking) Tập tin liệu BDB lại chuyển đổi hệ thống Tạo bảng v Cú pháp: CREATE TABLE [IF NOT EXISTS] table_name( Tên_cột_1 Kiểu_dl [NOT NULL], Tên_cột_2 Kiểu_dl [NOT NULL], Tên_cột_N , Kiểu_dl [NOT NULL] ) type=table_type n n Mệnh đề IF NOT EXISTS giúp bạn gặp lỗi tạo bảng trùng tên với bảng khác có csdl Bạn kiểu bảng liệu dùng cho bảng liệu Tạo bảng v Ví dụ tạo bảng monhoc để lưu thơng tin môn học CREATE TABLE vattu ( mavtu CHAR(4) NOT NULL, tenvtu VARCHAR(100) CHARACTER SET utf8 NOT NULL, dvtinh VARCHAR(20) CHARACTER SET utf8 NOT NULL, phantram int ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Tạo bảng v Tạo bảng có cột tự động tăng CREATE TABLE khoa ( makh INT NOT NULL AUTO_INCREMENT, tenkh VARCHAR(100) CHARACTER SET utf8 NOT NULL, ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Chỉnh sửa cấu trúc bảng v Thêm cột vào bảng ALTER TABLE ADD [COLUMN] Tên_cột_1 Kiểu_dl [NOT NULL], ADD [COLUMN] Tên_cột_2 Kiểu_dl [NOT NULL], ADD [COLUMN] Tên_cột_N v , Kiểu_dl [NOT NULL] Ví dụ: Thêm cột hinhanh có kiểu varchar(250) vào bảng vattu ALTER TABLE vattu ADD hinhanh VARCHAR(250) CHARACTER SET utf8 NOT NULL Chỉnh sửa cấu trúc bảng v Xóa cột khỏi bảng ALTER TABLE DROP [COLUMN] Tên_cột_1, DROP [COLUMN] Tên_cột_2, DROP v , [COLUMN] Tên_cột_N ; Ví dụ: xóa cột diachi khỏi bảng sinhvien ALTER TABLE sinhvien DROP COLUMN diachi Chỉnh sửa cấu trúc bảng v Sửa cột (đổi tên cột, đổi kiểu liệu) ALTER TABLE CHANGE [COLUMN] Tên_cũ v Tên_mới Kiểu_DL [NOT NULL] Ví dụ: Thay đổi tên cột Tenkh bảng KHOA thành tên ten_khoa với kiểu liệu varchar(200) ALTER TABLE sinhvien CHANGE COLUMN tenkh ten_khoa varchar(200) Not Null Tên cột muốn đổi Tên Xóa bảng khỏi CSDL v Cú pháp DROP TABLE Tên_bảng v Ví dụ: Xóa bảng VATTU DROP TABLE VATTU Ràng buộc tồn vẹn ? v Ràng buộc tồn vẹn quy tắc kiểm tra liệu nhằm đảm bảo tính đắn cho liệu thực thao tác cập nhật(thêm, sửa, xố) v Thơng thường có ràng buộc sau: v n Ràng buộc miền giá trị cột (thông thường áp dụng cột liệu kiểu số, kiểu thời gian,…) n Ràng buộc toàn vẹn cột bảng Ví dụ n Ngày th (phòng, sách) phải nhỏ ngày trả (phòng, sách) n Chuyến bay: ngày đi0), PRIMARY KEY(sodh,mavtu) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Sử dụng Constraint v Cú pháp sử dụng ALTER TABLE để CONSTRAINT ALTER TABLE ADD [constraint ] Primary Key (ds_cot_lam_khoa_chinh), [constraint ] Unique (ds_cot), [constraint ] Check (bieu_thuc), [constraint ] Foreign Key (ten_cot_lam_khoa_ngoai) Reference ten_bang(ds_ten_cot_khoa_chinh) [ON DELETE {CASCADE|NO ACTION}] [ON UPDATE {CASCADE|NO ACTION}] Cú pháp thêm constraint DEFAULT cho cột: ALTER TABLE ALTER Tên_cột SET DEFAULT ‘Giá_trị’ Xóa Constraint v Xóa n bỏ constraint Xóa Primary Key ALTER TABLE DROP PRIMARY KEY n Xóa constraint Unique ALTER TABLE n DROP INDEX Tên_Constraint_Unique Xóa constraint Foreign Key ALTER TABLE DROP FOREIGN KEY Tên_Constraint_ForeignKey Xóa Constraint v Xóa n bỏ constraint Xóa constraint Check ALTER TABLE DROP CONSTRAINT Tên_constraint_Check n Xóa constraint Default ALTER TABLE ALTER COLUMN Tên_cột DROP DEFAULT ... viễn csdl bạn khỏi server n Csdl bị xóa khơng thể phục hồi Ví dụ: xóa csdl QLBANHANG USE QLBANHANG; Các kiểu bảng MySQL v MySQL hỗ trợ nhiều kiểu bảng máy lưu trữ khác để giúp tối ưu hóa CSDL. .. Xóa bảng Các ràng buộc toàn vẹn liệu Xem csdl có server v Cú pháp: SHOW DATABASE; v Lệnh dùng để kiểm tra csdl vừa tạo v Giúp tránh tạo csdl trùng tên với csdl có Lệnh tạo Cơ sở Dữ liệu v Cú pháp... database_name; n Trong đó: n n v database_name: tên csdl [IF NOT EXISTS]: thành phần tùy chọn giúp tránh lỗi tạo csdl có tên trùng với tên csdl có Ví du: Tạo sở liệu với tên QLBANHANG CREATE

Ngày đăng: 21/01/2018, 11:12

Tài liệu cùng người dùng

Tài liệu liên quan