FullStack Academy

Sử dụng MySQL command line

Chào các bạn, mình muốn dành riêng một bài để viết về cách sử dụng các lệnh MySQL cơ bản trên command line để các bạn có cái nhìn cơ bản về MySQL trước khi sử dụng các công cụ quản lý như Phpmyadmin hay Navicat. Sau đây, chúng ta cùng đến với bài học.

Cách đăng nhập vào MySQL qua command line

Để đăng nhập vào mysql thông qua command line, các bạn cần gõ lệnh sau:

mysql -u root -p

Sau khi gõ lệnh, command line sẽ yêu cầu nhập thông tin mật khẩu. Nếu trong trường hợp bạn không đặt mật khẩu cho root thì bạn chỉ cần ấn enter mà không cần điền thông tin gì. Giờ thì bạn đã có thể bắt đầu xây dựng cơ sở dữ liệu sử dụng MySQL rồi nhé.

Trước khi bắt đầu, chúng ta hãy chú ý hai điều sau:

  • Tất cả các câu lệnh MySQL sẽ kết thúc với dấu chấm phẩy ";". Nếu câu lệnh không kết thúc với dấu chấm phẩy ";" thì bạn sẽ không thể xử lý câu lệnh trên. 
  • Ngoài ra, Các câu lệnh MySQL thường viết hoa còn database, table, username, hoặc text sẽ thường viết dưới dạng chữ thường để dễ dàng phân biệt hơn. Mặc dù vậy MySQL không phân biệt hoa thường nên bạn viết hoa tất cả hoặc thường tất cả thì MySQL đều có thể xử lý.

Tạo và xóa database với MySQL sử dụng command line

Trong MySQL chúng ta có khái niệm cơ bản đầu tiên là cơ sở dữ liệu (database) là đơn vị lớn nhất trong hệ thống lưu trữ dữ liệu.

Để kiểm tra có những database nào đã được tạo:

SHOW DATABASES;

Màn hình của bạn sẽ hiển thị như sau:

 mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

Lệnh để tạo một database:

 CREATE DATABASE events;

Database "events" sẽ được tạo sau khi bạn chạy lênh:

 mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| events             |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

Trong MySQL, lệnh Drop sẽ được sử dụng để xóa database. Để xóa database, chúng ta sẽ dùng lệnh sau:

 DROP DATABASE database_name;

Sử dụng MySQL Database

Chúng ta sau khi tạo một database mới, sẽ cần sử dụng database đó.

Chúng ta sẽ dùng lệnh sau để sử dụng một database:

 USE events;

Sau khi sử dụng một database, chúng ta sẽ cần biết trong database đó có các cơ sở dữ liệu nào. Để biết được các bảng trong một database, chúng ta sử dụng lệnh sau:

 SHOW tables; 

Vì đây là một database mới chưa có table nào cả nên chúng ta sẽ thấy hiện thông tin: “Empty set”

Tạo MySQL Table

Bây giờ chúng ta có một sự kiện muốn mời bạn bè ăn tối cùng nhau, vậy chúng ta phải có 1 bảng lưu thông tin những người tham dự, vậy chúng ta sẽ tạo một bảng như sau:

CREATE TABLE potluck (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
name VARCHAR(20),
food VARCHAR(30),
confirmed CHAR(1), 
signup_date DATE);

Command trên sẽ tạo ra những thứ như sau:

  1. Bảng potluck.
  2. Tạo 5 cột trong bảng: id, name, food, confirmed, và signup_date.
  3. Cột “id” được cấu hình các lênh (INT NOT NULL PRIMARY KEY AUTO_INCREMENT) sẽ là dạng dữ liệu số nguyên dương, primary key và tự động tăng.
  4. Cột “name” lưu thông tin tên người, dạng dữ liệu là VARCHAR độ dài số kí tự lưu trữ là 20.
  5. Cột“food” sẽ lưu thông tin đồ ăn mỗi người mang đi. Dạng dữ liệu là VARCHAR và giới hạn độ dài kí tự là 30 kí tự.
  6. Cột “confirmed” lưu thông tin xác nhận đến hay không định dạng là CHAR độ dài kí tự là 1.
  7. Cột “date” sẽ lưu thông tin ngày người tham dự đăng ký và được MySQL lưu dưới dạng yyyy-mm-dd

Giờ chúng ta sẽ chạy lệnh "SHOW TABLES;" để xem kết quả như thế nào:

 mysql> SHOW TABLES;
+------------------+
| Tables_in_events |
+------------------+
| potluck          |
+------------------+
1 row in set (0.01 sec)

