- 博客(161)
- 收藏
- 关注
原创 mysqli 预处理
插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例:连接:(3)发送查询给服务器:(2)分析查询:(2)插入记录:(1x记录大小)插入索引:(1x索引)关闭:(1)普通流程连接,发送sql并接收,分析查询(如果出错,返回错误信息,如果没错,继续往下走),插入操作(入库),如果有索引,还要继续维护索引,关闭连接sql语句是在dbms中分析查询的,php是看不懂的,所以即使php中的sql语句写错,也不会报错预处理流程连接,发送sql并接收,判断是否经过了预处理,如果是则直接绕
2020-11-26 12:37:49 692 1
原创 Mysql 用户管理和权限设置
查看用户查看用户并没有直接的SQL语句,而是进入 mysql数据库的user表(这个mysql库和user表都是一开始就有的),直接用 select * from user;来查看有什么用户mysql> use mysql;Database changedmysql> select * from user\G*************************** 1. row *************************** Host: l
2020-11-24 17:08:58 216
原创 mysql 视图
基本概念视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化 (增删改) 会影响到基表,基表的数据变化也会影响到视图什么是视图?视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。视图是干什么用的?通过视图,可以展现基表的部分数据;视图数据来自定义视图的查询中使用的表,使用视图动态生成。基表:用来创建视图的表叫做基表为什么要使用视图?简单:使用视图的用户完全不需要关心后面对应的表的
2020-11-23 21:57:48 327
原创 mysql 存储引擎(表类型)
什么是存储引擎?数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。现在许多数据库管理系统都支持多种不同的存储引擎。MySQL 的核心就是存储引擎。InnoDB 事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MySQL 5.5.5 之后,InnoDB 作为默认存储引擎。MyISAM 是基于 ISAM 的存储引擎,并对其进行扩展,是在
2020-11-23 16:36:44 143
原创 mysql 事务
为什么要有事务?事务广泛的运用于订单系统、银行系统等多种场景。如果有以下一个场景:A用户和B用户是银行的储户。现在A要给B转账500元。那么需要做以下几件事:检查A的账户余额>500元;A账户扣除500元;B账户增加500元;正常的流程走下来,A账户扣了500,B账户加了500,皆大欢喜。那如果A账户扣了钱之后,系统出故障了呢?A白白损失了500,而B也没有收到本该属于他的500。以上的案例中,隐藏着一个前提条件:A扣钱和B加钱,要么同时成功,要么同时失败。事务的需求就在于此。My
2020-11-22 11:11:53 349
原创 mysql 索引
基本介绍索引的价值,在于提高一个海量表的检索速度,索引的算法有btree 二叉树的算法,还有一种就是hash算法索引的分类主键索引 (primary key),唯一索引(unique),普通索引(index),全文索引(fulltext)...
2020-11-20 22:00:15 239
原创 约束的维护和修改
修改约束测试表mysql> create table customer2( -> customer_id char(8) not null default '', -> name varchar(30), -> address varchar(80) not null default '', -> email varchar(50), -> sex enum('男','女') not null, -> )chars
2020-11-19 15:22:34 212
原创 mysql 字段约束
基本介绍约束概念约束实际上就是表中数据的限制条件,用来保证表中数据的准确性和可靠性。比如注册邮箱不能重复,这就需要添加约束。约束种类not null:非空,用于保证该字段的值不为空值default:默认,用于设置该字段的默认值primary key:主键,用于保证该字段值具有唯一性,并且非空,unique:唯一,用于保证该字段的值具有唯一性,且字段可以为空,但是只能有一个值为空。check:检查约束,mysql中语法支持,但不生效foreign key:外键,用于限制两个表的关系,保证该
2020-11-18 11:08:22 528
原创 mysql 内连接和外连接
基本概念表连接分为内连接和外连接。前面我们学习的多表查询都是内连接可以在select,update 和 delete 语句中使用 mysql 的 join 来联合多表查询JOIN 按照功能大致分为如下三类inner join(内连接):获取两个表中字段匹配关系的记录。left join(左连接):获取左表所有记录,即使右表没有对应匹配的记录。right join(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。内连接基本语法select 字
2020-11-17 16:28:34 541
原创 mysql 合并查询
基本概念使用集合操作符号 union , union all 可以将多条 select 语句的结果组合成一个结果集合并时,两个表对应的列数和数据类型必须相同,select 语句之间使用 union 或 union all 关键字分隔不使用关键字 all,执行的时候会删除重复的记录,所有返回的行都是唯一的使用关键宇 all 的作用是不删除重复行也不对结果进行自动排序union 使用该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中重复行mysql> sele
2020-11-17 15:38:07 366
原创 mysql 蠕虫复制和去重
基本介绍有时,为了对某个sql语句进行效率测试,我们需要海量数据时,可以使用此法为表创建海量数据蠕虫复制复制一个空表tempemp,表结构完全一样mysql> create table tempemp like emp;Query OK, 0 rows affected (0.68 sec)mysql> desc tempemp;+----------+-----------------------+------+-----+---------+-------+| Field
2020-11-17 12:21:04 174
原创 复杂查询—子查询
基本概念子查询定义子查询指的是在嵌入在其他 sql 语句中的 select 语句,又称为内部查询、嵌套查询子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询内部查询只能是 select 语句且可以包括任何子句外部查询可以是 select,insert,update,delete,set 或 do子查询的位置select 中,from 后,where 中group by 和order by 中也可以,但无实用意义子查询分类单行单列:返回的是一个具体列的内容,可以理
2020-11-16 13:25:55 426
原创 mysqli数据库编程—批量执行
dml批量操作//1.创建对象 连接数据库 选择数据库$conn = new mysqli('localhost', 'root', '', 'test');if ($conn->connect_errno) { die('连接失败' . $conn->connect_error);}//2.设置编码$conn->query('set names utf8');//3.操作数据(批量dml)$sql = "insert into user(id,name,pas
2020-11-11 23:19:25 258
原创 php数据库编程—mysqli
基本介绍mysqli ,mysql improve mysql扩展库的增强版mysql 扩展库 和 mysqli 扩展库的比较mysqli 的稳定性和安全性,效率有所提高mysqi 支持面向对象编程 ,同时 mysqli 扩展库考虑到php老程序员,提供面向过程的编程风格.mysqli 有两套编程风格快速入门案例首先要在php.ini中启动mysql扩展库,通过phpinfo()函数可以查看php支持哪些扩展库创建user表mysql> create table user(
2020-11-09 23:18:06 518
原创 mysql乱码问题
可能是黑框中文乱码,也可能是浏览器中文乱码//黑框设置mysql> show variables like '%char%';+--------------------------+-------------------------------------+| Variable_name | Value |+--------------------------+-------------------------
2020-10-31 10:48:34 103
原创 php数据库编程—mysql
基本概念php有三种方式来操作mysql数据库mysql扩展库mysqli扩展库pdomysql扩展库和mysql数据库的区别mysql数据库是用来存放数据的mysql扩展库是一堆函数,是php设计者提供给程序员用于完成对mysql数据库的各种操作 (CRUD)mysql数据库的三层结构快速入门案例首先要在php.ini中启动mysql扩展库,通过phpinfo()函数可以查看php支持哪些扩展库编写一个程序,这个程序从 user 表中读取数据并打印在网页中...
2020-10-30 20:53:27 373 1
原创 文件下载
代码示例$file_name = '汉语.jpg';//如果文件不在当前目录,可设置绝对或相对路径(绝对更快),然后把下面的$file_name改为$file_path//$file_path = './down/'.$file_name;//$file_path = $_SERVER['DOCUMENT_ROOT'].'/down/'.$file_name;//php文件函数比较古老,需要对中文转码 gb2312$file_name = iconv("utf-8","gb2312",$fi
2020-10-29 11:10:09 225
原创 HTTP状态码详解
一、最常见的状态码200 - 请求成功301 - 资源(网页等)被永久转移到其它URL404 - 请求的资源(网页等)不存在500 - 内部服务器错误二、HTTP状态码分类1** 服务器收到请求,需要请求者继续执行操作2** 成功,操作被成功接收并处理3** 重定向,需要进一步的操作以完成请求4** 客户端错误,请求包含语法错误或无法完成请求5** 服务器错误,服务器在处理请求的过程中发生了错误三、HTTP状态码列表1**100 Continue 继续。客
2020-10-25 17:27:33 211
原创 HTTP 响应
HTTP响应(Response)响应与请求一样分成三个部分:响应行、响应头、响应体。1.响应行:格式 - HTTP/1.1 200 OK2.响应头:部分头属性解释 -Location:这个头配合302状态码,用于告诉客户端找谁(跳转)Server:服务器通过这个头,告诉浏览器服务器的类型Content-Encoding:告诉浏览器,服务器的数据压缩格式Content-Length:告诉浏览器,回送数据的长度Content-Type:告诉浏览器,回送数据的类型Last-Modified:
2020-10-25 16:30:34 119
原创 HTTP 请求
请求标头示例//浏览器可以接收的文本和图片类型Accept: */* //浏览器可以接收的数据压缩格式Accept-Encoding: gzip, deflate, br //浏览器可以识别的语言Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 Cache-Control: no-cache//长链接,不要立即断掉请求Connection: keep-aliveCookie: Hm_lvt_8d5d1086
2020-10-24 21:39:59 435
原创 http协议简介
网页访问流程原理HTTP 协议简介HTTP协议,全称超文本传输协议,是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准HTTP是基于TCP/IP通信协议来传递数据的HTTP 工作原理HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器有:Apache服务器,IIS服务器(Internet Information Services)等。Web服务器根据接收到的请求后,
2020-10-23 17:51:23 271
原创 php异常处理
快速入门案例普通处理方法//两个串联开关,需要同时打开才能开灯,该方法扩展性比较差,如果是3个串联开关呢?function A(){ $res1 = power1(1); $res2 = power2(0); if ($res1 && $res2){ echo '成功打开'; }else{ echo '打开失败'; }}function power1($num){ if ($num == 1){
2020-10-22 16:09:22 241
原创 php错误处理
如果没有错误处理机制会怎样?文件没有打开,但仍然向下执行,输出了ok<?php$file = fopen('./aaa.php','r');echo 'ok';/*输出结果;Warning: fopen(./aaa.txt): failed to open stream: No such file or directory in F:\wamp\www\test.php on line 2ok*/添加错误处理机制使用file_exists()函数检查文件或文件夹是否存在,返回
2020-10-21 22:11:58 189
原创 面向对象案例—计算器
MyCalView.php<html lang="en"><head> <title>我的计算器</title></head><script> window.onload = function () { var btn = document.getElementById('btn'); var num1 = document.getElementById('num1');
2020-10-19 10:52:44 192
原创 复杂查询—子查询
基本概念子查询:指嵌入在其他sql语句中的select语句,也叫嵌套查询单行子查询:指只返回一行数据的子查询语句多行子查询:指返回多行数据的子查询,使用关键词 in 或者 all单行子查询显示与smith同一部门的所有员工//子查询mysql> select ename,deptno from emp where deptno = (select deptno from emp where ename = 'smith');+-------+--------+| ename |
2020-10-06 15:26:01 108
原创 复杂查询—自链接
创建了三张表部门表mysql> select * from dept;+--------+------------+----------+| deptno | danme | loc |+--------+------------+----------+| 10 | accounting | new york || 20 | research | dallas || 30 | sales | chicago ||
2020-10-03 13:10:36 76
原创 复杂查询—多表查询
创建了三张表部门表mysql> select * from dept;+--------+------------+----------+| deptno | danme | loc |+--------+------------+----------+| 10 | accounting | new york || 20 | research | dallas || 30 | sales | chicago ||
2020-10-03 11:10:25 175
原创 select查询 having和where的区别
mysql> select avg(sal),deptno from emp where sal>1000;+-------------+--------+| avg(sal) | deptno |+-------------+--------+| 2379.545455 | 30 |+-------------+--------+1 row in set (0.00 sec)mysql> select deptno from emp group by de
2020-10-02 16:32:14 352
原创 mysql 查询加强 - 分页查询
分页查询基本语法select 字段 from 表名 where子句 limit 起始位置,取出多少条记录(偏移量)mysql记录的编号是从 0 开始编号快速入门案例按照empno号降序取出3条数据mysql> select * from emp;+-------+--------+-----------+------+------------+---------+---------+--------+| empno | ename | job | mgr | hi
2020-08-10 19:21:24 112
原创 mysql 查询加强
简介前面我们讲过mysql表的基本查询,但是都是对一张表进行查询,这在实际开发中还远远不够, 下面我们将用 enp,dept,salgrade 三张表模拟一个简单的公司管理系统,来演示多表查询创建了三张表部门表mysql> select * from dept;+--------+------------+----------+| deptno | danme | loc |+--------+------------+----------+| 10 | a
2020-08-05 15:56:52 128
原创 mysql 其他函数
user() 可以查询当前用户名mysql> select user();+----------------+| user() |+----------------+| root@localhost |+----------------+1 row in set (0.00 sec)md5() 可以对一个字符串进行md5加密,加密后可以得到一个32位字符串mysql> select md5('123');+--------------------------
2020-08-03 21:44:15 99
原创 mysql 流程控制函数
常用函数IF(expr,v1,v2)如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2IFNULL(v1,v2)如果 v1 的值不为 NULL,则返回 v1,否则返回 v2类似 if-else if-elseCASE 表示函数开始,END 表示函数结束。如果 condition1 成立,则返回 result1, 如果 condition2 成立,则返回 result2,当全部不成立则返回 result,而当有一个成立之后,后面的就不执行了你快速入门案例
2020-08-03 16:14:37 119
原创 mysql 数学函数
常用函数ABS(num)返回 num 的绝对值CEILING(num)向上取整FLOOR(num)向下取整FORMAT(num, decimal_places)保留小数位数LEAST(num1, num2, num3, …)返回列表中的最小值GREATEST(num1, num2, num3, …)返回列表中的最大值MOD(num1, num2)返回 num1 除以 num2 以后的余数CONV(num, from_base, to_ba
2020-08-03 10:25:55 136
原创 mysql字符串函数
常用函数CHARSET(s)返回字符串s的字符集CONCAT(s1,s2…sn)字符串 s1,s2 等多个字符串合并为一个字符串UCASE(s)将字符串转换为大写LCASE(s)将字符串 s 的所有字母变成小写字母LENGTH(s)返回字符串s的长度(按照字节)REPLACE(s,s1,s2)用字符串 s2 替代字符串 s 中的字符串 s1SUBSTRING(s, start, length)从字符串 s 的 start 位置截取长度为 len
2020-08-03 09:13:58 103
原创 mysql 日期函数
mysql日期函数current_date()当前日期current_time()当前时间current_timestamp当前时间戳date(datetime)返回datetime的日期部分date_add(date2,interval d_value d_type)在date2中加上日期或时间date_sub(date2,interval d_value d_type)在date2上减去一个时间datediff(date1,date2)两个
2020-08-01 18:30:02 161
原创 mysql 查询及子句
select 基本使用快速入门案例mysql> create table student( -> id int unsigned not null default 1, -> name varchar(10) not null default '', -> chinese float not null default 0.0, -> english float not null default 0.0, -> math floa
2020-07-31 12:45:21 118
原创 php操作mysql综合练习题
写一个php,通过php增删改查学生表要求1.加入js前端验证和php后台验证2.验证要求编号,语数英是数字并且不能为空,姓名不能为空程序设计的分析数据库和表的设计mysql> create table student( -> id int unsigned not null default 0, -> name varchar(10) not null default '', -> chinese decimal(5,2) not null
2020-07-30 16:51:55 591
原创 数据的增删改
增 insert快速入门案例mysql> create table goods( -> id int unsigned not null default 0, -> goods_name varchar(5) not null default '', -> price float not null default 0.0, -> mfg date not null comment '生产日期' -> )charset=utf8
2020-07-28 22:24:28 110
原创 php操作mysql
基本语法mysqli_connect() 函数来连接数据库。mysqli_select_db() 来选取一个数据库。mysqli_query() 执行sql语句mysql控制台操作//创建test表mysql> create table test( -> id int not null default 0 comment 'id号', -> name varchar(60) not null default '' comment '用户名', -&g
2020-07-28 08:33:27 101
原创 mysql的数据类型
数值类型MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了
2020-07-27 06:46:44 113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人