MySQL Database Query - Phần 1
I. Giới thiệu về hệ quản trị cơ sở dữ liệu MySQL
1. Khái niệm
- MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet. MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ.
2. Hướng dẫn cài đặt và sử dụng
- Để cài đặt MySQL bạn cần phải vào trang chủ của MySQL và dowload version phù hợp với cấu hình máy tính bạn sử dụng
Xem hướng dẫn cài đặt theo video sau:
https://www.youtube.com/watch?v=pWzZNwf6ZHc
Sau khi cài đặt thành công, ta khởi động MySQL Workbench để sử dụng MySQL.
II. Xây dựng và thiết kế cơ sở dữ liệu với MySQL
1. Thiết kế 1 cơ sở dữ liệu demo
LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU
-
Thực thể là một sự vật, sự việc tồn tại và phân biệt được. Ví dụ: nhân viên Nguyễn Thị Hồng Nhung, môn học Cơ Sở Dữ Liệu.
-
Thuộc tính là các đặc điểm riêng của thực thể.
-
Liên kết là những ánh xạ giữa tập dữ liệu của thực thể này với tập dữ liệu của thực thể khác.
-
Liên kết 1-1 (một-một): liên kết 1-1 giữa 2 thực thể là liên kết mà ứng với mỗi dữ liệu trong thực thể này có nhiều nhất một dữ liệu trong thực thể kia và ngược lại.
-
Liên kết 1-n (một-nhiều): là liên kết mà ứng với mỗi dữ liệu trong thực thể này có một hoặc nhiều hoặc không có dữ liệu nào trong thực thể kia nhưng ngược lại thì không đúng.
-
Liên kết n-n (nhiều-nhiều): là liên kết mà ứng với mỗi dữ liệu trong thực thể này có một hoặc nhiều hoặc không có dữ liệu nào trong thực thể kia và ngược lại.
Tạo 1 database tên QuanLyBanHang gồm các bảng sau:
- Bảng NhanVien (Mục đích: Lưu trữ thông tin tài khoản của từng nhân viên quản trị website).
Cấu trúc bảng:
Số thứ tự | Tên trường | Kiểu dữ liệu | Rỗng | Diễn giải |
---|---|---|---|---|
1 | MaNhanVien | Nvarchar (50) | Không | Mã nhân viên |
2 | HoTen | Nvarchar (50) | Không | Họ và tên |
3 | MatKhau | Nvarchar (50) | Không | Mật khẩu |
4 | DiaChi | Nvarchar (100) | Có | Địa chỉ |
5 | Nvarchar (50) | Không | ||
6 | SoDienThoai | Nvarchar (50) | Không | Số điện thoại |
- Bảng NguoiDung (Mục đích: Lưu trữ thông tin tài khoản của người dùng).
Cấu trúc bảng:
Số thứ tự | Tên trường | Kiểu dữ liệu | Rỗng | Diễn giải |
---|---|---|---|---|
1 | MaNguoiDung | Nvarchar (50) | Không | Mã nhân viên |
2 | HoTen | Nvarchar (50) | Không | Họ và tên |
3 | MatKhau | Nvarchar (50) | Không | Mật khẩu |
4 | DiaChi | Nvarchar (100) | Có | Địa chỉ |
5 | Nvarchar (50) | Có | ||
6 | Anh | Nvarchar (50) | Có | Số điện thoại |
7 | SoDienThoai | Nvarchar (50) | Không | Số điện thoại |
- Bảng TinTuc (Mục đích: Lưu trữ dữ liệu thông tin tin tức).
Cấu trúc bảng:
Số thứ tự | Tên trường | Kiểu dữ liệu | Rỗng | Diễn giải |
---|---|---|---|---|
1 | MaTin | Int (15) | Không | Mã tin |
2 | ChuDe | Nvarchar (50) | Không | Tiêu đề |
3 | NoiDung | TEXT (3000) | Không | Nội dung |
4 | NguoiDang | Nvarchar (100) | Có | Người đăng |
5 | NgayDang | DateTime | Không | Ngày đăng |
- Bảng ThamDoYKien (Mục đích: Lưu trữ thông tin của khách hàng góp ý về thẩm mỹ, nội dung website, cho chấm theo các thang điểm từ 1-5).
Cấu trúc bảng:
Số thứ tự | Tên trường | Kiểu dữ liệu | Rỗng | Diễn giải |
---|---|---|---|---|
1 | BoCuc | Int (5) | Không | Bố cục |
2 | TienIch | Int (5) | Không | Tiện ích |
3 | NoiDung | Int (5) | Không | Nội Dung |
4 | GopY | TEXT (1000) | Có | Góp ý |
- Bảng PhanHoi (Mục đích: lưu trữ thông tin thắc mắc và góp ý của khách hàng về thẩm mỹ website và thái độ phục vụ của nhân viên).
Cấu trúc bảng:
Số thứ tự | Tên trường | Kiểu dữ liệu | Rỗng | Diễn giải |
---|---|---|---|---|
1 | MaPhanhoi | Int (5) | Không | Mã phản hồi |
2 | HoTen | Nvarchar (50) | Không | Họ tên |
3 | Nvarchar (50)) | Không | ||
4 | ChuDe | TEXT (1000) | Có | Chủ đề |
5 | NoiDung | TEXT (1000) | Có | Nội dung |
6 | NgayBinh | Datetime | Có | Ngày bình |
- Bảng NhaSanXuat (Mục đích: Lưu trữ thông tin của các hãng sản xuất).
Cấu trúc bảng:
Số thứ tự | Tên trường | Kiểu dữ liệu | Rỗng | Diễn giải |
---|---|---|---|---|
1 | MaNSX | Int (5) | Không | Mã nhà sản xuất |
2 | TenNSX | Nvarchar (150) | Không | Họ và tên |
3 | DiaChi | Nvarchar (150) | Không | Địa chỉ |
4 | HinhAnh | Nvarchar (200) | Có | Ảnh nhà sản xuất |
- Bảng SanPham (Mục đích: Lưu trữ thông tin của sản phẩm).
Cấu trúc bảng:
Số thứ tự | Tên trường | Kiểu dữ liệu | Rỗng | Diễn giải |
---|---|---|---|---|
1 | MaSP | Int (5) | Không | Mã sản phẩm |
2 | MaNSX | Int (5) | Không | Mã nhà sản xuất |
3 | DonGia | Float | Không | Đơn giá |
4 | TenSP | Nvarchar (200) | Không | Tên sản phẩm |
5 | HinhAnh | Nvarchar (250) | Có | Hình ảnh sản phẩm |
6 | MiêuTa | Nvarchar (250) | Có | Thông số kỹ thuật |
7 | TinhTrang | Nvarchar (50) | Không | Tình trạng còn hay hết hàng |
8 | GiamGia | Float | Có | Giảm giá |
- Bảng HoaDon (Mục đích: Lưu trữ thông tin đơn hàng của khách hàng).
Cấu trúc bảng:
Số thứ tự | Tên trường | Kiểu dữ liệu | Rỗng | Diễn giải |
---|---|---|---|---|
1 | MaHD | Int (5) | Không | Mã hóa đơn |
2 | MaNguoiDung | Int (5) | Không | Mã người dùng |
3 | NgayNhan | Datetime | Không | Ngày nhận hàng |
4 | DiaChiNhan | Nvarchar (200) | Không | Địa chỉ nhận |
5 | NgayLap | Datetime | Có | Ngày lập hóa đơn |
- Bảng Chi TietHoaDon (Mục đích: Lưu trữ thông tin chi tiết về từng đơn hàng. Sản phẩm trong các đơn hàng được lưu trữ ở bảng này).
Cấu trúc bảng:
Số thứ tự | Tên trường | Kiểu dữ liệu | Rỗng | Diễn giải |
---|---|---|---|---|
1 | MaHD | Int (5) | Không | Mã hóa đơn |
2 | MaSP | Int (5) | Không | Mã sản phẩm |
3 | SoLuongMua | int(5) | Không | Số lượng mua |
4 | DonGia | Float | Không | Đơn giá |
5 | GiamGia | Float | Có | Giảm giá |
MỐI LIÊN KẾT GIỮA CÁC BẢNG
Bai3_3
- Giải thích các syntax
a. Định nghĩa 1 số thuật ngữ:
-
NULL : Giá trị cho phép rỗng.
-
AUTO_INCREMENT : Cho phép giá trị tăng dần (tự động).
-
UNSIGNED : Phải là số nguyên dương
-
PRIMARY KEY : Cho phép nó là khóa chính trong bảng
b. Loại dữ liệu trong Mysql:
Ở đây chúng tả chỉ giới thiệu 1 số loại thông dụng: 1 số dữ liệu khác có thể tham khảo trên trang chủ của mysql ( xem tại đây) .
Bai3_2
III. Các cú pháp trong MySQL
1. Create Database
CREATE DATABASE tuyên bố được sử dụng để tạo ra một cơ sở dữ liệu.
Cú pháp:
CREATE DATABASE dbname;
Ví dụ:
Create database QuanLyBanHang;
Hoặc trong Workbench chúng ta có thể sử dụng cú pháp:
CREATE SCHEMA
quanlybanhang;
Để tạo ra 1 database có tên là quanlybanhang.
Chú ý: Ở Workbench chúng convert tất cả các ký tự viết hoa trong database sang các ký tự thường.
2. Drop database
Các câu lệnh DROP Database được sử dụng để xóa một DB
Cú pháp:
DROP DATABASE dbname;
Ví dụ:
DROP DATABASE quanlybanhang;
Xóa DB quanlybanhang;
Hoặc trong Workbench chúng ta có thể sử dụng cú pháp:
DROP SCHEMA
quanlybanhang;
3. Create Table
CREATE TABLE được sử dụng để tạo ra một bảng trong một cơ sở dữ liệu.
Bảng được tổ chức thành các hàng và cột; và mỗi bảng phải có một cái tên duy nhất.
Cú pháp:
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
Ví dụ:
CREATE TABLE NhanVien
(
MaNhanVien Nvarchar (50) NOT NULL,
HoTen Nvarchar (50) NOT NULL,
MatKhau Nvarchar (50) NOT NULL,
DiaChi Nvarchar (60) NOT NULL,
Email Nvarchar (50) NOT NULL,
SoDienThoai Nvarchar (50) NOT NULL,
PRIMARY KEY (MaNhanVien)
);
4. Update table
Các câu lệnh UPDATE được sử dụng để cập nhật bản ghi hiện có trong một bảng.
Cú pháp:
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
5. Drop table
Các câu lệnh DROP TABLE được sử dụng để xóa một bảng
Cú pháp:
DROP TABLE table_name;
Ví dụ:
Drop table HoaDon;
Xóa bảng hóa đơn trong DB quanlybanhang;
6. Alter table
Các câu lệnh ALTER TABLE được sử dụng để thêm, xóa, hoặc sửa đổi các cột trong một bảng hiện tại.
Cú pháp:
ALTER TABLE table_name
MODIFY COLUMN column_name datatype;
Ví dụ:
ALTER TABLE NhanVien
MODIFY COLUMN MaNhanVien INT;
Sửa cột MaNhanvien từ kiểu Nvarchar sang kiểu integer.
Hoặc :
ALTER TABLE NhanVien
DROP COLUMN DiaChi;
Xóa cột DiaChi của bảng Nhân viên
Hoặc:
ALTER TABLE NhanVien
ADD NgaySinh date;
Thêm cột địa chỉ vào bảng Nhân viên
Hoặc:
ALTER TABLE NhanVien
ALTER COLUMN NgaySinh year;
Chuyển data type của cột ngày sinh từ kiểu date sang kiểu year.
(Còn tiếp)
All rights reserved