MySQL
管理MySQL的命令
- show databases; 列出DBMS的數(shù)據(jù)庫列表
- use database_name; 選擇要操作的數(shù)據(jù)庫
- use tables; 列出指定數(shù)據(jù)庫的所有表
- show columns from table_name; 顯示數(shù)據(jù)表的字段名鳖目,類型叔汁,主鍵信息壳澳,是否為NULL,默認(rèn)值等
- show index from table_name; 顯示數(shù)據(jù)表的詳細(xì)索引信息爽撒,包括主鍵primary key
- show table status from database_name like 'pattern'[\G]; 輸出DBMS的性能及統(tǒng)計信息,加上\G,查詢結(jié)果按列打印
show table status from mysql like 'user%'\G;
- show engines; 查看支持的存儲引擎(MySQL特有的存儲引擎可以被稱為表類型挟冠,即存儲和操作此表的類型)
- show variables like 'storage_engine%'; 查看正在使用的存儲引擎
- show variables like '%char%'; 查看數(shù)據(jù)庫使用字符集
連接數(shù)據(jù)庫
- mysql -u user_name -p password 連接mysql命令提示窗口
- exit / \q 退出命令提示窗口
創(chuàng)建數(shù)據(jù)庫
- create database database_name;
- mysqladmin -u root -p create database_name 使用mysqladmin命令創(chuàng)建數(shù)據(jù)庫
刪除數(shù)據(jù)庫
- drop database database_name;
- mysqladmin -u root -p drop database_name 使用mysqladmin命令刪除數(shù)據(jù)庫
選擇數(shù)據(jù)庫
- use database_name;
MySQL數(shù)據(jù)類型
- 主要分為三大類:數(shù)值鹏漆、日期/時間和字符串(字符)類型
- MySQL數(shù)據(jù)類型
創(chuàng)建數(shù)據(jù)表
- create table table_name (column_name column type);
刪除數(shù)據(jù)表
- drop table table_name;
插入數(shù)據(jù)
- insert into set table_name (field1, field2, ...) values (v1, v2, ...);
刪除數(shù)據(jù)
- delete from table_name [where Clause];
修改數(shù)據(jù)
- update table_name set field1 = new_value, field2 = new_value [where Clause];
查詢數(shù)據(jù)
- select column_name, column_name from table_name [where Clause] [limit N] [offset M];(where包含條件 limit限制返回記錄數(shù) offset指定開始查詢的偏移量巩梢,默認(rèn)為0)
where
- select field1, field2, ... from table_name1, table_name2, ...[where condition1 and | or condition2];
- where binary 區(qū)分大小寫创泄,否則不區(qū)分
like子句
- like子句中使用百分號 %字符來表示任意字符
- 如果沒有使用百分號 %, like子句與等號 = 的效果是一樣的
- 可以在where子句中使用like子句
union操作符
- union操作符用于連接兩個以上的select語句的結(jié)果組合到一個結(jié)果集合中,使用distinct刪除重復(fù)的數(shù)據(jù),默認(rèn)為distinct
- select field1, field2, ...
from tables
[where conditions]
union [all | distinct]
select field1, field2, ...
from tables
[where conditions];
order by排序
- select field1, field2,...from table_name1, table_name2...
order by field1, [field2...] [ASC [DESC]]
group by分組
- group by語句根據(jù)一個或多個列對結(jié)果集進行分組
- 在分組的列上我們可以使用 count, sum avg等函數(shù)
with rollup 加在group by之后括蝠,可以對group by分組統(tǒng)計的結(jié)果基礎(chǔ)上再進行相同的統(tǒng)計操作
join連接
- inner join ... on ... 內(nèi)連接/等值連接(可以省略inner鞠抑,獲取兩個表中字段匹配關(guān)系的記錄)
- left join ... on 左連接(獲取左表所有記錄,即使右表沒有對應(yīng)匹配的記錄)
- right join ... on 右連接(獲取右表所有記錄忌警,即使左表沒有對應(yīng)匹配的記錄)
處理NULL值
- is null
- is not null
- <=> null值比較操作符搁拙,均為null返回true(null = null 返回false)