大家好,我是IT共享者,人稱皮皮。今天給大家講講MySQL中的查詢操作。
前言
我們在以前,大概學了一下如何通過命令創(chuàng)建數(shù)據(jù)庫,創(chuàng)建表等基本操作。
但是實際上啊,至少在我的實際工作中,用到的不是太多,了解就可以。
因為我們可以通過一些可視化軟件,像Navicat for MySQL等。
可以很方便的幫助我們創(chuàng)建數(shù)據(jù)庫,創(chuàng)建表,修改表等操作。
Navicat for MySQL簡單示例
創(chuàng)建數(shù)據(jù)庫
使用Navicat for MySQL連接好一個Mysql服務之后。
1.右擊--> 新建數(shù)據(jù)庫
2.選擇新建數(shù)據(jù)庫信息
字符集一定要選擇utf8mb4 -- UTF-8 Unicode,這個表示支持存儲Emoji表情。
排序規(guī)則一定要選擇utf8mb4_general_ci。
至于為什么,我也不知道...,原諒我是個碼農(nóng)吧。
就這樣,一個數(shù)據(jù)庫創(chuàng)建完成了,是不是很輕松。
創(chuàng)建表
1.右擊表--> 新建表
2.制定表結(jié)構(gòu)
3.保存表(Ctrl+s)
設計表
在實際中,我們常常會更改表結(jié)構(gòu),也叫設計表
1.右擊表-->設計表
2.修改表
3.保存即修改
查詢
上述主要復現(xiàn)了一下如何通過可視化軟件操作數(shù)據(jù)庫,確實會比直接命令方便很多很多。
但是查詢這個操作,那可視化軟件就真的無能為力了。
畢竟我們不管是封裝在后臺還是自己的軟件中。
都是要使用原生SQL的,這個是無法避免的,并且原生SQL查詢是最靈活的!!!
終于迎來了最最最重要的環(huán)節(jié),學習原生sql。
需求分析
假設我們現(xiàn)在要做一個學生管理系統(tǒng),所以首先確定,會有一個學生表,用于存放學生的信息,像姓名了,年齡了,性別了,等。
然后想了又想,學生肯定要屬于哪個班級的,張三是一班的,李四是二班的,等。
所以我們可能就會有兩張表了,一個是學生信息表,一個是班級表,然后學生屬于哪個班級。
就像小時候戴的學生胸牌一樣,姓名:xxx,班級:xxx等。
想了想,我覺得表結(jié)構(gòu)大概如下
表結(jié)構(gòu)圖
表結(jié)構(gòu)圖.xlsx
表結(jié)構(gòu)代碼
school_test.sql
應該通過這兩張表,基本可以把我們的sql語法,學的差不多,一起來看看叭。
查詢(select)
既然表里面有這么多數(shù)據(jù),那就需要查詢了,首先是。
查詢所有
sql
-- 語法
SELECT * from <表名>;
-- 例如,查詢學生表
SELECT * from student;
執(zhí)行結(jié)果
where條件查詢
但是有時候,我們可能需要查詢帶有一些條件的,比如id=1的,或者name=張三的等。
這時候就需要用到where。
sql
-- 語法
SELECT * from <表名> where <條件>;
-- 例如,查詢id=1的數(shù)據(jù)
SELECT * from student where id=1;
執(zhí)行結(jié)果
這樣,我們就把id=1的數(shù)據(jù)查找出來了。
同理,還可以寫其他條件。
查詢性別為男的(gender=男)
SELECT * from student where gender="男";
執(zhí)行結(jié)果
這樣,就把gender=男的都查出來了。
where多個條件查詢(and)
假設現(xiàn)在表內(nèi)容如下。
有倆琪琪,一個是男琪琪,一個是女琪琪,那我們查的時候,肯定要區(qū)分是男的還是女的琪琪了。
所以這時候需要where多個條件了。
and的意思是查詢滿足所有條件的數(shù)據(jù)。
sql
-- 語法
SELECT * from student where <條件> and <條件> ...;
-- 例如,查詢男琪琪
SELECT * from student where name="琪琪" and gender="男";
執(zhí)行結(jié)果
這樣,通過多個條件就卡住了更精準的數(shù)據(jù)。
select 選擇列
在上面使用時,我們使用的都是select * from <表名>。
假設我們的數(shù)據(jù)如下
select *就表示,選擇所有列
結(jié)果如下
如果是select id,name age,表示選擇指定列
結(jié)果如下
select還能給列起別名
例如
SELECT id,name as "姓名",age from student;
執(zhí)行結(jié)果
總結(jié)
本章主要講述了如何使用Navicat for MySQL新建數(shù)據(jù)庫,新建表,設計表等簡單操作。
后續(xù)又根據(jù)實際需求設計出簡單的學生表和班級表,并且簡單是使用了select查詢。
后來又講解select *和select 列1,列2的區(qū)別。
敬往事一杯酒,自此不再回頭。
我是碼農(nóng)星期八,如果覺得還不錯,記得動手點贊一下哈。感謝你的觀看。