天天看點

mysql的經典查詢語句

drop database 新資料庫名稱 if exists //該語句用于判斷要建立的資料庫是否已存在,如果存在則删除已存在的資料庫,繁殖不做任何處理

create database 新資料庫名稱

show databases 檢視已存在的資料庫

show tables 檢視已存在的資料表

drop table tablename删除資料表

邏輯運算優先級

not>and>or

where 字段名<> 查找非空資料

limit查詢前n條記錄

order by 字段名(asc)升序

order by 字段名 desc 降序

limit 滿足條件的起始位置,記錄個數 //查詢從指定位置開始的N條記錄

where 字段名>初始值 and 字段名<終止值(between and)//指定範圍查找

year(data)month(data)day(data) 傳回對應的日期格式值

select distinct不顯示重複記錄

not between 查詢範圍開始值 and查詢範圍的結束值

is not null使用關鍵字指定對空值或非空值搜尋

not in 使用關鍵字是對包含在清單内還是排除在清單外

select count(*/某字段的名稱)as 新字段名稱(表示将求出的記錄總數儲存到該字段中)//顯示資料表中的重複記錄和記錄條數

select count(*/某字段的名稱)as 字段名from表名 where 查詢條件 group by //通過groupby字句,可以實作将查詢結果按指定的字段名進行分組

sum([all]字段名/[distinct]字段名)//對統計結果進行排序,all包括重複記錄,distinct所有不重複記錄

sum(字段1)as 新字段1,sum(字段2)as 新字段2 //多列資料分組統計

sum(表1.字段1)as 新字段1,sum(表2.字段2)as 新字段2//多表分組統計

avg([all|distinct])使用聚合函數求平均值

min/max([all|distinct])最小和最大值

first/last(字段)求表中第一條記錄或最後一條記錄

selet 字段名 from 表1,表2......where 表1.字段=表2.字段 and 其他查詢條件//select的 多表查詢

select 字段名 from 表名 (as) 表别名 where 條件 //使用表别名

union:利用該關鍵字可以将多個select語句的查詢結果合并并輸出,并删除重複行 all:除不删除重複行外與union一樣//合并多個結果集

sql表達式 [not]in(子查詢//必須與sql表達式具有相同的資料類型)//嵌套查詢

sql表達式 查詢條件運算符 any|all|some (子查詢)//some和any是存在量的,隻注重是否有傳回值滿足搜尋條件,all它隻關心是否有謂詞都滿足搜尋條件

#子查詢不能在内部處理它的結果,由比較運算符引入的内層子查詢隻包含以個表達式或列名,在外層的where子句内所命名的列必須與内層子查詢命名的列相容,由不課更改的比較運算符引入的子查詢(不跟關鍵字any或all)不包括group by或having子句,除非先确定了值

聯合語句

-多表聯合查詢

    查詢表達式 union[all] 查詢表達式 //使用union運算符時,所有選擇清單的表達式數目必須相同,資料類型相同

-條件聯合語句

    having 限定條件

内連接配接查詢

-内連接配接

    select 字段清單 from 表1 [inner] join 表2 on (連接配接方式。例如 表1.字段1=表2.字段2)inner表示為内連接配接

外連接配接查詢

-使用外連接配接進行多表查詢

    select 字段清單 from 表1 left/right outer join 表2 on (連接配接條件。例如 表1.字段1=表2.字段2)+查詢條件(可選)左(右)連接配接傳回的查詢結果包含左表中的所有符合查詢條件及右(左)表中所有滿足連接配接條件的行

having語句用于指定或聚合的搜尋條件,通常與group by子句一起使用。如果沒有group by子句,having的行為和where子句一樣。