sql查询语句
<body>
<!--
SQL查询语句
一个项目中,库操作,表结构操作,字段操作,数据操作都是固定语法形式
要想实现代码功能,代码内容都是固定不变的,大部分只要复制粘贴,修改名称和设定就可以了
查询语句,是一个非常灵活,非常复杂的语句内容,
SQL语句的逻辑运算符
JavaScript和PHP中,
逻辑与 && 逻辑或 || 逻辑非 !
SQL语句中
逻辑与 AND 逻辑或 OR 逻辑非 NOT
每一个SQL查询语句,都不相同
如果没有符合条件的查询结果,不会报错,查询结果是空
1,查询表结构中,所有字段的所有数据
SELECT * FROM `表名`;
2,查询表结构中,指定字段的所有数据
多个字段使用逗号间隔
SELECT `字段1`,`字段2`,`字段3`.... FROM `表名`;
3,查询表结构中,符合约束条件的字段
SQL查询语句,执行,要根据项目需求而定
SELECT 字段的设定 FROM `表名` 约束条件;
约束条件:
(1) WHERE 对字段中数据的约束条件
SELECT * FROM `表名` 约束条件 WHERE `字段` 数值设定;
(2) 模糊查询 只要数据包含关键字,即可
% _ 占位符,没有实际数据内容,只是表示指代或者替换
% 替换任意长度的任意内容
_ 替换一个长度的任意内容
SELECT * FROM `表名` 约束条件 WHERE `字段` LIKE '%或者_关键词';
(3) 设定查询显示顺序
默认的显示顺序,根据id字段,从 小--大 升序排列
可以设定,按照某个字段的 升序ASC 小--大 或者 降序DESC 大--小 来排列
字段默认的排序是 升序 ASC 可以不写
SELECT * FROM `表名` ORDER BY `字段名` 排序方式;
多个字段的顺序排列
可以同时设定多个字段的排序方式,之间使用过逗号间隔
一般是按照某个字段排序,再按照id字段排序
具体排序,会先按照第一个字段数据的顺序排序
然后相同的数据的顺序,会按照第二个字段的顺序再次排序
SELECT * FROM `表名` ORDER BY `字段名1` 排序方式 , `字段名2` 排序方式;
如果有WHERE和ORDER BY 排序,要先写 WHERE关键词
分页查询
按照指定的设定,来显示部分的查询结果
默认会显示所有的符合条件的查询结果
设定分页显示/分页查询,只会显示部分内容
LIMIT 分页查询语句
参数1:设定的显示数据内容的起始数据索引下标
参数2:设定的显示数据内容的数据数据数量
SELECT 字段设定 FROM `表名` 约束条件 LIMIT 参数1 , 参数2;
也可以和其他约束条件配合,语法顺序是
SELECT 字段设定 FROM `表名` WHERE 字段约束 ORDER BY 字段 排序方式 LIMIT 分页查询;
总结公式:
参数1:显示数据的起始索引下标
参数2:显示数据的数量
页面显示 line 条数据,第n页,显示的数据内容的设定
参数1: (n-1)*line
参数2: line
LIMIT (n-1)*line , line
-->
</body>
sql文件实例
– 查询表结构所有字段
SELECT * FROM student
;
– 查询表结构指定字段
±- 查询表结构中,符合约束条件的字段
– 1,WHERE 对字段数据的约束
– 查询 id字段 数值是 100的数据
SELECT * FROM student
WHERE id
= 100;
– 查询 id字段 数值是 100-200之间的数值
SELECT * FROM student
WHERE id
>= 100 AND id
<= 200 ;
– 查询 id字段 数值是 100-200之间,并且年龄是 20-30岁之间的数值
SELECT * FROM student
WHERE (id
>= 100 AND id
<= 200) AND (age
>= 20 AND age
<= 25) ;
– 查询 id字段 数值是 100-200之间,并且年龄是 20-30岁之间的数值
– 只显示id和name字段
SELECT id
,name
FROM student
WHERE (id
>= 100 AND id
<= 200) AND (age
>= 20 AND age
<= 25) ;
– 查询 姓名中,姓何的数据
– 什么叫姓何 ? 名字中,第一个字是何,其他字是什么不管,有几个字不管
– 对何字之后,内容的长度不管,具体是什么内容,也不管,使用 %
SELECT id
,name
FROM student
WHERE name
LIKE ‘何%’;
– 查询 姓名中,带有一字的数据
– 一字前有什么,不管,一字后有什么不管,只要有一就行
SELECT id
,name
FROM student
WHERE name
LIKE ‘%一%’;
– 查询 姓名中 姓何的,名字是2个字的数据
– 姓何 ,第一个字是何
– 名字是两个字,除了姓何字外,还可以有任意1个字符,字符内容任意
SELECT id
,name
FROM student
WHERE name
LIKE ‘何_’;
– 查询 姓名中 姓何的,名字是3个字的数据
– 姓何 ,第一个字是何
– 名字是两个字,除了姓何字外,还可以有任意2个字符,字符内容任意
SELECT id
,name
FROM student
WHERE name
LIKE ‘何__’;
– 查询 姓名中 姓何的,名字是3个字的,第二个字是一的
– 姓何 ,第一个字是何,第二个字是一,第三个字是任意字符
SELECT id
,name
FROM student
WHERE name
LIKE ‘何一_’;
– 查询 姓名中 姓何的,名字是3个字的,第三个字是一的
– 姓何 ,第一个字是何,第二个字是任意字符,第三个字是一
SELECT id
,name
FROM student
WHERE name
LIKE ‘何_一’;
– 排序方式
– 按照年龄的 升序排列 小 – 大
SELECT id
,name
,age
FROM student
ORDER BY age
ASC;
– 按照年龄的 降序排列 大 – 小
SELECT id
,name
,age
FROM student
ORDER BY age
DESC;
– 按照年龄的 升序排列 小 – 大 和 id字段的 升序
– age字段,数值相同的数据,再按照 id 的升序排列
SELECT id
,name
,age
FROM student
ORDER BY age
ASC , id
ASC ;
– 按照年龄的 升序排列 小 – 大 和 id字段的 降序
SELECT id
,name
,age
FROM student
ORDER BY age
, id
DESC ;
– 查询姓何的人员,按照年龄的 升序 id 的升序排序
SELECT id
,name
,age
FROM student
WHERE name
LIKE ‘何%’ ORDER BY age
, id
;
– 分页查询
– 第n条数据,索引应该是n-1
– 从第一条数据,也就是索引是0的数据开始,显示,显示10条数据
SELECT id
,name
,age
FROM student
LIMIT 0 , 10;
– 查询 姓何的,年龄最大的5个人,按照id升序排列
– 姓何 WHERE name
LIKE ‘何%’ 模糊查询
– 年龄最大 年龄 是 降序 大 – 小
– 再按照id升序拍列 id
– 最大的5人 LIMIT 0 , 5
SELECT id
,name
,age
FROM student
WHERE name
LIKE ‘何%’ ORDER BY age
DESC , id
LIMIT 0,5;
– 查询 姓何的,年龄最大的第5-10人,按照id升序排列
– 第5-10人 从索引是4开始,显示6个人,也就是6条数据
SELECT id
,name
,age
FROM student
WHERE name
LIKE ‘何%’ ORDER BY age
DESC , id
LIMIT 4,6;
PHP操作数据库
<!--
PHP来操作数据库
SQL语句是操作数据库的计算机语言
不管是什么方式,本质上,都是在执行SQL语句,只是执行方式不同
普通的执行方式,通过cmd命令行,才执行SQL语句,执行结果,只存在于cmd命令行中
前端页面,后端程序php,java 等无法使用其中的数据的
MySQL-front 可视化软件,本质也是在执行SQL语句
操作结果,也是只存在于可视化软件中,其他程序也是无法使用
PHP的本质也是在PHP程序中,运行SQL语句,来操作数据库
PHP提供了专门的方法,来对MySQL数据库进行操作
并且获取操作结果,在PHP程序中
方法有3种方法
mysql 函数库 弃勇
mysqli函数库
PDO函数库 必须7.0以上版本才可以
PHP中通过PHP提供的函数库,来运行指定的函数方法,来才做MySQL数据库
php_mysqli 函数库,操作MySQL书库的语法和步骤,基本固定的形式
通过mysqli函数库方法,来操作MySQL数据库固定步骤
1,链接,登录
$link = mysqli_connect(地址,账号,密码,库名,端口);
2,定义要执行的SQL语句
$sql = "SQL语句";
3,执行SQL语句
$result = mysqli_query($link,$sql);
4,获取执行结果
$arr = mysqli_fetch_all($result , MYSQLI_ASSOC);
5,关闭数据库
mysqli_close($link);
1,链接登录MySQL数据库
mysqli_connect() 连接登录数据库的方法
参数1:MySQL数据库的地址
当前使用的是本地数据库
'localhost' 或者 '127.0.0.1'
参数2:登录MySQL的账号
'root'
参数3:登录MySQL的密码
'root'
参数4:使用数据库的名称
'nz2002'
参数5:MySQL数据库的端口号
3306
$link = mysqli_connect('localhost','root','root','nz2002',3306);
2,定义SQL语句
将我们要执行的SQL语句,定义成字符串的形式
最外一定要使用 " " 双引号包裹,为了解析变量
双引号之内,只能使用单引号
SQL语句,可以没有分号结尾
主要注意编码格式
$sql = "SQL语句";
3,执行SQL语句
执行结果是 结果集对象
对象中有执行结果,但是无法直接使用
$result = mysqli_query($link , $sql);
4,获取SQL语句执行结果
从结果集对象中,抽取具体的数据内容,组成新的数组,二维数组
mysqli_fetch_all($result , MYSQLI_ASSOC)
$arr = mysqli_fetch_all($result , MYSQLI_ASSOC);
5,关闭mysql数据库
链接的那个数据库,就关闭那个数据库
mysqli_close($link);
6,如果需要,要在执行SQL语句之前,设定编码格式
mysqli_query($link , "SET NAMES uft8或者gbk");
会影响中文的显示和查询
7,mysqli_query($link , $sql);
如果 mysqli_query 执行的是 查询语句,执行结果是结果集对象
如果 mysqli_query 执行的是 非查询语句,执行结果是 布尔类型 true成功 false失败
如果执行结果是布尔类型,不能使用 mysqli_fetch_all 来获取数组
只有查询语句,可以使用 mysqli_fetch_all 来获取数组
-->
php操作数据库实例
?php
// PHP操作MySQL数据库的方法和步骤
// 1,登录MySQL数据库
// 如果连接成功,返回一个对象,其中存储很多的连接信息
// 如果连接失败,程序执行报错
// 参数1:连接MySQL数据库地址
// 当前是本地数据库 ‘localhost’ 或者 ‘127.0.0.1’
// 参数2:连接MySQL数据库账号
// ‘root’
// 参数3:连接MySQL数据库密码
// ‘root’
// 参数4:连接MySQL数据库,指定使用的库
// ‘nz2002’
// 参数5:连接MySQL数据库端口
// 3306
// 实际项目中,会给定,MySQL的地址,账号,密码,库名,端口
// 给你什么,你就输入什么就可以了
// 参数内容是项目中给定的,参数的顺序,不能变
$link = mysqli_connect(‘localhost’,‘root’,‘root’,‘nz2002’,3306);
echo ‘
’;’;
print_r($link);
echo ‘
// 2,设定需要执行的SQL语句
// SQL语句,要根据实际项目需求而定
// 目前查询所有姓何的人员名单
// 问题:
// 1,定义的SQL语句,实际上就是你需要执行的SQL语句程序,以字符串的形式来定义
// 2,定义SQL语句,最外层,要使用双引号,为了如果有变量,可以解析变量
// 3,双引号之内,只能使用单引号
// 4,定义的SQL语句中,可以没有分号结束
// 因为此时并不是真的执行SQL语句,只是来定义
// 5,变量一定要会用{}包裹,防止发生冲突
// 6,要确保编码格式正常,这样才能正常的查询设定中文
$str = ‘name’;
// 查询结果,mysqli_query()执行结果是结果集对象
KaTeX parse error: Expected '}', got 'EOF' at end of input: …udent` WHERE `{str}` LIKE ‘何%’";
// 给student表结构中,age字段的 所有数据,都+1
$sql2 = “UPDATE student
SET age
= age
+1”;
// 2.5,设定SQL语句的编码格式
// 只要数据库格式设定正确,一般都可以保证编码格式是utf8
// 为了保险起见,或者查询结果中,中文显示是乱码
// 可以指定编码格式是utf8
mysqli_query($link,“SET NAMES utf8”);
// 3,执行SQL语句
// mysqli_query() 执行SQL语句的方法
// 参数1:链接MySQL数据集的执行结果对象
// 要使用连接成功后,对象中的相关信息
// 参数2:定义的SQL语句
// 查询结果是一个对象形式
// 如果编码格式设定有问题,执行结果,就会有问题,执行就会报错
r
e
s
u
l
t
=
m
y
s
q
l
i
q
u
e
r
y
(
result = mysqli_query(
result=mysqliquery(link,$sql2);
var_dump($result);
echo ‘
’;’;
print_r($result);
echo ‘
// 获取具体的执行结果
// 从结果集对象中,抽取具体的数据内容
// 组成新的数组形式存储
// 参数1:执行SQL语句的结果集对象
// 参数2:设定数组的索引下标的形式
// MYSQLI_ASSOC 数组索引下标,是字段名称
// 数组形式与数据库内容形式相互对应
// a r r = m y s q l i f e t c h a l l ( arr = mysqli_fetch_all( arr=mysqlifetchall(result,MYSQLI_ASSOC);
// echo ‘
’;’;
// print_r($arr);
// echo ‘
// 操作结束,关闭数据库
// 参数:链接数据库结果
mysqli_close($link);