PHP中資料庫的基本知識點有哪些?基本語句?基本概念?

慕斯
發布: 2023-03-10 16:30:01
原創
2761 人瀏覽過

上篇文章為大家介紹了《PHP中作用域劃分為哪幾種?作用域能夠被存取的區域是? 》,本文繼續跟大家介紹PHP中資料庫的基本知識點有哪些?基本語句?基本概念?有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

PHP中資料庫的基本知識點有哪些?基本語句?基本概念?

資料庫基本概念

命令結束符號:「\g」或是「;」

Mysql支援資料型別:

  • 數值型

  • #整數型別

Tinyint、smallint、mediumint、 int和bigint

 Ddl語句(指令大小寫都可以)

# 建立資料庫

 Create database 数据库名
登入後複製

選擇要操作的資料庫:use資料庫;對於要操作的資料庫我們需要使用use來選擇

 查看資料庫中的所有資料表show tables

 刪除資料庫

 Drop database 数据库名称
登入後複製

建立表格(在某個資料庫裡面建立表,需要先使用use選擇到要操作的資料庫裡)

Create table 表名(

欄位1名字 欄位1類型 列的限制條件,

字段2名字 字段2類型 列的約束條件,

建立完表之後可以查看表單定義

Desc 表名;
登入後複製

查看建立表格的SQL語句

 Show create table 表名\G(\G选项使得记录能按照字段竖向排列,一遍更好展示内容较长的记录,\G之后不需要加分号)
登入後複製

 刪除表

Drop table 表名;
登入後複製

修改表格欄位類型

 Alter table 表名 modify [colimn] 字段定义 [first|after字段名];
登入後複製

增加表格欄位##

Alter table 表名 add [colimn] 字段定义 [first|after字段名];
登入後複製

刪除表格欄位

Alter table 表名 change [colimn] 旧的字段名 字段定义 [first|after字段名];
登入後複製

註:change與modify都可以修改表格的定義,不同的是change後面需要解兩次列名,不是特別方便,優點是

change可以修改欄位名稱

修改欄位排列排序

#[first|after欄位名稱]這個選擇可以用來修改欄位在表格中的位置,新增欄位預設是載入在表格中最後位置,而

change/modify預設不會改變欄位位置

註:change/first|after 欄位名稱這些關鍵字都是屬於mysql在標準sql上的擴展,在其他資料庫上不一定適用

更改表名

After table 表名 rename [to] 新的表名
Dml语句
登入後複製

插入記錄

#Insert into 表名(字段1,字段2, ...,字段n) values(值1,值2,... ,值n);

#可以不用指定字段名,但是

values後面的順序應該與字段排序一致

 一次插入多筆記錄

Insert into 表名(字段1,字段2, ...,字段n)

Values

(值1,值2,... ,值n),

(值1,值2,.. . ,值n)

;

查詢記錄#

select * from 表名 where 条件;(*代表你查询表里的所有字段,如果我们查询某一字段,只需要将*改成那一字段即可。)
登入後複製

 查詢不重複的記錄#

Select distinct 字段1,字段2 from 表名;(只要字段1,字段2任何一个字段有不同就会被选择,一般用于distinct,只筛选一个字段)
登入後複製

 條件查詢

註:條件查詢比較符號:=,<,>,>=,<=,!=等比較運算符,多個條件之間可以使用or and等

排序和限制

排序:

  • asc:由低到高,也是預設值select * from 表名 order by 欄位名稱 asc;

  • desc:由高到底select * from 表名 order by欄位名稱 desc;

  • #多個欄位排序select * from 表名 order by 欄位名稱 desc,id desc;

  • 數字1代表從第幾筆記錄開始取(是從0開始的),數字2代表取幾條!

聚合

使用者需要進行一些總計操作,這就需要sql聚合操作。

①sum求和select sum(欄位名稱) from 表名;

②count記錄總數select count(*|欄位名稱) from 表名;

③max最大值select max(欄位名稱) from 表名;

④min最小值select min(欄位名稱) from 表名;

⑤GROUP BY分類聚合select department,sum(salary) from employee group by department ;

⑥WITH ROLLUP分類聚合後的結果進行再匯總select sum(salary) from employee group by department with rollup;

⑦HAVING

注意:having和where的差別在於,having是對聚合後的結果進行條件過濾,而where是在聚合前就對記錄進行過濾,應該盡可能的對記錄進行先過濾!

select sum(salary) from employee group by department having sum(salary)>1000;
在一起使用:select sum(id),max(id),min(id),count(*) from a1;
登入後複製

表格連接(顯示多個表中欄位時可以使用)

連接分類

 內連線:選取兩張表格中相互配對的記錄(select 表.欄位,....  from 表1名,表2名,...  where [符合的條件如表1.欄位=表2.欄位];)

select 語句可以給欄位起別名!直接寫在需要查詢顯示的欄位的後面就行,也可以給表起別名

外連接:不僅僅選取兩張相互匹配的記錄,其他不符的記錄也會查詢出來

左連接#

  • 包含左边表中的所有记录(包括右表中没有和它匹配的记录)select * from 表1 left join 表2 on 表1.字段=表2.字段;

  • 包含右边表中的所有记录(包括左表中没有和它匹配的记录)

  • 左连接和右连接是可以相互转换的!

  • 子查询(一个查询需要另外一个查询的结果参与的时候)

用于子查询的关键字:

in在..里面(注意点 in后面的子语句必须只返回一个字段,若查询结果唯一(只有一条)可以使用=代替in,not in与in相反)

语法:select * from 表名1 where 字段1 in(select 字段2 from 表2);
登入後複製

Exists(后面那个子语句有没有查询出记录来,如果查询出记录来返回true,否则就是false,并且查询出来的记录的具体的值是NULL也可以,也是返回true.)

语法:select语句 where exists(select 语句);
登入後複製

not exits(与exists相反)

记录联合(我们常常会碰到需要将两个表或者多个表的数据按照一定的查询条件查询出来后,将结果合并到一起显示这是就需要用到记录联合)

多个select 语句用UNION或者UNION ALL隔开即可实现

区别: 前者会将多个查询结果合并后并且进行去除重复后返回,后者 则直接合并并不去除重复

联合的条件:查询的列个数要相等

更新记录

更新一个表

Update 表名 set 字段1=值1,字段2=值2,...,字段n=值n[where条件];
登入後複製

更新多个表中数据

Update 表1,表2,...表n  set 表1.字段1=表达式1,...,表n.字段n=表达式n[where条件];
登入後複製

注:多表更新更多是用在根据一个标的字段来动态更新另一表的字段

推荐学习:php视频教程

 

以上是PHP中資料庫的基本知識點有哪些?基本語句?基本概念?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板