上篇文章為大家介紹了《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可以修改欄位名稱
修改欄位排列排序
#[first|after欄位名稱]這個選擇可以用來修改欄位在表格中的位置,新增欄位預設是載入在表格中最後位置,而change/modify預設不會改變
欄位位置
更改表名
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等排序和限制排序:
聚合
使用者需要進行一些總計操作,這就需要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中文網其他相關文章!