數(shù)據(jù)庫操作
- 創(chuàng)建數(shù)據(jù)庫(CREATE DATABASE)
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [ [DEFAULT] CHARACTER SET [=] latin1/utf8/gbk ];
創(chuàng)建同名的數(shù)據(jù)庫會報錯来屠。加上IF NOT EXISTS事示,不出現(xiàn)錯誤邮弹,而是警告拗盒。 - 查看數(shù)據(jù)庫
(1)判斷是否創(chuàng)建成功呆抑。SHOW {DATABASES | SCHEMAS};
(2)顯示數(shù)據(jù)庫創(chuàng)建時指令。SHOW CREATE DATABASE db_name;
- 修改數(shù)據(jù)庫(ALTER DATABASE)
ALTER DATABASE db_name [ [DEFAULT] CHARACTER SET [=] latin1/gbk/utf8 ];
- 刪除數(shù)據(jù)庫(DROP DATABASE)
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;
IF EXISTS與IF NOT EXISTS作用類似澄者,已經(jīng)刪除的數(shù)據(jù)庫再刪除會報錯病游。加上IF EXISTS,只有警告抠璃。
數(shù)據(jù)表操作
- 創(chuàng)建數(shù)據(jù)表(CREATE)
(1)使用USE打開數(shù)據(jù)庫:USE db_name
顯示用戶當(dāng)前打開的數(shù)據(jù)庫:SELECT DATABASE();
(2)創(chuàng)建站楚。CREATE TABLE [IF NOT EXISTS] table_name (column_name date_type, …);
column_name:列名稱 date_type:數(shù)據(jù)類型 - 查看數(shù)據(jù)表(SELECT)
SHOW TABLES [FROM db_name] [LIKE ‘pattern’|WHERE expr];
(1)查看MySQL中所有數(shù)據(jù)表。
SHOW TABLES FROM mysql;
(2)查看數(shù)據(jù)表結(jié)構(gòu)搏嗡。
SHOW COLUMNS FROM tb_name;
DESC tb_name;
- 刪除數(shù)據(jù)表(DROP)
DROP TABLE tb_name;
- 修改數(shù)據(jù)表(ALTER)
- 增加/刪除/修改列
- 添加單列
ALTER TABLE tb_name ADD [CLOUMN] col_name column_definiton [ FIRST | AFTER col_name ];
- 添加多列
ALTER TABLE tb_name ADD [CLOUMN] (col_name column_definiton,…);
- 刪除列
ALTER TABLE tb_name DROP [CLOUMN] col_name;
- 同時刪除兩列
ALTER TABLE tb_name DROP [CLOUMN] col_name, DROP [CLOUMN] col_name;
- 刪除的同時添加
ALTER TABLE tb_name DROP [CLOUMN] col_name, ADD [CLOUMN] col_name column_definiton [ FIRST | AFTER col_name ];
- 修改列定義
ALTER TABLE tb_name MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name];
- 修改列名稱
ALTER TABLE tb_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name];
可修改列名稱也可修改列定義 - 數(shù)據(jù)表更名
ALTER TABLE tb_name RENAME [TO|AS] new_tb_name;
RENAME TABLE tb_name TO new_tb_name [,tb_name1 TO new_tb_name1]…;
- 添加/刪除約束
- 添加/刪除主鍵約束
ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,…);
ALTER TABLE tb_name DROP PRIMARY KEY;
- 添加/刪除唯一約束
ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] UNIQUE [KEY|INDEX] [index_name] [index_type] (index_col_name,…);
ALTER TABLE tb_name DROP {INDEX | KEY} index_name;
- 添加/刪除外鍵約束
ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,…) REFERENCES_definition;
ALTER TABLE tb_name DROP FOREIGN KEY fk_symbol;
- 添加/刪除默認(rèn)約束
ALTER TABLE tb_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT};
記錄增刪改查
插入數(shù)據(jù)(INSERT)
INSERT [INTO] tb_name [(col_name,…)] {VALUES|VALUE} ({expr|DEFAULT},…),(…),…;
省略掉列名稱時所有的字段都要賦值窿春。
對于自動編號字段:既可以寫DEFAULT,NULL實現(xiàn)默認(rèn)值,也可以自己賦值 采盒。
對于有默認(rèn)值字段:即可以寫DEFAULT旧乞,也可以自己賦值。
對于數(shù)字類型字段:即可以寫數(shù)字磅氨,也可以寫表達式尺栖、函數(shù)等等。
INSERT [INTO] tb_name SET col_name = {expr|DEFAULT},…;
此方式可以進行子查詢(SubQuery)
INSERT [INTO] tb_name [(col_name,…)] SELECT…;
此方式可以將查詢結(jié)果插入到指定數(shù)據(jù)表刪除數(shù)據(jù)(DELETE)
單表刪除記錄
DELETE FROM tb_name [WHERE where_condition];
WHERE:條件表達式烦租,不寫則刪除所有記錄更新數(shù)據(jù)(UPDATE)
單表更新
UPDATE tb_name SET col_name={ expr | DEFAULT } [ , col_name1={ expr|DEFAULT } ]… [ WHERE where_condition ];
多表更新
UPDATE table_references SET col_name1 = {expr1 | DEFAULT} [, col_name2 = { expr2 | DEFAULT }]… [WHERE where_condition]
WHERE:條件表達式延赌,不寫則更新所有記錄-
查詢數(shù)據(jù)(SELECT)
SELECT expr [,expr…] [ FROM table_references [WHERE where_condition] [GRUOP BY {col_name | position)}[ASC | DESC],…] [HAVING where_condition] [ORDER BY {col_name | expr |position} [ASC | DESC],…] [LIMIT {[offset,] row_count | row_count OFFSET offset}] ];
多個列之間以英文逗號分隔。
每一個表達式表示想要的一列叉橱,必須有至少一個挫以。
星號(*)表示所有列。tb_name.*可以表示命名表的所有列窃祝。
可使用[AS] alias_name
起別名掐松。別名可用于ORDER BY
,GROUP BY
,HAVING
字句。
WHERE:條件表達式,不寫則查詢所有記錄
GROUP BY:查詢結(jié)果分組
HAVING:分組條件
ORDER BY:查詢結(jié)果排序(默認(rèn)升序)
LIMIT:限制查詢結(jié)果數(shù)量