JS学习笔记0420

数据库操作

  1. 如果有空白的id主键值
    也就是只有id主键值,但是没有存储数据
    写入数据时可以设定id主键值,给这个空白的id主键值,设定数据内容

  2. 一些错误的写入数据的操作,也会引起id主键值的自增
    会出现没有数据的空白的id主键值
    也可以修改id主键值为空白id主键值
    只要id主键值没有数据,就可以任意操作
    只要id主键值有数据,只能修改数据

  3. 通过外部的SQL文件,来导入外部程序,写入外部数据
    所谓的SQL文件,就是已经设定好SQL语句程序的文件
    导入这个SQL文件,实际上就是在执行这些SQL语句SQL语句
    操作所有关系型数据库的计算机语言
    通过可视化软件MySQL-front操作数据库,实际上本质也是在执行SQL语句
    只是,是通过MySQL-front来执行SQL语句,不是我们自己写SQL语句
    实际中操作数据库,要通过 cmd 来执行SQL语句,来操作数据库

  4. 要配置环境变量
    配置环境变量,让程序可以在cmd中正常的执行运行
    win7操作系统,是 弹出一个编辑输入环境变量位置的输入框
    在已有的环境变量配置的最后
    添加 分号 与之前的环境变量区分
    分号之后,在 复制 bin文件的路径地址
    之后是一路确定
    配置好之后,重启cmd
    输入命令,登录mysql数据库
    输入账号密码 , 就等于 MySQL-front 打开软件,输入账号密码
    -u 是输入账号
    -p 是输入密码
    mysql -uroot -p 点击回车
    设定cmd中显示的编码格式
    cmd中默认的编码格式是gbk
    数据库中,数据的编码格式是utf8
    SET NAMES gbk; // 设定编码格式是gbk
    SET NAMES utf8; // 设定编码格式是utf8

库结构的操作

  1. 指定使用的 库结构

    		 use `库名`;    
    
  2. 创建库结构

                 CREATE DATABASE IF NOT EXISTS `库名`;
                     如果创建的库名已经存在,不会创建新的库结构,并且不会报错 
                 简写  CREATE DATABASE `库名`;
                     如果创建的库名已经存在,程序执行会报错,之后的程序不会执行 
    
  3. 查看库结构
    查看所有的库结构
    SHOW DATABASES;

  4. 查看库结构的设置信息

                SHOW CREATE DATABASE IF NOT EXISTS `库名`;
    
  5. 查看正在使用的库结构
    SELECT DATABASE();

                 DATABASE() 是 MySQL设定 一个 方法函数,作用就是查询正在使用的库结构
    
  6. 删除库结构

                 DROP DATABASE IF EXISTS `库名`; 
                 简写 
                 DROP DATABASE `库名`;
    

表结构的操作

  1. 创建表结构
    每一个表结构都必须有至少一个字段,不能建立一个没有字段的空的表格结构
    如果是多个字段,最后一个字段之后的逗号,必须不要写
                    CREATE TABLE IF NOT EXISTS `表名`(
                        字段1 数据类型 约束条件,
                        字段2 数据类型 约束条件
                    )引擎设定 编码格式设定 注释设定
  1. 查看表结构
    查看所有的表结构
    SHOW TABLES;

  2. 查看表结构的建立方式
    SHOW CREATE TABLE 表名;

  3. 查看表结构中的字段
    DESC 表名;

  4. 删除表结构
    DROP TABLE 表名;

  5. 字段的相关设定
    完整设定一个字段,包括
    字段名称 数据类型 属性 约束条件 注释
    MySQL数据库,数据类型
    输入的数据,与设定的字段的数据类型不符合,无法输入
    字段的数据类型,只要设定的合适就行,越小越好
    例如:存储年龄,年龄不能是负数, 0-255的范围就基本够用了,没有必要设定更大的存储范围,占用更多的存储空间
    哪个字段,使用什么数据类型,会在项目手册中做严格的规定,项目的数据库架构师会设计好 数值类型
    整数类型 通过字段的属性,设定字段的数值范围 是否允许是负数

                        TINYINT(M)   1个字节   存储数值范围  -128  至  127   (默认范围)
                                                 或者         0   至  255   (UNSIGNED)

                        SMALLINT(M)  2个字节   存储数值范围  -32768 至 32767 
                                                 或者      0    至 65535 

                        MEDIUMINT(M) 3个字节    存储数值范围  -8388608 至 8388607 
                                                 或者        0    至 16777215

                        INT(M)       4个字节    存储数值范围  -2147483648 至 2147483647 
                                                 或者        0    至 4294967295
                                                
                        BIGINT(M)    8个字节    存储数值范围  -9223372036854775808 至 9223372036854775807 
                                                 或者               0    至 18446744073709551615                       

