一、什么是數(shù)據(jù)庫
數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構來組織、存儲和管理數(shù)據(jù)的倉庫,類似于excel表格,如存儲個人信息時,我們要存儲姓名,性別,年齡,家庭地址,身份證號碼,這些能表示用戶的某些特征,在數(shù)據(jù)庫稱之為屬性。在我們查找用戶信息的時候,如果我們根據(jù)姓名、年齡,地址來查找用戶信息根本無法獲得準確信息,但我們可以根據(jù)身份證號碼來查找,因為身份證號碼是唯一的,而在數(shù)據(jù)庫里我們將能唯一能夠表示的稱為主鍵
數(shù)據(jù)庫的特點
- 實現(xiàn)數(shù)據(jù)庫共享
- 減少數(shù)據(jù)的冗余度
- 數(shù)據(jù)的獨立性
- 數(shù)據(jù)實現(xiàn)集中控制
- 數(shù)據(jù)一致性和可維護性,以確保數(shù)據(jù)的安全性和可靠性
- 故障恢復
二、數(shù)據(jù)庫的使用
進入數(shù)據(jù)庫
1、打開xampp(max版)
2、點擊Go To Application 進入網(wǎng)站
3、進入網(wǎng)站后,發(fā)現(xiàn)左邊側(cè)邊欄下面,有一個phpMyAdmin,點擊進入,進入之后就會發(fā)現(xiàn)他是我們的一個在線數(shù)據(jù)庫
數(shù)據(jù)庫的創(chuàng)建
1、 點擊數(shù)據(jù)庫,創(chuàng)建一個新的數(shù)據(jù)庫,數(shù)據(jù)規(guī)則我們一般選擇utf8_bin

2、點擊進入數(shù)據(jù)庫,創(chuàng)建一個數(shù)據(jù)表,字段可以選擇,里面的名字可以相當于execl表的列名

3、輸入完選項后點擊執(zhí)行,則可以看到全部的結(jié)構

三、 數(shù)據(jù)庫語句
1、增
點擊SQL 可以看到如下圖(SQL.pnp)所示的頁面,然后我們點擊圖片中所顯示的?INSERT 按鈕,會出現(xiàn)如圖 sql1.png的顯示


圖片中所顯示的就是對應的 insert into
表格名 (屬性1,屬性2,屬性3,...) values (屬性1值,?屬性2值,屬性3值);insert into 和 values 都是關鍵字 ,其中表格名后面對應的屬性可以省略,系統(tǒng)會根據(jù)你的表格結(jié)構順序默認書寫,主鍵不能重復,因此我們通常將它設為自增長,所以不填主鍵也可以,系統(tǒng)會幫我們自動填寫一個數(shù)字。
主鍵的特點:不能為空(非自增情況,且類型為數(shù)字類型),不能重復
2、查
同樣進入SQL的 我們可以看到 一個SELECT * 和SELECT
查詢語句
SELECT 列名1,列名2.....from 表名 where 條件
SELECT 列名1,列名2.....from 表名 如果我們不寫條件,那么所有的數(shù)據(jù)都會被顯示出來,
SELECT 列名1,列名2.....from 表名 where 條件, 如果我們查找s_name=“王五”的人 那么條件就是s_name=“王五”,查找到的結(jié)果如圖sql2.png


如果我們查找s_id=2并且s_name=“王五”,那么可寫成
SELECT id,name,sex from Student where s_name="王五" and s_id=2;結(jié)果如下

注意:1、我們在查詢的時候,SELECT 后的順序就是查詢后顯示的順序
2、沒有對應列名的話,查詢出來的結(jié)果就沒有該列
3、列名如果用*代替,代表表格創(chuàng)建時的默認順序顯示
4、where判斷條件寫法是:列名=“值” and 列名 =“值”
查詢語句還有其他的分支
限制語句
limit 1,表示只查詢記錄中的一條
limit 5,表示查詢5條
limit start,size 從第start位置開始查詢size條
select 字段 from 表名 where 條件 limit start,size
排序 order by
desc 根據(jù)字段的值 降序
ASC 根據(jù)字段值 升序
帶排序的查詢語句
select 字段(*) from 表名 where 條件 order by desc|asc limit start,size
分組統(tǒng)計查詢
select count(*) from 表名 //獲取所有的行數(shù)
select count(*) as num from 表名 // 將count結(jié)果作為一個字段名檢索
分組 group by 字段名 根據(jù)某個字段進行分組查詢
例如:select city,count(*) as num from `student` groud by city
//索引可以提高查詢速度
//索引會降低插入,修改速度
求和 sum
select sum(age) from `student` //求所有行數(shù)的age字段的總和
求平均值 avg()
select avg(age) from `student` //求年齡的平均值
查最大值max()與最小值min()
select max(age) from `student`
select min(age) from `student`
3、更新語句
update 表名 set 字段1=‘新的值’,字段2=‘新的值2’ where 條件//
example:
update Student set ?s_sex=“女” where name=‘?王五’;
如果我不寫where 判斷語句,那么所有的人的性別都會被改成 女的,也就是說如果where沒寫,則會影響所有的行
注意:
- 如果where判斷沒寫,則會影響所有的行
4、刪除語句
delete form 表名 where 條件(如:
name='ysh')
如果我們刪除id=1的數(shù)據(jù),如下圖

刪除數(shù)據(jù)不是說只是刪除id這個列,而是刪除id=2的這一個整行
注意:
1、刪除是刪除一整條數(shù)據(jù),不能刪除一條數(shù)據(jù)的某一個列
2、如果不要where判斷語句,那么默認刪除的就是所有的數(shù)據(jù)
3、一般刪除操作很少做,有備份的話可以