Trong bài viết này sẽ giới thiệu đến các bạn một số commands sql quan trọng nhất, các ví dụ chỉ mang tính tham khảo và không thể giới thiệu chi tiết từng option của mỗi command, trong cuối mỗi phần giới thiệu command sẽ có link dẫn đến bài viết để bạn có thể đọc chi tiết toàn bộ option mà command hỗ trợ.
- SELECT – trích xuất dữ liệu từ cơ sở dữ liệu
- UPDATE – cập nhật dữ liệu trong cơ sở dữ liệu
- DELETE – xóa dữ liệu từ cơ sở dữ liệu
- INSERT INTO – chèn dữ liệu mới vào cơ sở dữ liệu
- CREATE DATABASE – tạo một cơ sở dữ liệu mới
- ALTER DATABASE – sửa đổi cơ sở dữ liệu
- CREATE TABLE – tạo một table mới
- ALTER TABLE – sửa đổi table
- DROP TABLE – xóa một table
- CREATE INDEX – tạo index index (search key)
- DROP INDEX – xóa index
SELECT
Cú pháp lệnh SELECT như sau
SELECT [ALL | DISTINCT | DISTINCTROW] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr ...] [ FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] procedure|[PROCEDURE procedure_name(argument_list)] [INTO OUTFILE 'file_name' [CHARACTER SET charset_name] [export_options] INTO DUMPFILE 'file_name' INTO var_name [, var_name] ] [[FOR UPDATE | LOCK IN SHARE MODE] [WAIT n | NOWAIT] ] ] export_options: [{FIELDS | COLUMNS} [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char'] ] [LINES [STARTING BY 'string'] [TERMINATED BY 'string'] ]
một vài ví dụ SELECT
# lấy toàn bộ dữ liệu trong table mysql> SELECT * FROM [table name]; # Hiển thị các hàng cụ thể với giá trị đã cho. mysql> SELECT * FROM [table name] WHERE [field name] = "value"; # Hiển thị tất cả các bản ghi có chứa tên "Something" VÀ số điện thoại '0123456789'. mysql> SELECT * FROM [table name] WHERE name = "Something" AND phone_number = '0123456789'; # Hiển thị tất cả các bản ghi không chứa tên "Something" VÀ số điện thoại '0123456789' theo trường phone_number. mysql> SELECT * FROM [table name] WHERE name != "Something" AND phone_number = '0123456789' order by phone_number; # Hiển thị tất cả các bản ghi bắt đầu bằng các chữ cái 'Something' VÀ số điện thoại '0123456789'. mysql> SELECT * FROM [table name] WHERE name like "Something%" AND phone_number = '0123456789';
Tài liệu chi tiết tại đây: https://mariadb.com/kb/en/select/
UPDATE
Cú pháp lệnh UPDATE
UPDATE [LOW_PRIORITY] [IGNORE] table_reference [PARTITION (partition_list)] SET col1={expr1|DEFAULT} [,col2={expr2|DEFAULT}] ... [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]
Ví dụ lệnh update
UPDATE tên_table SET tên_cột1=giá_trị1, tên_cột2=giá_trị2,... WHERE tên_cột=giá_trị_cột_cần_update
Tài liệu chi tiết tại đây: https://mariadb.com/kb/en/update/
DELETE
Cú pháp lệnh DELETE
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [PARTITION (partition_list)] [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] [RETURNING select_expr [, select_expr ...]]
Ví dụ lệnh DELETE
# xóa 1 database mysql> drop database [database name]; Xóa 1 table mysql> drop table [table name];
Tài liệu chi tiết: https://mariadb.com/kb/en/update/
INSERT INTO
Cú pháp lệnh INSERT INTO
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_list)] [(col,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col=expr [, col=expr] ... ] [RETURNING select_expr [, select_expr ...]]
Ví dụ lệnh INSERT INTO
INSERT INTO sinhvienk60 (ho, ten, diemthi) VALUES ("Dinh Van", "Cao", 8);
Tài liệu chi tiết: https://mariadb.com/kb/en/insert/
CREATE DATABASE
Cú pháp lệnh CREATE DATABASE
CREATE [OR REPLACE] {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
Ví dụ lệnh CREATE DATABASE
CREATE DATABASE db1;
Tài liệu chi tiết: https://mariadb.com/kb/en/create-database/
ALTER DATABASE
Cú pháp ALTER DATABASE
ALTER {DATABASE | SCHEMA} [db_name] alter_specification ... ALTER {DATABASE | SCHEMA} db_name UPGRADE DATA DIRECTORY NAME alter_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
Ví dụ sử dụng ALTER DATABASE
ALTER DATABASE test CHARACTER SET = 'utf8' COLLATE = 'utf8_bin';
Tài liệu chi tiết: https://mariadb.com/kb/en/alter-database/
CREATE TABLE
Cú pháp CREATE TABLE
CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options ]... [partition_options] CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options ]... [partition_options] select_statement CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKE old_table_name | (LIKE old_table_name) } select_statement: [IGNORE | REPLACE] [AS] SELECT ... (Some legal select statement)
Ví dụ về CREATE TABLE
CREATE TABLE table_name ( column1 datatype [ NULL | NOT NULL ], column2 datatype [ NULL | NOT NULL ], ... );
Tài liệu chi tiết
https://mariadb.com/kb/en/create-table/
ALTER TABLE
Cú pháp lệnh ALTER TABLE
ALTER [ONLINE] [IGNORE] TABLE tbl_name [WAIT n | NOWAIT] alter_specification [, alter_specification] ... alter_specification: table_option ... | ADD [COLUMN] [IF NOT EXISTS] col_name column_definition [FIRST | AFTER col_name ] | ADD [COLUMN] [IF NOT EXISTS] (col_name column_definition,...) | ADD {INDEX|KEY} [IF NOT EXISTS] [index_name] [index_type] (index_col_name,...) [index_option] ... | ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) [index_option] ... | ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) [index_option] ... | ADD FULLTEXT [INDEX|KEY] [index_name] (index_col_name,...) [index_option] ... | ADD SPATIAL [INDEX|KEY] [index_name] (index_col_name,...) [index_option] ... | ADD [CONSTRAINT [symbol]] FOREIGN KEY [IF NOT EXISTS] [index_name] (index_col_name,...) reference_definition | ADD PERIOD FOR SYSTEM_TIME (start_column_name, end_column_name) | ALTER [COLUMN] col_name SET DEFAULT literal | (expression) | ALTER [COLUMN] col_name DROP DEFAULT | CHANGE [COLUMN] [IF EXISTS] old_col_name new_col_name column_definition [FIRST|AFTER col_name] | MODIFY [COLUMN] [IF EXISTS] col_name column_definition [FIRST | AFTER col_name] | DROP [COLUMN] [IF EXISTS] col_name [RESTRICT|CASCADE] | DROP PRIMARY KEY | DROP {INDEX|KEY} [IF EXISTS] index_name | DROP FOREIGN KEY [IF EXISTS] fk_symbol | DROP CONSTRAINT [IF EXISTS] constraint_name | DISABLE KEYS | ENABLE KEYS | RENAME [TO] new_tbl_name | ORDER BY col_name [, col_name] ... | CONVERT TO CHARACTER SET charset_name [COLLATE collation_name] | [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name | DISCARD TABLESPACE | IMPORT TABLESPACE | ALGORITHM [=] {DEFAULT|INPLACE|COPY|NOCOPY|INSTANT} | LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE} | FORCE | partition_options | ADD PARTITION (partition_definition) | DROP PARTITION partition_names | COALESCE PARTITION number | REORGANIZE PARTITION [partition_names INTO (partition_definitions)] | ANALYZE PARTITION partition_names | CHECK PARTITION partition_names | OPTIMIZE PARTITION partition_names | REBUILD PARTITION partition_names | REPAIR PARTITION partition_names | EXCHANGE PARTITION partition_name WITH TABLE tbl_name | REMOVE PARTITIONING | ADD SYSTEM VERSIONING | DROP SYSTEM VERSIONING index_col_name: col_name [(length)] [ASC | DESC] index_type: USING {BTREE | HASH | RTREE} index_option: KEY_BLOCK_SIZE [=] value | index_type | WITH PARSER parser_name | COMMENT 'string' | CLUSTERING={YES| NO} table_options: table_option [[,] table_option] ...
Ví dụ về ALTER TABLE
#Thay đổi table về kiểu INNODB mysql> ALTER TABLE products_tbl TYPE = INNODB;
Tài liệu chi tiết: https://mariadb.com/kb/en/alter-table/
DROP TABLE
Cú pháp DROP TABLE
DROP [TEMPORARY] TABLE [IF EXISTS] [/*COMMENT TO SAVE*/] tbl_name [, tbl_name] ... [WAIT n|NOWAIT] [RESTRICT | CASCADE]
Ví dụ DROP TABLE
DROP TABLE Employees, Customers;
Tài liệu chi tiết: https://mariadb.com/kb/en/drop-table/
CREATE INDEX
Cú pháp CREATE INDEX
CREATE [OR REPLACE] [UNIQUE|FULLTEXT|SPATIAL] INDEX [IF NOT EXISTS] index_name [index_type] ON tbl_name (index_col_name,...) [WAIT n | NOWAIT] [index_option] [algorithm_option | lock_option] ... index_col_name: col_name [(length)] [ASC | DESC] index_type: USING {BTREE | HASH | RTREE} index_option: KEY_BLOCK_SIZE [=] value | index_type | WITH PARSER parser_name | COMMENT 'string' algorithm_option: ALGORITHM [=] {DEFAULT|INPLACE|COPY|NOCOPY|INSTANT} lock_option: LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}
Ví dụ về CREATE INDEX
Tạo một chỉ mục trên cột email_address của bảng emails: CREATE INDEX email ON emails(email_address(50));
Tài liệu chi tiết: https://mariadb.com/kb/en/create-index/
DROP INDEX
Cú pháp DROP INDEX
DROP INDEX [IF EXISTS] index_name ON tbl_name [WAIT n |NOWAIT] [algorithm_option | lock_option] ... algorithm_option: ALGORITHM [=] {DEFAULT|INPLACE|COPY|NOCOPY|INSTANT} lock_option: LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}
Ví dụ về DROP INDEX
#Drop index vào cột note_note của tables notes DROP INDEX note ON notes;
Tài liệu chi tiết: https://mariadb.com/kb/en/drop-index/