浮点数类型

                        FLOAT(M,D)     -3.4e38   至 3.4e38    最多存储7位小数,超出部分无法设定

                        DOUBLE(M,D)    -1.7e308  至 1.7e308   最多存储15位小数,超出部分无法设定

                        DECIMAL(M,D)   组多存储65位数值        最多存储30位小数
                    
                    整数的M值,设定数值位数  TINYINT(1)  只允许存储一位数值  只允许有个位 0-9
                              但是实际中,整合的 M 设定值 不起作用,只要不超出整数的范围,都是可以输入的
                              TINYINT(1)  想限定只能输入1位数值,实际上只要不超过范围,都能输入
                              这个 (1) 是没有用的 整数,一般设定数据类型,也不写 (M) 限定值

                    浮点数的M,D值 : D 值表示 整个数值中,小数部分的位数  
                                     输入数据,超出小数部分,不会存储,会只存储设定部分的小数
                                   M 值表示 整个数值中,所有数值的位数
                            FLOAT(7,3) 存储的小数,整数部分和小数部分,一共是7位
                                       小数部分是3位,整数部分是4位
                                       小数部分多了,可以写入,只存储3位
                                       整数部分多个,不能写入

字符串类型 数值太大的数字,也可以存储为字符串形式,为了节约存储空间

                    CHAR(M)     定长字符串
                                用于存储固定长度的字符串内容  手机号,身份证号,银行卡号
                                存储范围 : 0 至 255个字符

                    VARCHAR(M)  变长字符串
                                用于存储不固定长度的字符串内容  姓名,邮箱,地址...
                                存储范围 : 0 至 65535个字符
                                          如果是中文, 理论上最多存储 21848个字符
                                          同一个表结构中,存储的其他数据类型的长度,也会影响VARCHAR存储的长度
                                          一般都存储不到理论上的最大值

                    TINYTEXT(M)     255个字符
                    TEXT(M)         65535个字符
                    MEDIUMTEXT(M)   16777215个字符
                    LONGTEXT(M)     4294967295个字符 或者 4G

                    M 值,设定存储字符串长度,超出设定不能写入存储

                    一般就是用 CHAR 和 VARCHAR 内容过多,存储成文件的形式,然后读取文件

时间类型

                    YEAR(2或者4)      2位或者4位年份
                    TIME()           格式 HH:MM:SS
                    DATE()           YYYY-MM-DD  1001-01-01 至  9999-12-31
                    DATETIME()       YYYY-MM-DD HH:MM:SS
                                     1000-01-01 00:00:00  9999-12-31 23:59:59
                    TIMESTAMP()      自动存储当前时间

特殊类型
ENUM() 枚举类型,设定输入的数据数值范围,必须是规定的数据
性别: 男,女,保密,其他数据不允许输入
单选效果

SET() 集合类型,输入的数据,必须是符合规定的数据
多选效果

BOOLEAN 布尔类型 0 表示 false 非0 表示 true

字段的属性

字段的属性有两个,都是设定给数值类型的字段
UNSIGNED 设定数值是否可以存储负数
默认数值类型是可以存储负数的
设定 UNSIGNED 只能存储 0 至 正整数 范围的数值

ZEROFILL 设定自动补零操作
设定数值为2位数值,当前只输入一位数值,有ZEROFILL属性,会自动在数值前补零
1 — 01
带有 ZEROFILL 属性的字段 会自动带有 UNSIGNED 属性

字段的约束条件

NOT NULL 不能输入空值 null

DEFAULT 设定默认值,如果要输入默认值,

                                可以输入 DEFAULT 关键词,就会写入设定的默认值

UNIQUE KEY 唯一约束
字段输入的数值不能是重复数值

PRIMARY KEY 主键约束
一个表结构,默认只能有一个字段设定主键约束
设定主键约束的字段,数据不能重复,不能为空
一般与 AUTO_INCREMENT 配合使用

FOREIGN KEY 外键约束
多个表 执行联合查询时会使用的外键约束

字段的注释
COMMENT 对字段的说明

表结构的引擎 编码格式 注释说明
ENGINE innoDB 或者 MyISAM
CHARSET utf8
COMMENT 注释说明

字段相关操作

