Các lệnh quản lý database trên MariadDB

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/

Related Articles