PHP学习笔记(5)

数据库的一些基本操作

一、数据库的连接及使用

1、连接数据库:先输入”mysql (-hlocalhost) -uroot -p”命令(有些时候 -hlocalhost可以省略),然后输入密码即可。(注:mysql要处于启动状态)

2、列出数据表:

1
SHOW DATABASES;	(注:不要漏掉分号";")

3、选择数据库:

1
USE 数据库名;

4、列出数据表:

1
SHOW TABLES;

5、显示表的相关信息:

1
DESC 表名称;

二、数据库的增、删

6、创建数据库:

1
CREATE DATABASE 数据库名;

7、删除数据库:

1
DROP DATABASE;

8、创建表:

1
2
3
4
5
6
CREATE TABLE 表
(
字段名称1 数据类型1 字段约束条件,
字段名称2 数据类型1 字段约束条件,

);

9、删除表:

1
DROP TABLE 表名;

三、数据库的修改

10、表的修改:

(1)表名的修改:

1
ALTER TABLE 原表名 RENANE 新表名;

(2)增加表字段:

1
ALTER TABLE 表名 ADD (column) 字段名 新字段的数据类型;

(3)删除表字段:

1
ALTER TABLE 表名 DROP (column) 字段名;

(4)修改表字段类型:

1
ALTER TABLE 表名 MODIFY 字段名 字段数据类型;

(5)修改表字段名称:

1
ALTER TABLE 表名 CHANGE 原字段名 新字段名 新字段的数据类型;

四、数据库的查找

11、查找表里的全部信息

1
SELECT * FROM 表名 ;

12、按一定条件查找表的信息

1
SELECT * FROM 表名 WHERE 条件;

13、查询不重复的记录

1
2
select distinct 字段 from 表名;
//若有重复的,则只返回其中一个

14、排序和限制
排序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
	asc:由低到高排序,也是默认值

select * from 表名 order by 字段名 asc;

desc:由高到低排序

select * from 表名 order by 字段名 desc;

多个字段排序
select * from 表名 order by 字段1 desc,字段2 asc;

限制:
在语句的最后面加上(limit 数字1, 数字2) 来进行查询限制
数字1:从第几条开始查询
数字2:一共查询几条数据

15、聚合
1)sum求和

1
select sum(字段名) from 表名;

2)count记录总数

1
select count(*|字段名) from 表名;

3)max最大值

1
select max(字段名) from 表名;

4)min最小值

1
select min(字段名) from 表名;

5)group by (分类汇总)

1
select 字段a,sum(字段1) from 表名 group by 字段a;//按字段a来汇总字段1

6)with rollup(对汇总后的数据再进行汇总)

1
select sum(字段1) from 表名 group by 字段a with rollup;(对汇总过的字段a再进行汇总)

7)having (对聚合分类后的结果进行筛选)

1
select 字段1,sum(字段1) from 表名 group by 字段a having sum(字段1)>100;

注意:having和where的区别在于having是对聚合后的结果进行筛选,而where是对聚合前的结果进行筛选。

16、表链接
需要查询多个表中的数据
1)内连接:选取几张表中相互匹配的内容

1
select * from 表1,表2,... where 表1.字段=表2.字段;

2)外连接:先显示两张匹配的记录,再显示不匹配的记录

1
2
3
4
5
6
7
左连接:显示左边表中的所有记录,右边显示与左边匹配的内容

select * from 表1 left join 表2 on 表1.字段=表2.字段;

右连接:显示右边表中的所有记录,左边显示与右边匹配的内容

select * from 表1 right join 表2 on 表1.字段=表2.字段;

select 语句可以给字段和表起别名,只要将别名写在原名之后就行了,然后就可以对别名进行操作

17、子查询
当一个查询需要另外一个查询结果参与的时候就要用到子查询

1)in

1
2
select * from 表1 where 字段1 in(select 字段2 from 表2);//(字段1和字段2的类型要相同)
//**注意** :in 后面的子语句必须只返回一个字段,若查询结果唯一(只有一条)可以使用 = 代替 in

2)not in

1
2
select * from 表1 where 字段1 in(select 字段2 from 表2);
用法与 in 的相反

3)exists

1
2
select 语句 where exists (select 语句);
exists 后面的select 语句只会返回bool 类型的值;

4)not exists

1
2
select 语句 where not exists (select 语句);
//与exists 的用法相反

18、记录联合

查询几张表并把它们拼在一起张表并把它们拼在一起

1
2
3
select 语句 union select 语句;//有去重作用

select 语句 union all select 语句;//没有有去重作用

五、数据的填入与删除

19、数据的插入:

1
INSERT INTO 表名 (字段1,字段2,…)VALUES(值1,值2,…);

20、数据的更新:

1
UPDATE 表名 SET 字段1=值1,字段2=值2,…WHERE 条件;

21、数据的删除:

1
DELETE FROM 表名 WHERE 条件;
文章目录
  1. 1. 数据库的一些基本操作
    1. 1.1. 一、数据库的连接及使用
    2. 1.2. 二、数据库的增、删
    3. 1.3. 三、数据库的修改
    4. 1.4. 四、数据库的查找
    5. 1.5. 五、数据的填入与删除
|