幫助
?CONTENTS
表操作
創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE db_name;
切換數(shù)據(jù)庫
USE db_name;
創(chuàng)建表
CRETAE TABLE table_name(column type,...);
查看表結(jié)構(gòu)
DESC table_name;
修改表名稱
ALTER TABLES old_table_name RENAME TO new_table_name;
顯示所有數(shù)據(jù)庫
SHOW DATABASES;
顯示所有表
SHOW TABLES;
修改數(shù)據(jù)庫默認編碼
ALTER DATABASE db_name DEFAULT CHARACTER SET encoding;
給表添加列
ALTER TABLE table_name ADD new_column type,…;
給表刪除列
ALTER TABLE table_name DROP columnname;
插入數(shù)據(jù)
插入所有字段
INSERT INTO table_name VALUES(colum1, .....);
插入部分字段
INSERT table_name(colum1,..) VALUES(value1,...);
修改數(shù)據(jù)
UPDATE tableble_name SET columnname=value WHERE 條件;
刪除全表
DELETE FROM table_name;
可以帶條件刪除
只能刪除表的數(shù)據(jù),不能刪除表的約束
可以回滾
TRUNCATE TABLE table_name;
不能帶條件刪除
既可以刪除表的數(shù)據(jù),也可以刪除表的約束
不可以回滾
查詢
查詢所有列
SELECT * FROM table_name;
查詢指定列
SELECT column1,… FROM table_name;
查詢時指定別名
SELECT column AS ‘column_new’,… FROM table_name AS table_name_new;
查詢時添加常量列
SELECT column1,…’常量列’ FROM table_name;
查詢時合并列
SELECT columname, (column1+column2) FROM table_name;
column1和column2必須為數(shù)值類型
查詢時去除重復列
SELECT DISTINCT column FROM table_name;
SELECT DISTINCT(column) FROM table_name;
條件查詢(WHERE)
邏輯條件:and(與) or(或)
SELECT * FROM table_name WHERE column1=value AND column2=value
SELECT * FROM table_name WHERE column1=value OR column2=value
比較條件: > < >= <= <>(不等于) between and
SELECT * FROM table_name WHERE column > value1 AND column < valu2;
SELECT * FROM table_name WHERE column BETWEEN value1 AND value2;
判空條件(null 空字符串) is null, is not null, =’’, <>’’
SELECT column,… FROM table_name WHERE column is null;
模糊條件(LIKE)
% 任意個字符
_ 一個字符
SELECT * FROM table_name WHERE column LIKE “”
聚合查詢
常用聚合函數(shù)
SUM() 求和
AVG() 求平均值
MAX() 最大值
MIN() 最小值
COUNT() 計數(shù)
COUNT(*) 列數(shù)
COUNT(column) 行數(shù)
分頁查詢(LIMIT 起始行, 查詢幾行)
起始行從0開始
分頁: 當前頁 每頁顯示條數(shù)
分頁查詢當前頁的數(shù)據(jù)sql:SELECT * FROM table_name LIMIT (當前頁-1)*每頁顯示條數(shù),每頁顯示條數(shù);
SELECT * FROM table_name LIMIT start_line, count_line;
查詢排序
SELECT * FROM table_name ORDER BY column ASC/DESC;
多列排序條件
SELECT * FROM table_name ORDER BY column1 ASC/DESC, column2 ASC/DESC;
先按column1排序,對column1值相同的行,按column2排序
分組查詢(GROUP BY)
SELECT column,COUNT(column/*) FROM table_name GROUP BY column;
分組查詢后篩選
SELECT column,COUNT(column/*) FROM table_name GROUP BY column HAVING COUNT(column/*);
表約束
唯一:
unique:不可可重復,可以為空,一張表可以有多個
主鍵: 非空+unique
primary key:不可重復,不可為空,一張表只能有一個
自增長
cretate TABLE table_name(column type auto_inrement);
cretate TABLE table_name(column type zerofill auto_inrement); 零填充
不能影響自增長約束
DELETE FROM table_name;
可以影響自增長約束
TRUNCATE TABLE table_name;
外鍵約束
CREATE TABLE table_name(
column type,
CONSTRAINT column_fk FOREIGN KEY(column) REFERENCES table_name_fk(column)
? ? ? ? ? ? ? ? ? ? ? ? 外鍵名稱? ? ? ? ? ? ? ? ? ? ? ? ? ? ?外鍵? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?參考表 (參考字段));
有外鍵約束時:
添加數(shù)據(jù)時:先添加主表(參考表),再添加副表
修改數(shù)據(jù)時:先修改副表,再修改主表(參考表)數(shù)據(jù)
刪除數(shù)據(jù)時:先刪除副表,再刪除主表(參考表)數(shù)據(jù)
級聯(lián)操作
有外鍵約束時,通過修改或刪除主表,影響副表
CREATE TABLE table_name( column type, CONSTRAINT column_fk FOREIGN KEY(column) REFERENCES table_name_fk(column) ON UPDATE CASCADE[ ON DELETE CASCADE]);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 外鍵名稱? ? ? ? ? ? ? 外鍵? ? ? ? ? ? ? ? 參考表(參考字段)