MySQL學習記錄

2022-09-24 04:36:13 字數 3714 閱讀 5266

show databases;返回可用資料庫的乙個列表。

show tables;返回當前選擇的資料庫內可用表的列表。

show columns 要求給出乙個表名( 這個例子中的show columns from customers),它對每個字段返回一行,行中包含欄位名、資料型別、是否允許null、鍵資訊、預設值以及其他資訊。

describe customers;是show columns from customers;的一種快捷方式。

show status,用於顯示廣泛的伺服器狀態資訊;

show create database和show create table,分別用來顯示建立特定資料庫或表的mysql語句;

show grants,用來顯示授予使用者(所有使用者或特定使用者)的安全許可權;

show errors和show warnings,用來顯示伺服器錯誤或警告訊息。

select prod_id,prod_name from products;檢索單列

select prod_id,prod_name,prod_price from products;檢索多列

select * from products;檢索全部

select distinct vend_id from products;只返回具有不同值的行

select prod_name from products limit 5;限制返回前5行資料

select prod_name from products limit 5,7;限制返回從第5行開始的7行資料

select products.prod_name from products;

select products.prod_name from crashcourse.products;

類似c++裡在函式、變數等前邊加作用域

select prod_name from products order by prod_name;選擇prod_name 列,並按照prod_name 排序

select prod_name from products order by prod_id;選擇prod_name 列,並按照prod_id 排序

select prod_id, prod_price,prod_name from products order by prod_price,prod_name;選擇3列,並按照2列排序 排序順序優先price,僅當price相同時才繼續按照name排序

select prod_id, prod_price,prod_name from products order by prod_price desc,prod_name;先以降序排序price,price相同時以公升序排序name 

tip:desc關鍵字僅對前邊的列名起作用,如果需要多個列降序排序,需要對每個列都指定desc關鍵字;

與desc相反的關鍵字未asc,但實際沒什麼用處,因為預設排序就是公升序排序

select prod_price from products order by prod_price desc limit 1;按降序排列price,且限制只取一行 則結果為最貴的商品

select prod_name,prod_price from products where prod_price=2.50;

select prod_name,prod_price from products where prod_price=2.50 order by prod_price;order by子句必須放在where子句後邊

=     等於

<>  不等於

!=   不等於

<    小於

<=  小於等於

>    大於

>=  大於等於

between 指定的兩個值之間

select prod_name,prod_price from products where prod_price between 5 and 10;限定檢索price為5到10之間的資料 兩個限定值之間必須用and連線

select prod_name from products where prod_price is null;限定檢索沒有price的資料

tip:null與不匹配

在通過過濾選擇出不具有特定值的行時,你可能希望返回具有null值的行。但是,不行。因為未知具有特殊的含義,資料庫不知道它們是否匹配,所以在匹配過濾或不匹配過濾時不返回它們。

因此,在過濾資料時,一定要驗證返回資料中確實給出了被過濾列具有null的行。

and 操作符

select prod_id,prod_price,prod_name from products where prod_id=1003 and prod_price<=10;檢索id為1003和price小於等於10資料

or 操作符

select prod_id,prod_price,prod_name from products where prod_id=1003 or prod_price<=10;檢索id為1003或price小於等於10資料

計算次序:and操作符的優先順序高於or操作符

select prod_id,prod_price,prod_name from products where (vend_id=1002 or vend_id=1003) and prod_price<=10;檢索id為1002或1003 並且price小於等於10的資料

in 操作符

select prod_id,prod_price,prod_name from products where vend_id in(1002,1003) and prod_price<=10;檢索id為1002或1003 並且price小於等於10的資料     與上一條or操作符等價

tip:使用in操作符 優點如下:

在使用長的合法選項清單時,in操作符的語法更清楚且更直觀。

在使用in時,計算的次序更容易管理(因為使用的操作符更少)。

in操作符一般比or操作符清單執行更快。

in的最大優點是可以包含其他select語句,使得能夠更動態地建立where子句。

not 操作符

select prod_id,prod_price,prod_name from products where vend_id not in(1002,1003) order by prod_name;否定or子句

萬用字元%

select prod_id,prod_price,prod_name from products where prod_name like '%anvil%';   %anvil%:中間為anvil的詞  anvil%:開頭為anvil的詞  %anvil:結尾為anvil的詞(如果anvil後有空格 則不匹配)

萬用字元_

select prod_id,prod_price,prod_name from products where prod_name like '_ ton anvil%';下劃線_只匹配乙個字元

萬用字元使用技巧:

不要過度使用萬用字元。如果其他操作符能達到相同的目的,應該使用其他操作符。

在確實需要使用萬用字元時,除非絕對有必要,否則不要把它們用在搜尋模式的開始處。把萬用字元置於搜尋模式的開始處,搜尋起來是最慢的。

仔細注意萬用字元的位置。如果放錯地方,可能不會返回想要的數

mysql學習記錄 MySQL學習記錄 2

in 子查詢 select from student where id in 1,2 not in 不在其中 select from student where id not in 1,2 is null 是空 select from student where age is null is not...

學習記錄 Mysql

mysql 是官方發布的 乙個為mysql設計的c 語言的api,這個api的作用是使工作更加簡單且容易。mysql 為mysql的c api的再次封裝,它用stl standard template language 開發並編寫,並為c 開發程式設計師提供象操作stl容器一樣方便的運算元據庫的一套...

Mysql 學習記錄

本篇部落格主要記錄一些開發中使用的到一些知識點。cdata 這是乙個xml語法 是的所有在cdata中的資料都不會被解析詳細描述參見 cdata語法 concat 函式用於將多個字串連線成乙個字串注意 如有任何乙個引數為null 則返回值為 null。或許有乙個或多個引數。如果所有引數均為非二進位制...