一文讀懂navicat for mysql基礎(chǔ)知識(shí)
1、新建數(shù)據(jù)庫
2、打開數(shù)據(jù)庫
右鍵或者雙擊就可以了。
3、刪除數(shù)據(jù)庫
右鍵?>刪除數(shù)據(jù)庫
4、修改數(shù)據(jù)庫
右鍵?>數(shù)據(jù)庫屬性
二、數(shù)據(jù)類型1、常用的數(shù)據(jù)類型
整數(shù):int小數(shù):decimal字符串:varchar日期時(shí)間:datatime
2、約束條件
主鍵:物理上儲(chǔ)存的順序(主鍵唯一、不能為空,所以允許空值的勾得去掉,不然不能新建或保存,還可以選擇下面注釋中得自動(dòng)遞增節(jié)省工作量)
非空:此字段不允許填空值唯一:此字段不允許重復(fù)
默認(rèn)值:當(dāng)不填寫時(shí)會(huì)使用默認(rèn)值,如果填寫以填寫的值為止。外鍵:維護(hù)兩個(gè)表之間的關(guān)聯(lián)關(guān)系
三、備份和恢復(fù)備份:右鍵?>轉(zhuǎn)儲(chǔ)為SQL文件恢復(fù):右鍵運(yùn)轉(zhuǎn)SQl文件
1、簡(jiǎn)單查詢
語法:
select 字段 form 表名 where 條件;
通過as給表和字段取別名:select name as n from students as s;
消除重復(fù)行:select distinct * from students;
比較運(yùn)算符:
等于:=大于:>大于等于:>=小于: <小于等于:<=不等于:!=或<>
邏輯運(yùn)算符:
與:and或:or非:not
模糊查詢:
like%表示任意多個(gè)任意字符表示一個(gè)任意字符例1:查詢姓孫的學(xué)生select * from students where name like ‘孫%’;例2:查詢姓孫且名字是一個(gè)字的學(xué)生select * from students where name like ’孫’
范圍查詢:
in表示在一個(gè)非連接的范圍內(nèi);例1:查詢家鄉(xiāng)是北京或上海或廣東的學(xué)生select * from students where hometown in(‘北京’,‘上?!?‘廣東’);between…and…表示在一個(gè)連續(xù)的范圍內(nèi)例2:查詢年齡為18至28的學(xué)生select * from students where age between 18 and 28;空判斷:注意:null與’’是不同的判斷is null例1:查詢沒有填寫身份證的學(xué)生select * from students where card is null;判非空is not nullselect * from students where card is not null;
排序:
語法:select * from 表名 order by 列1 asc|desc,列1 asc|desc…;默認(rèn)按照列值從小到大排列asc從小到大排序,即升序。desc從大到小排序,即降序。
聚合函數(shù):
1、count(*)表示計(jì)算總行數(shù),括號(hào)中寫星和列名結(jié)果一樣。聚合函數(shù)不能再where中使用例1:查詢學(xué)生總數(shù)select count(*) from students;2、max(列)表示求此列的最大值例2:查詢女生的最小年齡select max(age) from students where sex=‘女’;3、min(列)表示此列最小值例:查詢1班最大的年齡select min(age) from students where 班級(jí)=‘1’4、sum(列)表示求此列的和select sum(age) from students5、avg(列)表示求此列的平均值select avg(age) from students
分組:
1、按照字段分組,表示此字段相同的數(shù)據(jù)會(huì)被放到一個(gè)組中2、分組后,分組的依據(jù)列會(huì)顯示在結(jié)果集中,其他列不會(huì)顯示在結(jié)果集中3、可以對(duì)分組后的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),做聚合運(yùn)算語法:select 列1,列2,count(*) from 表名 group by/having 列1,列2having后面的條件運(yùn)算符與where的相同對(duì)比where與having:1、where是對(duì)from后面指定的表進(jìn)行數(shù)據(jù)篩選,屬于對(duì)原始數(shù)據(jù)的篩選2、having是對(duì)group by 的結(jié)果進(jìn)行篩選
分頁查詢:獲取部分行
1、當(dāng)數(shù)據(jù)過大時(shí),在一頁中查看數(shù)據(jù)是一件非常麻煩的事情2、語法:select * from limit start,count;2.1 從start開始,獲取count條數(shù)據(jù)。2.2 start索引從0開始例1:查詢前3行學(xué)生信息select * from students limit 0,3;分頁:1、已知:每頁顯示m條數(shù)據(jù),求:顯示第n頁的數(shù)據(jù)select * from students limit (n-1)*m,m;2、求總頁數(shù)查詢總條數(shù)p1使用p1除以m得到p2如果整除則p2為總數(shù)頁如果不是整數(shù)則p2+1為總頁數(shù)
連接查詢:
1、當(dāng)查詢結(jié)果得列來自于多張表時(shí),需要將多張表連接成一個(gè)大的數(shù)據(jù)集,再選擇合適的列返回2、等值連接查詢:查詢的結(jié)果為兩個(gè)表匹配到的數(shù)據(jù)3、左連接查詢:查詢結(jié)果為兩個(gè)表匹配到的數(shù)據(jù)加左表特有的數(shù)據(jù),對(duì)于右表中不存在的數(shù)據(jù)使用null4、右連接查詢:查詢結(jié)果為兩個(gè)表匹配到的數(shù)據(jù)加右表特有的數(shù)據(jù),對(duì)于左表中不存在的數(shù)據(jù)使用null
等值連接:
方式1:select * from 表1,表2 where 表1.列=表2.列;方式2(又稱內(nèi)連接): select * from 表1 inner join 表2 on 表1.列=表2.列;方式3(表內(nèi)連接):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.列;
主查詢:
主要查詢的對(duì)象,第一條select語句
子查詢:
在第一個(gè)select語句中嵌入了另一個(gè)select語句,那么嵌套的select語句稱之為子查詢
主查詢和子查詢的關(guān)系:
1、子查詢時(shí)嵌入到主查詢中2、子查詢是輔助主查詢的,要么充當(dāng)條件,要么充當(dāng)數(shù)據(jù)源3、子查詢是可以獨(dú)立存在的語句,是一條完整的select語句
子查詢分類:
1、標(biāo)量子查詢:子查詢返回的結(jié)果是一個(gè)數(shù)據(jù)(一行一列)2、列子查詢:返回的結(jié)果是一列(一列多行)3、行子查詢:返回的結(jié)果是一行(一行多列)4、表級(jí)子查詢:返回的結(jié)果是多行多列標(biāo)量子查詢:例1:查詢班級(jí)學(xué)生的平均年齡select avg(age) from students;列子查詢:例1:查詢18歲的學(xué)生學(xué)號(hào)select studentno from students where age=18;行級(jí)查詢:例1:查詢男生中年齡最大的學(xué)生信息select max(age) from students where sex=‘男’;
2、插入數(shù)據(jù)
語法:insert into 表名 values(…)插入多條:insert into 表名 values(…),(…)
3、刪除數(shù)據(jù)
語法:delete from 表名 where 條件
4、修改/更新數(shù)據(jù)
語法:update 表名 set 列1=值1,列2=值2… where 條件
四、高級(jí)視圖:
1、對(duì)于復(fù)雜的查詢,在很多地方被使用,如果需求發(fā)生了改變,需要更改sql語句,則需要在多個(gè)地方進(jìn)行修改,維護(hù)起來非常麻煩。2、解決:定義視圖。3、視圖本質(zhì)就是對(duì)查詢的封裝4、定義視圖,建議以V_開頭select view 視圖名稱 as select 語氣;查看視圖:查看表會(huì)將所有的視圖也列出來
show tables;
刪除視圖:
drop view 視圖名稱;
使用:視圖的用途就是查詢select * from 視圖名稱;
索引:
語法:查看索引:show index from 表名;
外鍵:
一個(gè)外鍵的值一定是另一個(gè)表的主鍵,在設(shè)置主鍵以前,必須先將兩個(gè)表選項(xiàng)中的引擎修改為InnoDB:
然后設(shè)置外鍵:
注意:外鍵所在的表不能設(shè)置主鍵
唯一:
設(shè)置唯一后,數(shù)據(jù)能出現(xiàn)重復(fù)的數(shù)據(jù)。
輸入重復(fù)的數(shù)據(jù)就會(huì)報(bào)錯(cuò):
ctr+/ 注釋作用笛卡爾積=兩個(gè)表數(shù)據(jù)個(gè)數(shù)相乘
以上就是一文讀懂navicat for mysql基礎(chǔ)知識(shí)的詳細(xì)內(nèi)容,更多關(guān)于navicat mysql基礎(chǔ)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 如何手動(dòng)刪除 SQL Server 2000 默認(rèn)實(shí)例、命名實(shí)例或虛擬實(shí)例2. 啟動(dòng)MYSQL出錯(cuò) Manager of pid-file quit without updating file.3. 數(shù)據(jù)庫相關(guān)的幾個(gè)技能:ACCESS轉(zhuǎn)SQL4. mysql-bin.000001文件的來源及處理方法5. 講解Oracle FailSafe與rac的聯(lián)系與區(qū)別6. MySQL性能優(yōu)化之一條SQL在MySQL中執(zhí)行的過程詳解7. MySQL實(shí)現(xiàn)數(shù)據(jù)批量更新功能詳解8. 詳解MySQL InnoDB存儲(chǔ)引擎的內(nèi)存管理9. Eclipse與MySQL數(shù)據(jù)庫的連接教程(已實(shí)操)10. 數(shù)據(jù)庫Oracle9i的企業(yè)管理器簡(jiǎn)介