修改字段,最好是在字段没有输入数据时修改
如果字段已经有了数据,再来修改字段,如果字段设定与已经存在的字段冲突,会造成修改失败
修改字段: 字段的数据类型,属性,约束条件,注释,都需要重新设计
即时你还是原来的设定,也要重新写一遍

                只修改字段名称 
                   ALTER TABLE `表名`
                   CHANGE `旧字段名` `新字段名` 新字段的所有设定

               修改字段的约束条件
                   ALTER TABLE `表名`
                   MODIFY `字段名` 字段的所有设定  
           
           删除字段
               ALTER TABLE `表名` DROP `字段名`;

           新增字段
               在所有字段之后新增字段
                   ALTER TABLE `表名`
                   ADD `字段名` 字段的所有设定;

               在所有字段之前新增字段
                   ALTER TABLE `表名`
                   ADD `字段名` 字段的所有设定 FIRST;

               在指定字段之后新增字段
                   ALTER TABLE `表名`
                   ADD `字段名` 字段的所有设定 AFTER `指定的字段名`;

       数据写入:
           给所有的字段都写入数据
               INSERT INTO `表名` VALUES (数据1,数据2....);
               数据内容必须与字段内容一一对象,不能多也不能少
               如果不想输入,可以使用DEFAULT执行默认值

           给指定的字段写入数据
               INSERT INTO `表名`(`字段1`,`字段2`....) VALUES (数据1,数据2....);
               在()中设定的字段,必须与输入的数据一一对应
               如果不想输入,可以使用DEFAULT执行默认值
               如果设定为NOT NULL的字段,必须有数据的写入,并且不能是NULL

1.复习

面向对象:
主要demo
轮播图 table表格 tab切换/选项卡 放大镜 烟花
概念:所谓的面向对象编程思想,实际上,就是一种编写程序的规范或者是方式思路
通俗的讲: 利用 对象数据类型的特点
将需要参数数据等,定义为对象的属性和属性值
将要执行程序,定义成对象的函数方法
不用重复定义程序代码,只要通过构造函数,创建对象即可
比函数的优点是:调用数据更加方便

原型对象,原型属性,原型链
原型对象:每一个函数都有一个 prototype
原型属性:每一个对象都有一个 proto
原型链 : JavaScript中,每一个数据类型,每一个变量,实际上本质都可以看成一个对象
每一个变量存储的数据类型,都有 proto
通过 proto 将相关的变量串联起来,可以调用相关的数据内容

具体举例: 在构造函数中,定义实例化对象的属性,这个属性会建立在实例化对象本身上
在构造函数中,定义在 prototype 中的函数方法,只会定义在构造函数中,实例化对象上是没有的
实例化对象,是通过 原型链 , 调用 构造函数 prototype 中,定义的函数方法

原型链不用你特意的定义,调用等,JavaScript会自动根据原型链的功能来执行程序

后端相关知识:

关于PHP,MySQL等相关知识,我们只要了解就可以了
实际项目中,我们操作后端,使用 node.js
PHP相关知识
基本概念:PHP是一门运行在服务器端的弱类型的脚本语言
运行PHP程序时,必须有服务器,数据库等

PHP的环境搭建:phpstudy集成环境软件

PHP的基本语法:
变量以 来 定 义 , 定 义 和 使 用 都 必 须 有 来定义,定义和使用都必须有 ,使标识符
PHP程序严格区分大小写
PHP变量的命名只能是英文,数字,下划线,不能以数字开头
每一行PHP程序,都必须以分号结束
PHP的语法规范比JavaScript要严格很多
PHP程序都要写在 <?php ?> 起始和结束标识符之前
如果结束后,没有其他程序,PHP的结束标识符 ?> 不要写

PHP的变量
变量定义必须以$标识符,作为定义
PHP变量的命名只能是英文,数字,下划线,不能以数字开头
变量名称区分大小写

PHP的调试输出:
echo : 只能输出标量类型
var_dump : 输出变量存储的数值以及数值的数据类型
print_r : 以跟好的方式输出变量
一般是与pre标签配合

				echo '<pre>';
				print_r(数组,对象); 
				echo '</pre>'; 

PHP的数据类型
基本数据类型:在计算机程序中,真实存在的
标量类型
布尔类型:true false

整数类型:
范围: 32位: -2的31次方 至 2的31次方-1
64位: -2的63次方 至 2的63次方-1

浮点数类型:
有效数值 : 14位有效数值

字符串类型:
“” 双引号 可以解析变量,但是最好使用 { } 来包裹变量,反之变量名称与字符串内容冲突
‘’ 单引号 不能解析变量
符合类型
数组:
新版本 $arr = [];
就版本 $arr = array();
对象: $obj = stdClass()
操作对象的语法是 ->
函数:与JavaScript是完全相同的
特殊类型
空类型:null
资源类型:读取操作外部文件程序的结果

伪类型:人为定义的,在计算机程序中,不存在的
混合类型
数值类型
可回调类型
void类型

PHP的运算符
字符串拼接运算符:
JavaScript中 是 +
PHP中是 点符号 前后加上空格,才是拼接符号,否则会和小数点冲突

