MYSQL數據庫 查詢我們建完的表格~~~

在我們對數據庫進行操作時,在建成表格後我們一般不進行修改,所以更多的操作是查詢。
對於一個表格,我們只想查詢它的部分列的內容,該怎麼做?
想讓我們看看原來的表格
在這裏插入圖片描述

#查詢表students的 id name 列的內容
select id,name from students;

在這裏插入圖片描述
當我們需要消除表中重複的值時:

#消除students表中gender的重複值
select distinct gender from students

在這裏插入圖片描述

#消除兩列重複的值
select distinct id,gender from students;

在這裏插入圖片描述
我們發現,gender列有重複行,造成這種結果的原因是什麼呢?
其實我們已經消除了重複行,儘管有gender列存在一致的行,但是它們的id列內容不重複。
所以在消除重複的操作時,消除的判斷是基於整個行的。

where語句

where 是對於行的篩選
where 後可以進行怎樣的判斷呢?

1.比較運算符
等於 =
大於 >
大於等於 >=
小於<
小於等於 <=
不等於 != 或 <>

例:

#查詢id大於等於2的同學
select * from students where id>=2

在這裏插入圖片描述
2.邏輯運算符
與 and
或 or
非 not
例:

#查詢id>=3的男同學【注】gender=0爲女  gender=1爲男
select * from students where id>=3 and gender=1;

在這裏插入圖片描述
3.模糊查詢
like
% 表示任意多個任意字符
_ 表示一個任意字符

例:

#查詢名字以奇開頭的學生
select * from students where name like '奇%';

在這裏插入圖片描述
這樣我們就可以查詢出name中以 “奇”開頭的同學。
我們可以通過 '奇_'查詢name以”奇“開頭,兩個字符的同學。
也可以通過’%奇%‘查詢name中包含”奇“字的同學。
例2:

#查詢name中包含’哈‘或者’奇‘開頭的學生
select * from students where name like '奇%' or name like '%哈%';

在這裏插入圖片描述

範圍查詢:
in 表示在一個非連續的範圍內
between 表示在一個連續範圍內

例:

#查詢id爲1和3的學生
select * from students where id in (1,3);

在這裏插入圖片描述

#查詢id=3至id=4的同學
select * from students wheere id between 3 and 4;

在這裏插入圖片描述

空判斷:
null 與 ’ ‘ 是不同的
判空 is null (不爲空爲 is not null)
例:
#更換另一個列表如下
在這裏插入圖片描述

#將表中的hobby列爲null的顯示出來
select * from student where hobby is null;

在這裏插入圖片描述

優先級
小括號,not,比較運算符,邏輯運算符
and 比 or 先運算,如果同時出現,想先執行or,需要加小括號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章