Cơ sở dữ liệu (database) là gì? | Cơ sở dữ liệu (Database) là một tập hợp dữ liệu,được sắp xếp có tổ chức |
Giới thiệu một số hệ quản trị cơ sở dữ liệu hiện nay? | Hệ quản trị cơ sở dữ liệu (Database Management System) là một hệ thống quản lý, lưu trữ tất cả các cơ sở dữ liệu.1. MySQL2. Microsoft SQL Server3. Oracle4. DB2 |
Hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System - RDBMS) là gì? | RDBMS là cơ sở cho SQL
1. Table (Bảng) là hình thức lưu trữ dữ liệu phổ biến nhất
Một bảng là một tập hợp các dữ liệu có liên quan
chứa các hàng và các cột để lưu dữ liệu
2. Field (Trường)
Mỗi bảng được chia thành các thực thể nhỏ gọi là Trường.
VD: Các Trường trong bảng KHACH_HANG bao gồm ID, TEN, TUOI, DIA_CHI, LUONG.
3. Row (bản ghi/ hàng)
Hàng chứa thông tin cụ thể về một entry riêng rẽ trong bảng.
Hàng là một thực thể nằm ngang trong bảng.
VD: 1. Nam 32 Ha Noi 2000.00
4. Column (cột)
Cột chứa tất cả thông tin được liên kết với 1 Trường cụ thế trong bảng.
Cột và thực thể dọc trong bảng.
5. NULL
Trường đã bị trống trong khi tạo bản ghi.
6. Constraint (Ràng buộc)
Là các quy tắc cho các cột dữ liệu trong bảng
Dùng để giới hạn kiểu dữ liệu có thể nhập vào 1 bảng.
Điều này đảm bảo tính chính xác và tính đáng tin cậy cho dữ liệu trong Database.
Ràng buộc gồm: default, unique, primary key, foreign key, check, index. |
Ràng buộc (constraint) là gì? Các loại ràng buộc trong MySQL? | ㅤ |
Khóa chính (Primary key) là gì? “Khóa chính chứa một hoặc nhiều thuộc tính khóa” nghĩa là gì? | ㅤ |
Khóa ngoại (foreign key) là gì? | ㅤ |
Trình bày về khóa duy nhất - unique? Phân biệt giữa Primary key và unique? | Primary key bao gồm Unique và Not null |
Thuộc tính not null là gì? | ㅤ |
Trình bày ràng buộc mặc định (default)? Ví dụ? | ㅤ |
Trình bày ràng buộc kiểm tra (check)? Ví dụ? | ㅤ |
Trình bày cách tự động gán và tăng giá trị trong 1 cột của MySQL? | Auto increment |
Yêu cầu nhập vào trường tuổi của nhân viên phải từ 18-60, sử dụng ràng buộc nào? Viết ràng buộc? | Check |
Yêu cầu trường cặp giá trị (MaSinhVien,MaMonHoc) phải duy nhất, not null, sử dụng ràng buộc nào?Viết ràng buộc? | Primary key |
Yêu cầu Tỉnh thành chỉ được nhập Hà Nội hoặc TP. Hồ Chí Minh, sử dụng ràng buộc nào? Viết ràng buộc? | Check |
Yêu cầu trường Họ tên không được để trống sử dụng loại ràng buộc nào? Viết ràng buộc? | Not null |
Yêu cầu trường ClassID của bảng Student phải tham chiếu từ trường ClassID của bảng Class, sử dụng ràng buộc loại nào? Viết ràng buộc? | Foreign key References |
Yêu cầu mã sinh viên bắt đầu là chữ ‘C’, độ dài 3 ký tự, sử dụng ràng buộc nào? Viết ràng buộc? | C__ |
Yêu cầu ngày bắt đầu làm việc phải từ ngày hiện tại trở đi, sử dụng ràng buộc nào? Viết ràng buộc? | > Date() |
SQL là gì? | SQL (Structured Query Language) Ngôn ngữ truy vấn cơ sở dữ liệu |
Trình bày về câu lệnh create? | ㅤ |
Trình bày về câu lệnh alter? | ㅤ |
Trình bày về các kiểu dữ liệu ký tự/chuỗi trong MySQL? Phân biệt giữa các loại? | Kiểu dữ liệu chuỗi (String) trong SQL gồm:
CHAR
Định dạng hiển thị: Khoảng trắng phía trước (Trailing spaces) được loại bỏ
Phạm vi các ký tự: '0' to '255'
VARCHAR
Định dạng hiển thị: Giống như data được nhập và lưu trữ
Phạm vi các ký tự: '0' to '65535'
BINARY
Định dạng hiển thị: Chứa các chuỗi nhị phân (Binary Strings)
Phạm vi các ký tự: '0' to '255'
VARBINARY
Định dạng hiển thị: Chứa các chuỗi nhị phân (Binary Strings)
Phạm vi các ký tự: '0' to '65535' |
Trình bày về các kiểu dữ liệu số trong MySQL? Phân biệt giữa các loại? | |
Trình bày các kiểu dữ liệu ngày tháng trong MySQL? Phân biệt giữa các loại? | ㅤ |
Yêu cầu bổ sung thêm khóa chính vào một bảng đã được tạo sẵn thì làm thế nào? | ㅤ |
Yêu cầu bổ sung thêm 1 cột vào bảng đã được tạo sẵn thì làm thế nào? | ㅤ |
Yêu cầu xóa một ràng buộc đã được tồn tại sẵn trong bảng thì làm thế nào? | ALTER TABLE nhanvien ALTER TABLE nhanvien
ADD CONSTRAINT nhanvien_duynhat UNIQUE (so_nhanvien);
ALTER TABLE ten_bang
DROP CONSTRAINT ten_rangbuoc; |
Yêu cầu sửa kiểu dữ liệu của 1 cột có sẵn trong bảng thì làm thế nào? | ㅤ |
Trình bày về câu lệnh insert? insert nhiều bộ giá trị? | ㅤ |
Trình bày về câu lệnh update? Phân biệt alter và update? | Lệnh ALTER là Lệnh Ngôn ngữ Định nghĩa Dữ liệu.
Lệnh UPDATE là Lệnh Ngôn ngữ Thao tác Dữ liệu.
Mục đích ALTER Lệnh thêm, xóa, sửa đổi các thuộc tính của các mối quan hệ (bảng) trong cơ sở dữ liệu.
CẬP NHẬT Lệnh sửa đổi một hoặc nhiều bản ghi trong các mối quan hệ. |
Trình bày về câu lệnh delete? Phân biệt drop và delete? | ㅤ |
Bạn có biết “safe update mode”? Nếu biết, hãy trình bày về cơ chế này? | Khi sử dụng MySQL Workbench để thực hiện câu lệnh update, delete dữ liệu sử câu điều kiện WHERE với một column không phải KEY, thì bạn sẽ gặp 1 lỗi như bên dưới.Đây là 1 cơ chế trong MySQL Workbench để cảnh báo cho bạn thực hiện xóa hay update dữ liệu với 1 column không phải là KEY để tránh rủi ro mất mát dữ liệu quá lớn |
Trình bày về câu lệnh select? | ㅤ |
Trình bày về select lồng? Lấy ví dụ? | Truy vấn lồng với NOT EXISTS hoặc NOT IN |
Trình bày về phép nối (join)? | ㅤ |
Làm sao để có thể tăng tốc độ truy vấn? | Chỉ lấy ra dữ liệu cần thiết
Điều đâu tiên bạn có thể kiểm tra đó là câu lệnh SELECT có nhỏ gọn nhất có thể không. Mục đích của bạn ở đây là loại bỏ các cột không cần thiết khỏi SELECT. Bằng cách này, bạn bắt buộc chỉ lấy những dữ liệu mà bạn thực sự cần cho mục tiêu truy vấn của mình.
Khi bạn không thể tránh được việc lọc ra dữ liệu cần thiết trên câu lệnh SELECT, bạn có thể xem xét giới hạn kết quả theo những cách khác. Dưới đây là một số phương pháp tiếp cận như sử dụng mệnh đề LIMIT.
Mệnh đề WHERE
Phép JOIN
Mệnh đề HAVING |
Trình bày việc sao chép dữ liệu từ bảng này sang bảng khác trong MySQL? | Cú pháp 1
- Cú pháp này được sử dụng trong trường hợp chúng ta muốn sao chép dữ liệu từ tất cả các cột của bảng table1 vào bên trong bảng table2 (Lưu ý: Khi sử dụng cú pháp này thì số cột của bảng table2 phải bằng với số lượng cột của bảng table1, nếu không thì khi thực thi lệnh sẽ bị lỗi)
INSERT INTO table2
SELECT *
FROM table1
WHERE condition;
Cú pháp 2
- Cú pháp này thường được sử dụng trong những trường hợp chúng ta muốn sao chép dữ liệu từ một số cột nào đó của bảng table1 vào một số cột nào đó của bảng table2.
INSERT INTO table2 (column1, column2, column3, . . . .)
SELECT column1, column2, column3, . . . .
FROM table1
WHERE condition;
INSERT INTO Student
SELECT *
FROM Customers
WHERE City = "Cần Thơ";
INSERT INTO Student (HoTen, ThanhPho)
SELECT CustomerName, City
FROM Customers; |
Phân biệt giữa count(*) và count(cột)? | count(*) và count(column_name):
count(column_name) thì chỉ count các giá trị khác null thôi |
Làm sao để truy vấn dữ liệu từ nhiều bảng? | Join |
Phân biệt giữa Where và Having? | ㅤ |
Trình bày mệnh đề Order By trong câu lệnh Select? | ㅤ |
Yêu cầu tính điểm trung bình của tất cả các sinh viên thì làm thế nào? | ㅤ |
Yêu cầu tính điểm trung bình của từng bạn sinh viên thì làm thế nào? | ㅤ |
Yêu cầu hiển thị tên sinh viên và điểm trung bình tương ứng, chỉ hiển thị các bạn có điểm trung bình lớn hơn 5 thì làm thế nào? | ㅤ |
Hiển thị danh sách sinh viên và lớp học tương ứng thì làm thế nào (hai bảng Student và Class có cột chung ClassID)? | ㅤ |
Hiển thị danh sách sinh viên theo thứ tự tăng dần của điểm thi? | ㅤ |
Hiển thị danh sách sinh viên theo thứ tự giảm dần của họ tên, nếu họ tên trùng nhau thì sắp xếp theo tăng dần của tuổi? | ㅤ |
Hiển thị các sinh viên có họ là ‘Le’ và tên là ‘Hai’? | ㅤ |
Hiển thị các sinh viên có tên bắt đầu là ‘C’? | ㅤ |
Tổng hợp câu hỏi cơ bản Cơ sở dữ liệu MySQL
Tags
MySQL
Ôn tập
Published
November 11, 2023
Author
Lam Thu Nguyen