目錄
- 一、數據庫的操作
- 二、數據類型
- 三、備份和恢復
- 三、操作動作
- 四、高級
- 五、知識補充
一、數據庫的操作
1、新建數據庫

2、打開數據庫
右鍵或者雙擊就可以了。
3、刪除數據庫
右鍵–>刪除數據庫
4、修改數據庫
右鍵–>數據庫屬性
二、數據類型
1、常用的數據類型
整數:int
小數:decimal
字符串:varchar
日期時間:datatime
2、約束條件
主鍵:物理上儲存的順序(主鍵唯一、不能為空,所以允許空值的勾得去掉,不然不能新建或保存,還可以選擇下面注釋中得自動遞增節省工作量)

非空:此字段不允許填空值
唯一:此字段不允許重復
默認值:當不填寫時會使用默認值,如果填寫以填寫的值為止。
外鍵:維護兩個表之間的關聯關系
三、備份和恢復
備份:右鍵–>轉儲為SQL文件
恢復:右鍵運轉SQl文件

三、操作動作
1、簡單查詢
語法:
select 字段 form 表名 where 條件;
通過as給表和字段取別名:select name as n from students as s;
消除重復行:select distinct * from students;
比較運算符:
等于:=
大于:>
大于等于:>=
小于:
小于等于:=
不等于:!=或>
邏輯運算符:
與:and
或:or
非:not
模糊查詢:
like
%表示任意多個任意字符
表示一個任意字符
例1:查詢姓孫的學生
select * from students where name like ‘孫%';
例2:查詢姓孫且名字是一個字的學生
select * from students where name like '孫'
范圍查詢:
in表示在一個非連接的范圍內;
例1:查詢家鄉是北京或上海或廣東的學生
select * from students where hometown in(‘北京',‘上海',‘廣東');
between…and…表示在一個連續的范圍內
例2:查詢年齡為18至28的學生
select * from students where age between 18 and 28;
空判斷:
注意:null與''是不同的
判斷is null
例1:查詢沒有填寫身份證的學生
select * from students where card is null;
判非空is not null
select * from students where card is not null;
排序:
語法:select * from 表名 order by 列1 asc|desc,列1 asc|desc…;
默認按照列值從小到大排列
asc從小到大排序,即升序。
desc從大到小排序,即降序。
聚合函數:
1、count(*
)表示計算總行數,括號中寫星和列名結果一樣。
聚合函數不能再where中使用
例1:查詢學生總數
select count(*
) from students;
2、max(列)表示求此列的最大值
例2:查詢女生的最小年齡
select max(age) from students where sex=‘女';
3、min(列)表示此列最小值
例:查詢1班最大的年齡
select min(age) from students where 班級=‘1'
4、sum(列)表示求此列的和
select sum(age) from students
5、avg(列)表示求此列的平均值
select avg(age) from students
分組:
1、按照字段分組,表示此字段相同的數據會被放到一個組中
2、分組后,分組的依據列會顯示在結果集中,其他列不會顯示在結果集中
3、可以對分組后的數據進行統計,做聚合運算
語法:
select 列1,列2,count(*) from 表名 group by/having 列1,列2
having后面的條件運算符與where的相同
對比where與having:
1、where是對from后面指定的表進行數據篩選,屬于對原始數據的篩選
2、having是對group by 的結果進行篩選
分頁查詢:獲取部分行
1、當數據過大時,在一頁中查看數據是一件非常麻煩的事情
2、語法:
select * from limit start,count;
2.1 從start開始,獲取count條數據。
2.2 start索引從0開始
例1:查詢前3行學生信息
select * from students limit 0,3;
分頁:
1、已知:每頁顯示m條數據,求:顯示第n頁的數據
select * from students limit (n-1)*m,m;
2、求總頁數
查詢總條數p1
使用p1除以m得到p2
如果整除則p2為總數頁
如果不是整數則p2+1為總頁數
連接查詢:
1、當查詢結果得列來自于多張表時,需要將多張表連接成一個大的數據集,再選擇合適的列返回
2、等值連接查詢:查詢的結果為兩個表匹配到的數據
3、左連接查詢:查詢結果為兩個表匹配到的數據加左表特有的數據,對于右表中不存在的數據使用null
4、右連接查詢:查詢結果為兩個表匹配到的數據加右表特有的數據,對于左表中不存在的數據使用null
等值連接:
方式1:select * from 表1,表2 where 表1.列=表2.列;
方式2(又稱內連接): select * from 表1 inner join 表2 on 表1.列=表2.列;
方式3(表內連接):select * from 表1,表2,表3 where 表1.列=表2.列 and 表2=表3;
方式4(又稱左連接): select * from 表1 left join 表2 on 表1.列=表2.列;
方式5(又稱右連接): select * from 表1 right join 表2 on 表1.列=表2.列;
主查詢:
主要查詢的對象,第一條select語句
子查詢:
在第一個select語句中嵌入了另一個select語句,那么嵌套的select語句稱之為子查詢
主查詢和子查詢的關系:
1、子查詢時嵌入到主查詢中
2、子查詢是輔助主查詢的,要么充當條件,要么充當數據源
3、子查詢是可以獨立存在的語句,是一條完整的select語句
子查詢分類:
1、標量子查詢:子查詢返回的結果是一個數據(一行一列)
2、列子查詢:返回的結果是一列(一列多行)
3、行子查詢:返回的結果是一行(一行多列)
4、表級子查詢:返回的結果是多行多列
標量子查詢:
例1:查詢班級學生的平均年齡
select avg(age) from students;
列子查詢:
例1:查詢18歲的學生學號
select studentno from students where age=18;
行級查詢:
例1:查詢男生中年齡最大的學生信息
select max(age) from students where sex=‘男';
2、插入數據
語法:
insert into 表名 values(…)
插入多條:insert into 表名 values(…),(…)
3、刪除數據
語法:
delete from 表名 where 條件
4、修改/更新數據
語法:
update 表名 set 列1=值1,列2=值2… where 條件
四、高級
視圖:
1、對于復雜的查詢,在很多地方被使用,如果需求發生了改變,需要更改sql語句,則需要在多個地方進行修改,維護起來非常麻煩。
2、解決:定義視圖。
3、視圖本質就是對查詢的封裝
4、定義視圖,建議以V_開頭
select view 視圖名稱 as select 語氣;
查看視圖:查看表會將所有的視圖也列出來
刪除視圖:
使用:視圖的用途就是查詢
select * from 視圖名稱;
索引:
語法:
查看索引:show index from 表名;
外鍵:
一個外鍵的值一定是另一個表的主鍵,在設置主鍵以前,必須先將兩個表選項中的引擎修改為InnoDB:

然后設置外鍵:

注意:外鍵所在的表不能設置主鍵
唯一:
設置唯一后,數據能出現重復的數據。

輸入重復的數據就會報錯:

五、知識補充
ctr+/ 注釋作用
笛卡爾積=兩個表數據個數相乘
以上就是一文讀懂navicat for mysql基礎知識的詳細內容,更多關于navicat mysql基礎的資料請關注腳本之家其它相關文章!
您可能感興趣的文章:- 解決Navicat for MySQL 連接 MySQL 報2005錯誤的問題
- Navicat for MySQL 15注冊激活詳細教程
- Navicat for MySQL 11注冊碼\激活碼匯總
- navicat 8 for mysql建庫的方法
- MySQL數據庫安裝和Navicat for MySQL配合使用教程
- 安裝mysql8.0.11及修改root密碼、連接navicat for mysql的思路詳解
- Navicat for MySQL定時備份數據庫及數據恢復詳解
- Navicat for MySQL導出表結構腳本的簡單方法