Tổng hợp câu hỏi cơ bản Cơ sở dữ liệu MySQL
Tổng hợp câu hỏi cơ bản Cơ sở dữ liệu MySQL

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
 
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’?