分支结构语句:
与JavaScript完全相同

循环语句:
foreach(){}

语法1:变量中存储的是数组单元的数据内容
foreach(数组 as 变量){}

语法2:变量1中存储的是数组单元的索引下标
变量2中存储的是数组单元的数据内容
foreach(数组 as 变量1 => 变量2){}

MySQL数据库的操作
基本概念:以电子格式,存储数据的仓库
分类:
网状类型数据库 层次类型数据库 (不用了)
关系型数据库 : 以二维表的形式存储数据 键值对
非关系型数据库 : 以属性属性值的形式存储数据 对象

数据库的层次结构
库 — 表 — 字段 — 数据

使用 mysql-front 可视化工具来操作数据库

可视化工具,操作数据库,本质上是通过SQL语句,来操作数据库

SQL语句:
基本概念:操作关系型数据库的计算机语言

语法规范:
关键词,命令等,语法规范规定要大写,小写也能执行

库,字段,表结构的命名要使用小写字母,并且使用反引号包裹
作用:为了防止定义的名称和SQL语句的关键词冲突,导致程序不能正常执行
数据类型,关键词有int 字段名称定义也是int 直接写程序会报错
字段名int 添加 反引号,程序可以正常执行

每行代码结束,都要使用 ; 做结束标签

库 操作
创建:
CREATE DATABASE IF NOT EXISTS 库名
DEFAULT CHARACTER SET = utf8;

查询:
查询所有
SHOW DATABASES;

查新建立方式
SHOW CREATE DATABASE IF NOT EXISTS 库名;

查询正在使用的库
SELECT DATABASE();

使用:
USE 库名;

删除:
DROP DATABASE 库名;

修改:
只能修改编码格式
ALTER DATABASE 库名 DEFAULT CHARACTER SET = 字符集;

设定编码格式

SET NAMES 编码格式;

表 操作
创建:至少要有一个字段
CREATE TABLE IF NOT EXISTS 表名(
字段设定
) ENGINT = innoDB DEFAULT CHARACTER SET = utf8 COMMENT ‘说明’;

查看:
查看所有:
SHOW TABLES();

查看创建方式
SHOW CREATE TABLE 表名;

查看字段:
DESC 表名;

删除:
DROP TABLE 表名;

修改:
ALTER TABLE 表名 ENGINE = 引擎 CHARACTER SET = 编码格式 COMMENT ‘注释说明’

字段的操作:
修改:
修改字段名称和重新设定字段
ALTER TABLE 表名
CHANGE 旧字段名 新字段名 数据类型 属性 约束条件 注释;

重新设定字段
ALTER TABLE 表名
MODIFY 字段名 数据类型 属性 约束条件 注释;

新增:
末位:
ALTER TABLE 表名
ADD 字段名 数据类型 属性 约束条件 注释;

首位:
ALTER TABLE 表名
ADD 字段名 数据类型 属性 约束条件 注释 FIRST;

在指定字段后:
ALTER TABLE 表名
ADD 字段名 数据类型 属性 约束条件 注释 AFTER 指定的字段;

删除字段:
ALTER TABLE 表名
DROP 字段名;

数据的操作:
写入数据:
给所有的字段都写入数据
INSERT INTO 表名 VALUES (数据);

给指定字段写入数据
INSERT INTO 表名(字段) VALUES (数据);

删除数据
保留id主键值
DELETE FROM 表名;

清空表结构
TRUNCATE TABLE 表名

更新
UPDATE 表名 SET
字段名 = 数值

MySQL数据库的数据类型:
数据库程序,严格执行数据类型,如果数据的数据,与设定的数据类型不相符,很可能引起输入失败

数值类型:
一般整数类型,不限定数值的位数
浮点数类型,设定的是整个数值的位数和小数部分的位数
文本类型:
CHAR 长度固定的数据
VARCHAR 长度不固定的数据
事件日期类型:
TIMESTAMP 自动存储当前时间
特殊类型:
ENUM 枚举类型 单选效果
SET 集合类型 多选效果

字段的属性: 只能设定给数值类型字段
UNSIGNED 数值范围不能是负数
ZEROFILL 自动补零

字段的约束条件
NOT NULL 数据不能为空
DEFAULT 默认值
UNIQUE KEY 唯一约束
PRIMARY KET 主键约束
一般与 AUTO_INCREMENT 一起使用
FOREIGN KEY 外键约束

2. SQL查询语句

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 

3. SQL文件

– 查询表结构所有字段
SELECT * FROM student;

– 查询表结构指定字段
SELECT id,username,userpwd,phone 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;

4. 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 来获取数组

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值