Chúng ta có thể xem thông tin các cột của bảng potluck:

 DESCRIBE potluck;

Chú ý là MySQL sẽ không quan tâm đến hoa thường, vì thế bạn nhập hoa hay thường MySQL sẽ đều hiểu như nhau cả.

 mysql>DESCRIBE potluck;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| id          | int(11)     | NO   | PRI | NULL    | auto_increment |
| name        | varchar(20) | YES  |     | NULL    |                |
| food        | varchar(30) | YES  |     | NULL    |                |
| confirmed   | char(1)     | YES  |     | NULL    |                |
| signup_date | date        | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

Insert bản ghi vào trong MySQL Table

Chúng ta đã tạo ra một bảng lưu thông tin, giờ chúng ta cùng nhau ghi dữ liệu vào bảng này nhé.

Để thêm dữ liệu vào bảng, chúng ta sử dụng câu lệnh insert:

INSERT INTO `potluck` (`id`,`name`,`food`,`confirmed`,`signup_date`) VALUES (NULL, "Long", "Pizza","Y", '2012-04-11');
                    Sau khi insert thành công, chúng ta sẽ nhìn thấy kết quả:
 Query OK, 1 row affected (0.00 sec)
                    Giờ chúng ta sẽ thử thêm một vài bản ghi khác:
INSERT INTO `potluck` (`id`,`name`,`food`,`confirmed`,`signup_date`) VALUES (NULL, "Tuan", "Salad","N", '2012-04-14');
INSERT INTO `potluck` (`id`,`name`,`food`,`confirmed`,`signup_date`) VALUES (NULL, "Trang", "BBQ","Y", '2012-04-18');
INSERT INTO `potluck` (`id`,`name`,`food`,`confirmed`,`signup_date`) VALUES (NULL, "Hoc", "Soup","Y", '2012-04-10'); 

We can take a look at our table:

mysql> SELECT * FROM potluck;
+----+-------+----------------+-----------+-------------+
| id | name  | food           | confirmed | signup_date |
+----+-------+----------------+-----------+-------------+
|  1 | Long  | Pizza          | Y         | 2012-04-11  |
|  2 | Tuan  | Salad           | N         | 2012-04-14  |
|  3 | Trang | BBQ            | Y         | 2012-04-18  |
|  4 | Hoc   | Soup           | Y         | 2012-04-10  |
+----+-------+----------------+-----------+-------------+
4 rows in set (0.00 sec)

Sửa thông tin lưu trong bảng

Chúng ta sẽ sửa thông tin lưu trong bảng như sau:

UPDATE `potluck` 
SET 
`confirmed` = 'Y' 
WHERE `potluck`.`name` ='Tuan';

Nếu trường dữ liệu trống, bạn cũng có thể thêm thông tin vào bằng câu lệnh update trên.

How to Add and Delete a Column

Chúng ta có thể chỉnh sửa / thêm mới cột trong một bảng dữ liệu.

Sử dụng câu lệnh Alter như sau:

 ALTER TABLE potluck ADD email VARCHAR(40);

Câu lệnh này sẽ thêm mộ trường "email" và cuối bảng và có định dạng dữ liệu là VARCHAR giới hạn 40 kí tự.

Nếu chúng ta cần chỉnh lại vị trí của trường email, chúng ta sử dụng câu lệnh sau:

 ALTER TABLE potluck ADD email VARCHAR(40) AFTER name; 

Giờ trường “email” đã nằm sau trường “name”.

Bạn có thể thêm và cũng có thể xóa 1 cột trong bảng:

ALTER TABLE potluck DROP email;

 

Xóa một dòng dữ liệu

Chúng ta sử dụng cấu trúc sau để xóa một dòng dữ liệu:

DELETE from [table name] where [column name]=[field text];

Ví dụ, Long không thể tham gia bữa tiệc vì lý do gấp, bạn sẽ dùng lệnh sau để xóa:

mysql> DELETE from potluck  where name='Long';
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM potluck;
+----+------+--------------+------------+-------------+
| id | name    | food      | confirmed  | signup_date |
+----+---------+-----------+------------+-------------+
|  2 | Tuan    | Salad| Y  | 2012-04-11 |             |
|  3 | Trang   | BBQ       | Y          | 2012-04-18  |
|  4 | Hoc     | Soup      | Y          | 2012-04-10  |
+----+---------+-----------+------------+-------------+
3 rows in set (0.00 sec)

Chú ý: id sẽ không tự động điều chỉnh lại mà là giữ nguyên theo bản ghi.