SQL语句
库操作
建立库
CREATE DATABASE IF NOT EXISTS `库名`
DEFAULT CHARACTER SET = utf8;
查看库
查看所有
SHOW DATABASES;
查看建立方式
SHOW CREATE DATABASE IF NOT EXISTS `库名`;
查看正在使用的
SELECT DATABASE();
使用库
USE `库名`;
删除库
DROP DATABASE IF EXISTS `库名`;
修改库 只能修改库的编码格式,不能修改库名
ALTER DATABASE `库名` DEFAULT CHARACTER SET = 编码格式;
表操作
创建 至少要有一个字段
CREATE TABLE IF NOT EXISTS `表名`(
字段名称 数据类型 属性 约束条件 注释,
字段名称 数据类型 属性 约束条件 注释
)ENGINE = innoDB DEFAULT CHARACTER SET = utf8 COMMENT '注释内容';
查看表结构
查看所有
SHOW TABLES;
查看创建方式
SHOW CREATE TABLE `表名`;
查看字段
DESC `表名`;
修改表结构 修改 引擎 编码格式 注释
ALTER TABLE `表名` ENGINE = 引擎 CHARACTER SET = utf8 COMMENT '注释内容';
删除表结构
DROP TABLE `表名`;
字段操作 --- 字段的修改等操作,一定要在没有数据时做修改
修改
修改字段名称和设定
ALTER TABLE `表名`
CHANGE 旧字段名 新字段名 数据类型 属性 约束条件 注释;
修改属性
ALTER TABLE `表名`
MODIFY 字段名 数据类型 属性 约束条件 注释;
删除
ALTER TABLE `表名` DROP `字段名`;
新增
在所有字段之后新增
ALTER TABLE `表名` ADD `字段名` 数据类型 属性 约束条件 注释 ;
在所有字段之前新增
ALTER TABLE `表名` ADD `字段名` 数据类型 属性 约束条件 注释 FIRST;
在指定字段之后新增
ALTER TABLE `表名` ADD `字段名` 数据类型 属性 约束条件 AFTER 指定字段名 ;
数据操作
新增
给所有字段新增数据 -- 数据必须和所有的字段一一对应
INSERT INTO `表名` VALUES (数据);
给所有字段新增数据 -- 数据必须和小括号中,指定的字段一一对应
INSERT INTO `表名` (`字段1`,`字段2`...) VALUES (数据1,数据2...);
修改
给指定字段的所有数据,更新数值
UPDATE `表名` SET `字段` = 数值;
给符合条件的指定字段的数据,更新数值
只能加WHERE 约束条件
UPDATE `表名` SET `字段` = 数值 WHERE 约束条件;
删除
删除所有数据,但是保留id主键值
DELETE FROM `表名`;
删除符合条件的数据,但是保留id主键值
DELETE FROM `表名` WHERE 约束条件;
删除所有的数据,不保留id主键值
TRUNCATE TABLE `表名`;
数据查询
1,查询所有
SELECT * FROM `表名`;
2,查询指定字段
SELECT `字段名1`,`字段名2`... FROM `表名`;
3,查询符合约束条件的字段
SELECT `字段名1`,`字段名2`... FROM `表名` WHERE 约束条件;
模糊查询: 占位符 % 任意长度的任意内容 _ 一个长度的任意内容
SELECT `字段名1`,`字段名2`... FROM `表名` WHERE `字段名` LIKE '%或_配合关键词';
4,查询符合约束条件的字段,按照指定字段排序
排序方式 : ASC 升序 小 -- 大 默认值,可以不写
DESC 降序 大 -- 小
SELECT `字段名1`,`字段名2`... FROM `表名` WHERE 约束条件 ORDER BY `字段` 排序方式;
排序字段可以是多个,一般第二个是id主键值字段
SELECT `字段名1`,`字段名2`... FROM `表名` WHERE 约束条件 ORDER BY `字段1` 排序方式,`id` 排序方式;
5,分页显示
LIMIT 参数1,参数2;
参数1:显示起始数据的索引下标
参数2:显示数据的数量
如果是按照页面来显示数据,参数1,计算公式 (显示页数-1)*参数2
SELECT `字段名1`,`字段名2`... FROM `表名` WHERE 约束条件 ORDER BY `字段1` 排序方式,`id` 排序方式 LIMIT 参数1,参数2;
其他内容:
设定数据库编码格式:
SET NAMES utf8 / gbk;
不是真正的修改数据库的编码格式
是设定当前数据库数据,显示的编码格式
不修改数据库原始的编码格式
SQL语句中,逻辑运算符
逻辑与 AND 逻辑或 OR 逻辑非 NOT
mysqli操作数据库
1,连接数据库
$link = mysqli_connect(地址,账号,密码,库名,端口);
2,定义SQL语句
一般使用双引号,为了解析变量
$sql = "SQL语句";
3,执行SQL语句
执行查询语句,$result是结果集对象
执行非查询语句,$result是布尔类型
$result = mysqli_query($link,$sql);
4,获取查询结果
抽取结果集对象中的所有数据信息,组成一个二维数组
MYSQLI_ASSOC,设定二维数组的索引是数组库对应的字段
$arr = mysqli_fetch_all($result , MYSQLI_ASSOC);
5,关闭数据库
mysqli_close($link);
前后端数据交互之form表单
1,form表单的设定,3个属性
action : 传参的对象,当前是一个PHP文件
method : 传参的方式 get / post
enctype: 上传文件专有属性
属性值是固定格式 multipart/form-data
method必须是post
2,传参标签的设定
(1),传参标签,必须有name属性值
前端标签,name属性,作为存储标签数据的容器
没有这个容器无法存储数据,完成传参
实际传参也是传参的name属性值,这个容器
接收容器,解析容器中存储的数据数值
(2),传参的数据
可以是前端标签输入的数据 text,password,url....
可以是前端标签,通过选择,选择的数据 select file...
可以是前端标签,value属性的属性值 radio checkbox hidden...
只要给标签正确的设定数据,就可以
(3),如果多个标签,name属性值相同,也就是容器的名称相同
value属性值不同,也就是传参数据不同
name属性值,必须添加[]
如果不添加[],是对同一个容器重复赋值,后赋值的数据会覆盖之前的数据,最终只会传参最后一个数据
如果添加[],是以数组的形式,存储所有的传参数据
(4),文件上传的多选
方法1:通过多个input标签 --- 不推荐的
方法2:通过给input标签,添加多选属性 multiple, name属性值后加[]
(5),multipart/form-data 含义
input标签,上传文件,默认只能上传文本格式的内容 .txt .word
不能上传其他格式的文件,比如图片,音频,视频等...
multipart/form-data 意义是 将 其他格式的文档,转化为 二进制数据流 (就是一串二进制的字符串)
其他格式的文件就可以转化为 input标签,可以上传的内容形式
3,特别说明:在PHP中要正常显示中文
(1),确保PHP能正常显示中文
PHP如果是7.0以上的版本,默认带有响应头,可以正常显示中文
PHP如果是7.0以下的版本,必须要添加PHP响应头,才能正常显示中文
header("content-type:text/html;charset=utf-8");
(2),确保数据库的编码格式,与显示环境的编码格式统一
在数据库中,设定的编码格式,会体现在数据的数据中,但是我们看不到效果
必须要与显示环境的编码格式统一
数据库设定的编码格式是utf8
显示环境1: 可视化工具 MySQL-front
设定数据库可以是任意编码格式,都能正常显示
显示环境2: cmd命令行
cmd命令行的显示编码格式是 gbk
如果 数据库编码格式 是 utf8 ,会显示为乱码
必须让 数据库编码格式 也是 gbk ,才能正常显示中文
SET NAMES gbk;
显示环境3: 前端页面
前端页面的显示编码格式是 utf8
如果 数据库编码格式 是 gbk ,会显示为乱码
必须让 数据库编码格式 也是 utf8 ,才能正常显示中文
mysqli_query($link , "SET NAMES utf8");
常用SQL语句
最新推荐文章于 2024-09-18 14:51:26 发布