12/08/2018, 14:16

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;

Selection_001.png

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;

Selection_001(001).png

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;

drop.png

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

Selection_004.png

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:

primary.png

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;

explain.png .png

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;

Selection_001(007).png

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;

Selection_001(008).png

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             </div>
            
            <div class=

0