MySQL tạo cơ sở dữ liệu và tạo bảng

27 628 0
MySQL tạo cơ sở dữ liệu và tạo bảng

Đ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

Làm việc với cơ sở dữ liệu MySQLLiệt kê các cơ sở dữ liệu trên serverTạo cơ sở dữ liệuChọn cơ sở dữ liệu cần làm việcXóa cơ sở dữ liệu.Các kiểu bảng trong MySQLLàm việc với bảngLiệt kê tất cả các bảng có trong cơ sở dữ liệuTạo bảngChỉnh sửa cấu trúc bảngXóa bảngCác ràng buộc toàn vẹn dữ liệu

• Làm việc với sở liệu MySQL – Liệt kê sở liệu server – Tạo sở liệu – Chọn sở liệu cần làm việc – Xóa sở liệu. • Các kiểu bảng MySQL • Làm việc với bảng – Liệt kê tất bảng có sở liệu – Tạo bảng – Chỉnh sửa cấu trúc bảng – Xóa bảng • Các ràng buộc toàn vẹn liệu • Cú pháp: SHOW DATABASE; • Lệnh dùng để kiểm tra csdl vừa tạo • Giúp tránh tạo csdl trùng tên với csdl có • Cú pháp CREATE DATABASE [IF NOT EXISTS] database_name; – Trong đó: • 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; • Cú pháp USE database_name; – Trong đó: • database_name: tên csdl cần làm việc • Ví du: Chọn sở liệu QLBANHANG USE QLBANHANG; • Cú pháp: DROP DATABASE [IF NOT EXISTS] database_name; – Trong đó: • database_name: tên csdl cần làm việc • Chú ý: – Câu lệnh xóa vĩnh viễn csdl bạn khỏi server – Csdl bị xóa phục hồi • Ví dụ: xóa csdl QLBANHANG USE QLBANHANG; • • • • • MySQL hỗ trợ nhiều kiểu bảng máy lưu trữ khác để giúp tối ưu hóa CSDL. Kiểu bảng tạo bảng mới. 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. Nếu lúc tạo không kiểu bảng, kiểu mặc định bảng MyISAM, MySQL chia bảng thành hai loại – Các bảng có tính an toàn giao tác (transaction-safe tables): InnoDB BDB – Các bảng tính an toàn giao tác (not transaction-safe tables): HEAP, ISAM, MERGE, and MyISAM • • Các thuận lợi tính an toàn giao tác (transaction-safe tables) – An toàn hơ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 tính an toàn giao tác, tất thay đổi xảy vĩnh viễn) Các thuận lợi tính an toàn giao tác (not transaction-safe tables) – Nhanh nhiều chi phí giao dịch. – Sẽ sử dụng không gian đĩa phí giao dịch. – Sẽ sử dụng nhớ thực cập nhật. • • Bảng kiểu ISAM – Có dung lượng tối đa 4GB di chuyển. – Sử dụng B-Tree index. – Index lưu tập tin .ISM, liệu lưu file .ISD – ISAM bị loại khỏi phiên từ 5.x trở đi. Nó thay MyISAM. Bảng kiểu MyISAM – 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 • • Bảng kiểu InnoDB – Có đặc tính an toàn giao tác hỗ trợ khóa dòng (row level locking). – Các khóa ngoại hỗ trợ kiểu InnoDB. – Tập tin liệu bảng liệu kiểu InnoDB lưu trữ nhiều file khác nhau. Vì dung lượng bảng InnoDB phụ thuộc vào dung lượng ổ đĩa. – Tập tin liệu InnoDB chuyển từ hệ thống sang hệ thống khác. – Đ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 – BDB tương tự InnoDB tính an toà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. • Để hiển thị bảng có CSDL SHOW TABLES; • 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 – 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 mình. • Ví dụ tạo bảng monhoc để lưu thông tin môn học TABLE vattu ( CREATE 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 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; • 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 , Kiểu_dl [NOT NULL] • Ví dụ: Thêm cột hinhanh có kiểu varchar(250) ALTER TABLE vattu vào bảng vattu ADD hinhanh VARCHAR(250) CHARACTER SET utf8 NOT NULL • 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 , [COLUMN] Tên_cột_N ; sinhvien • VíALTER dụ: TABLE xóa cột diachi khỏi bảng sinhvien DROP COLUMN diachi • Sửa cột (đổi tên cột, đổi kiểu liệu) ALTER TABLE CHANGE [COLUMN] Tên_cũ 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 • Cú pháp DROP TABLE Tên_bảng • Ví dụ: Xóa bảng VATTU DROP TABLE VATTU • Ràng buộc toà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, xoá). • Thông thường có ràng buộc sau: – 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,…) – Ràng buộc toàn vẹn cột bảng. • Ví dụ – Ngày thuê (phòng, sách) phải nhỏ ngày trả (phòng, sách) – Chuyến bay: ngày đi0), PRIMARY KEY(sodh,mavtu) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; • 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 bỏ constraint – Xóa Primary Key ALTER TABLE DROP PRIMARY KEY – Xóa constraint Unique ALTER TABLE DROP INDEX Tên_Constraint_Unique – Xóa constraint Foreign Key ALTER TABLE DROP FOREIGN KEY Tên_Constraint_ForeignKey • Xóa bỏ constraint – Xóa constraint Check ALTER TABLE DROP CONSTRAINT Tên_constraint_Check – Xóa constraint Default ALTER TABLE ALTER COLUMN Tên_cột DROP DEFAULT [...]...• Bảng kiểu MERGE – Bảng dữ liệu kiểu Merge được thêm vào để giải quyết vấn đề hạn chế của MyISAM Nó biến nhiều bảng MyISAM thành một bảng dữ liệu vì thế những hạn chế về dung lượng của MyISAM không còn là trở ngại kĩ thuật nữa • Bảng kiểu HEAP – Bảng dữ liệu kiểu Heap được lưu trữ trong bộ nhớ Do đó, nó là kiểu bảng được thao tác nhanh nhất Do bởi cơ chế lưu trữ, dữ liệu sẽ bị mất đi... lỗi khi tạo ra một bảng mới trùng tên với một bảng khác đã có trong csdl – Bạn có thể chỉ ra kiểu bảng dữ liệu dùng cho bảng dữ liệu của mình • Ví dụ tạo bảng monhoc để lưu thông tin các 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 có... tra tính tồn tại của dữ liệu, nhằm ngăn cản việc người dùng nhập một giá trị không có trong bảng khác CHECK và DEAFAULT - Kiểm tra miền giá trị – Cho phép kiểm tra miền giá trị của dữ liệu bên trong bảng, nhằm ngăn cản việc người dùng nhập một giá trị không nằm trong qui định • Các constraint được chỉ ra và gắn chúng vào bảng bằng hai cách sau: – Chỉ ra constraint ngay khi tạo bảng (viết cùng với lệnh... – Ràng buộc toàn vẹn giữa các cột ở các bảng trong cùng mối quan hệ • Ví dụ : Số lượng nhập phải nhỏ hơn hoặc bằng số lượng đặt • • • • Để đảm bảo tính toàn vẹn của dữ liệu trong csdl, MySQL cung cấp các CONSTRAINT sau: PRIMARY KEY và UNIQUE - Kiểm tra duy nhất – Cho phép kiểm tra tính duy nhất của dữ liệu bên trong bảng, giúp ngăn cản người dùng nhập trùng dữ liệu Ví dụ: Số báo danh, mã nhân viên số,... diachi khỏi bảng sinhvien DROP COLUMN diachi • Sửa cột (đổi tên cột, đổi kiểu dữ liệu) ALTER TABLE CHANGE [COLUMN] Tên_cũ Tên_mới Kiểu_DL [NOT NULL] • Ví dụ: Thay đổi tên cột Tenkh trong bảng KHOA thành tên ten_khoa với kiểu dữ liệu varchar(200) ALTER TABLE sinhvien CHANGE COLUMN tenkh ten_khoa varchar(200) Not Null Tên của cột muốn đổi Tên mới • Cú pháp DROP TABLE Tên _bảng • Ví dụ: Xóa bảng VATTU... DEFAULT CHARSET=latin1; • Thêm cột mới 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 , Kiểu_dl [NOT NULL] • Ví dụ: Thêm cột hinhanh có kiểu varchar(250) ALTER bảng vattu vào TABLE vattu ADD hinhanh VARCHAR(250) CHARACTER SET utf8 NOT NULL • Xóa cột khỏi bảng ALTER TABLE DROP [COLUMN] Tên_cột_1, DROP... TABLE VATTU • Ràng buộc toàn vẹn là các quy tắc kiểm tra dữ liệu nhằm đảm bảo tính đúng đắn cho dữ liệu khi thực hiện các thao tác cập nhật(thêm, sửa, xoá) • Thông thường có các ràng buộc như sau: – Ràng buộc về miền giá trị của cột (thông thường áp dụng trên các cột dữ liệu kiểu số, kiểu thời gian,…) – Ràng buộc toàn vẹn giữa các cột trong một bảng • Ví dụ – Ngày thuê (phòng, sách) phải nhỏ hơn hoặc... là kiểu bảng được thao tác nhanh nhất Do bởi cơ chế lưu trữ, dữ liệu sẽ bị mất đi khi máy tính không còn nguồn điện và đối khi nó còn có thể gây ra tình trạng tràn bộ nhớ đối với máy chủ csdl Các bảng Heap không hỗ trợ những trường có kiểu AUTO_INCREMENT, BLOB và TEXT • Để hiển thị các bảng có trong CSDL SHOW TABLES; • 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... ngay khi tạo bảng (viết cùng với lệnh CREATE TABLE ) • Thường dùng với PRIMARY KEY, DEFAULT – Chỉ ra constraint bằng lệnh ALTER TABLE • Thường dùng với CHECK, FOREIGN KEY, UNIQUE • Cú pháp tạo các constraint khi tạo bảng CREATE TABLE ( ten_cot_1 Kieu_dl [not null], ten_cot_2 Kieu_dl Default Giá_trị_mặc_định, [constraint ] Primary Key (ds_cot_lam_khoa_chinh), [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}] ) ENGINE=InnoDB DEFAULT CHARSET=latin1; • Ví dụ tạo các constraint khi tạo bảng CREATE TABLE DONDH ( sodh char(4) not null , ngaydh datetime not null DEFAULT CURDATE(), mancc char(3), PRIMARY KEY(sodh) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE CTDONDH . việc với cơ sở dữ liệu MySQL – Liệt kê các cơ sở dữ liệu trên server – Tạo cơ sở dữ liệu – Chọn cơ sở dữ liệu cần làm việc – Xóa cơ sở dữ liệu. • Các kiểu bảng trong MySQL • Làm việc với bảng –. tất cả các bảng có trong cơ sở dữ liệu – Tạo bảng – Chỉnh sửa cấu trúc bảng – Xóa bảng • Các ràng buộc toàn vẹn dữ liệu • Cú pháp: • Lệnh được dùng để kiểm tra csdl vừa tạo • Giúp tránh tạo csdl. trữ bảng và các định nghĩa cột. Ngoài ra, tùy vào kiểu bảng, sử dụng index và loại dữ liệu mà MySQL còn tạo thêm một số file khác. • Nếu lúc tạo không chỉ ra kiểu bảng, kiểu mặc định của bảng

Ngày đăng: 23/09/2015, 16:11

Từ khóa liên quan

Mục lục

  • Tạo Cơ sở dữ liệu và Tạo bảng

  • Mục tiêu

  • Xem các csdl hiện có trên server

  • Lệnh tạo Cơ sở Dữ liệu mới

  • Chọn cơ sở dữ liệu làm việc

  • Xóa cơ sở dữ liệu

  • Các kiểu bảng trong MySQL

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Liệt kê các bảng

  • Tạo bảng

  • Slide 14

  • Slide 15

  • Chỉnh sửa cấu trúc bảng

  • Slide 17

  • Slide 18

  • Xóa bảng khỏi CSDL

  • Ràng buộc toàn vẹn là gì ?

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

Tài liệu liên quan