SQL CƠ BẢN(PART 1)
Hầu hết các web application ngày nay đều tương tác với database, thường là với ngôn ngữ SQL. Bài viết này sẽ bắt đầu bằng một số khái niệm cũng như các ví dụ cơ bản về câu lệnh SQL và sử dụng chúng làm việc với MySQL Chuẩn bị SQL (Structure Query Language) là một ngôn ngữ để tương tác với một ...
Hầu hết các web application ngày nay đều tương tác với database, thường là với ngôn ngữ SQL. Bài viết này sẽ bắt đầu bằng một số khái niệm cũng như các ví dụ cơ bản về câu lệnh SQL và sử dụng chúng làm việc với MySQL
Chuẩn bị
SQL (Structure Query Language) là một ngôn ngữ để tương tác với một hệ quản trị cơ sở dữ liệu hay còn gọi là RDBMS(Relational Database Mangement Systems) như MySQL, Oracle, Sqlite... Để thực thi những câu truy vấn trong bài viết, bạn cần cài có một RDBMS và trong bài này mình sẽ sử dụng MySQL cùng mới màn hình console.
CREATE DATABASE: Tạo một Database
Đầu tiên hãy mở MySQL console và login. Sau khi login thành công bạn hãy nhập câu query sau và enter:
CREATE DATABASES my_first_db;Bạn phải để ý dấu ';' được thêm ở cuối câu query. “CREATE DATABASE” là một câu lệnh và nó cũng không phân biệt chữ hoa hay chữ thường trong SQL. Nhưng để dễ đọc cũng như đúng convention thì nên viết hoa những key words.
Bạn cũng có thể thêm charset cho database vừa tạo bằng cách thêm vào cuối câu query như sau:
CREATE DATABASE my_first_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;SHOW DATABSES: Liệt kê toàn bộ databases
Câu query này để show toàn bộ databases mà bạn có.
SHOW DATBASES;DROP DATABASE: Xóa một database.
bạn có thể dùng câu lệnh này để xóa một database
DROP DATABASE my_first_db;Note: cẩn thận với câu lệnh này nhé. Vì nó sẽ không có bất kỳ cảnh báo nào và sẽ xóa trực tiếp luôn
USE: Làm việc với một database
USE my_first_dbĐây không phải là một câu query. Nó chỉ nhưu một trạng thái 'statement' và không cần có dấu ';' ở cuối. Nó nói với MySQL sử dụng database nào đó để làm việc cho session hiện tại. Sau khi chạy câu lệnh trên chúng ta đã sẵn sàng thao tác với nó
Một bảng trong Database là gì:
Bạn có thể nghĩ một database table cũng như một spreadsheet hay một file csv bình thường. Nó giữ cấu trúc của dữ liệu
Như ví dụ trên. Một bảng thì có column names và các rows của dữ liệu. Với SQL queries chúng ta có thể tạo bảng này. Đương nhiên cũng có thể add, read and delete data.
CREATE TABLE: Tạo một bảng trong database
Với câu query này chúng ta có thể tạo bảng trong DB. Không may mắn cho lắm vì Docs của MySQL thì không được dễ đọc đối với người mới bắt đầu. Cấu trúc của một câu query có thể rất phúc tạp. Nhưng để bắt đầu chúng ta sẽ đi từ nhứng điều đơn giản trước.
Câu query sau sẽ tao một bảng với hai columns
CREATE TABLE users ( username VARCHAR(20), create_date DATE );
Chúng ta có thể viết một câu query trên nhiều dòng, thậm chí có thể sử dụng tab để thụt đầu dòng làm sao cho câu query dễ đọc nhật.
Dòng đầu tiên: tạo một bảng tên là users, tiếp theo trong dấu ngoặc tròn chúng ta có một list các columns(các trường) cách biệt nhau bởi dấu ','. Mỗi column name chúng ta có một kiểu dữ liệu theo sau.
VARCHAR(20) tương đương với kiểu string và tối đa 20 ký tự. DATE là kiểu dữ liệu cho ngày tháng và chỉ rõ format sử dụng để lưu là YYYY-MM-DD.
PRIMARY KEY
Bạn có thể coi PRIMARY KEY như một cách để xác định một row dữ liệu hay một bản ghi(record) trong một bảng. Vì thế chúng ta sẽ thêm PRIMARY KEY vào user_id.
CREATE TABLE users ( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20), create_date DATE );
AUTO_INCREMENT sẽ tự động tạo một id cho mỗi lần add thêm một record. Cả PRIMARY KEY và AUTO_INCREMENT đề không bắt buộc. Nhưng nó được khuyến khích sử dụng thuận tiện hơn trong việc thiết kế.
Giờ hãy chạy câu lệnh trên xem thế nào:
OKE! được rồi đấy.
SHOW TABLES: liệt kê toàn bộ bảng
SHOW TABLES; Tương tự như SHOW DATABASES;thì câu query này cho phép chúng ta xem danh sách các bảng mà trong cơ sở dữ liệu đang làm việc ở đây là my_first_db
EXPLAIN: Xem cấu trúc của bảng
Để biết bảng đó có những column nào, kiểu dữ liệu ra sao hay đâu là khóa chính thì câu lệnh này sẽ giúp bạn.
EXPLAIN users;DROP TABLE: xóa một bảng
Nó cũng như DROP DATABASES. Câu query này sẽ xóa bảng và toàn bộ nội dung của nó. Cũng không có cảnh báo gì luôn. Cần phải cẩn thận nhé. Thử với bảng users xem:
DROP TABLE users;ALTER TABLE: Thay đổi cấu trúc trong một bảng
Câu lệnh này có thể thay đổi một hoạc nhiều cấu trúc của một bảng như thêm hoặc xóa column, đổi kiểu dữ liệu … chúng ta sẽ đi qua một vài ví dụ đơn giản:
Thêm Một column mới vào bảng
Thêm một column email sau username với kiểu varchar tối đa 50 ký tự.
ALTER TABLE users ADD email VARCHAR(50) AFTER username;Xóa một column trong bảng
ALTER TABLE users DROP email;Bạn có thể tự hiểu chứ. dễ hiểu phải không