SQL語句基礎指令語法

SQL語句基礎指令語法

顯示命令

顯示當前數據庫服務器中的數據庫列表

mysql> SHOW DATABASES;

顯示數據庫中的數據表

mysql> USE 數據庫名 #切換數據庫
mysql> SHOW TABLES; 

顯示數據表的結構

mysql> DESCRIBE 表名;
mysql> DESC 表名;

查看支持的字符集

mysql> SHOW CHARACTER SET;

查看支持的排序規則

mysql> SHOW COLLATION;

查看支持的引擎

mysql> SHOW ENGINES\G;  #\G以行的形式顯示

查看錶中的索引

mysql> SHOW INDEXES FROM 表名\G;

查看錶狀態

mysql> SHOW TABLE STATUS LIKE '表名'\G;

DDL語句

DDL:數據的定義語言(Data Defination Language)

CREATE

創建用戶

mysql> CREATE USER root@'172.18.%.%' IDENTIFIED BY 'password';

創建數據庫

mysql> CREATE DATABASE 數據庫名1;
mysql> CREATE SCHEMA 數據庫名2;
mysql> CREATE DATABASE IF NOT EXISTS 數據庫名3;

創建一個同表1相同的表2

mysql> CREATE TABLE2 SELECT * FROM1;

創建表

mysql> CREATE TABLE 表名 (id tinyint unsigned PRIMARY KEY,name varchar(20) NOT NULL, age tinyint UNSIGNED, sex char(1) DEFAULT "m" );

創建帶有複合主鍵的表

mysql> CREATE TABLE 表名 (id int unsigned NOT NULL, name varchar (20) NOT NULL, age tinyint unsigned, sex char(1) DEFAULT "m", PRIMARY KEY(id,name));

創建索引

mysql> CREATE INDEX 索引名 ON 表名(索引字段);

DROP

刪除用戶

mysql> DROP USER root@'172.18.%.%;

刪除數據庫

mysql> DROP DATABASE 數據庫名;
mysql> DROP SCHEMA 數據庫名;
mysql> DROP DATABASE IF EXISTS 數據庫名;

刪除表

mysql> DROP TABLES 表名;

刪除索引

mysql> DROP INDEX 索引名 ON 表名;

ALTER

修改表名

mysql> ALTER  TABLE 舊錶名 RENAME 新表名;

表中插入字段

mysql> ALTER TABLE 表名 ADD 字段名 char(11) AFTER 插入位置的前一個字段名;

修改字段數據類型

mysql> ALTER TABLE 表名 MODIFY 字段名 新數據類型;

修改字段名稱

mysql> ALTER TABLE 表名 CHANGE COLUMN 舊字段 新字段 char(11);

添加唯一鍵

mysql> ALTER TABLE 表名 ADD UNIQUE KEY(字段名);

添加指定枚舉值的字段

mysql> ALTER TABLE 表名 ADD 字段名 ENUM('值1','值2');

添加索引

mysql> ALTER TABLE 表名 ADD INDEX(字段名);

刪除字段

mysql> ALTER TABLE 表名 DROP COLUMN 字段名;

DML語句

DML:數據的處理語言(Data Manipulation Language )

INSERT

賦值表中全部字段

mysql> INSERT INTO 表名 (字段1,字段2,字段3,字段4)VALUES(值1,'值2',值3,'值4');

賦值表中指定字段

mysql> INSERT INTO 表名 (字段1,字段2)VALUES(值1,'值2');

省略字段名稱賦值

mysql> INSERT INTO 表名 VALUES (值1,'值2',值3,'值4');

同時爲多條記錄賦值

mysql> INSERT INTO 表名 VALUES (值1,'值2',值3,'值4'),(值1,'值2',值3,'值4');

向表2中追加表1字段的值,前提表2已經存在,且與表1表結構相同

mysql> INSERT INTO2 SELECT * FROM1;

DELETE

清空表的內容

mysql> TRUNCATE TABLE 表名;   #速度快,但不記錄日誌
mysql> DELETE FROM 表名;      #速度稍慢,但會記錄日誌

刪除記錄

mysql> DELETE FROM 表名 WHERE id=4;

UPDATE

注意:更改時不要忘記敲WHERE子句,不然會改掉全部記錄對應字段的值
更改指定記錄某字段的值

mysql> UPDATE 表名 SET age=21 WHERE name='li';

同時更改一條記錄多個字段的值

mysql> UPDATE 表名 SET age=19,sex='m' WHERE id=5;

DCL語句

DCL:數據授權語言(Data Control Language)

GRANT

授權用戶指定權限

mysql> GRANT SELECT,INSERT ON 數據庫名.表名 TO root@'172.18.%.%';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO user@'localhost';

授權用戶全部權限

mysql> GRANT ALL ON 數據庫名.* TO root@'172.18.%.%';

授權並創建用戶

mysql> GRANT ALL ON *.* TO wang@'172.18.%.%' IDENTIFIED BY "password";  
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO user@localhost IDENTIFIED BY "";  #設置空口令

REVOKE

取消指定授權

mysql> REVOKE SELECT,INSERT ON 數據庫名.* FROM root@'172.18.%.%';

取消授權

mysql> REVOKE ALL ON 數據庫名.* FROM root@'172.18.%.%';

DQL語句

DQL:數據查詢語言(Data Query Language)

SELECT

查詢數據庫名

mysql> SELECT DATABASE();

查詢當前數據庫版本

mysql> SELECT VERSION();

查看當前登錄的用戶

mysql> SELECT USER();

查詢表中全部字段

mysql> SELECT * FROM 表名;

查詢表中指定字段

mysql> SELECT 字段1,字段2,字段3 FROM 表名;

爲搜索字段添加別名

mysql> SELECT id AS 員工編號,name AS 姓名 FROM 表名;

爲表名添加別名

mysql> SELECT 字段1,字段2 FROM 表名 AS 表別名;

查尋指定區間內的字段

mysql> SELECT * FROM 表名 WHERE 字段 >=18 and 字段 <=20;
mysql> SELECT * FROM 表名 WHERE 字段 BETWEEN 18 字段 20;

對查詢的指定字段進行排序

mysql> SELECT * FROM 表名 WHERE 字段1 BETWEEN 16 字段1 22 ORDER BY 字段1;
mysql> SELECT * FROM 表名 WHERE 字段1 BETWEEN 16 字段1 22 ORDER BY 字段1 DESC;  #倒序排

跳過一個顯示兩個

mysql> SELECT * FROM 表名 WHERE 字段1 BETWEEN 16 字段1 22 ORDER BY 字段1 LIMIT 1,2;

通配符的模糊查詢

mysql> SELECT * FROM 表名 WHERE name LIKE "l%" ;

正則表達式的模糊查詢

mysql> SELECT * FROM 表名 WHERE name RLIKE "l.*" ;
mysql> SELECT * FROM 表名 WHERE name RLIKE "^l.$" ;

查詢空值

mysql>  SELECT * FROM 表名 WHERE age IS NULL;

查詢非空值

mysql>  SELECT * FROM 表名 WHERE age IS NOT NULL;

查詢某字段的特定值

mysql>  SELECT * FROM 表名 WHERE 字段名 IN ('值1','值2');

多表查詢

mysql> SELECT s.id,e.name FROM 表名1 AS s,表名2 AS e WHERE s.id=e.id;
mysql> SELECT s.id,e.name FROM 表名1 AS s,表名2 AS e WHERE s.id=e.id and s.name RLIKE '.*[no].*';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章