PHP-mysql数据库简介

数据库词汇

数据:data,凡是能携带信息的媒介都是数据
   硬盘数据:保存在磁盘中,以二进制形式保存
   内存数据:运行在内存中
数据库:Database,高效存储和处理数据的媒介(凡是存放数据的地方都可以称之为数据库),数据库分为两大阵营:关系型数据库,非关系型数据库。
数据库系统:Database System = DBMS +DB,DBMS(Database Management System)管理数据库
DBA:Database Administrator,DBA待遇非常好。


关系型数据库SQL

定义:建立在关系模型上的数据库。
关系模型:通过各种关系来体现数据与数据之间的联系的模型。

关系型数据库:大型(ORACLE,DB2),中型(mysql,SqlServer),小型(access)
mysql:最高并发量千万级,免费
ORACLE:收费

通俗:关系型数据库就是一张二维表(具有行和列,还有表头),用来管理表内的数据关系和表与表之间的关系。
设计一个简单的教学系统
   实体:entity,自然界中所看到的实物的一种分类。
   实体:学生,老师,教室
学生表

这里写图片描述


体现表内数据与数据之间的关系

关系型数据库特点:如果某个数据不完整,那么数据库在磁盘空间上一样的需要分配空间来保存该数据。关系型数据库比较占磁盘空间。

班级表

这里写图片描述

学生与班级有关系
通过在学生表增加一个字段保存对应的班级名称,从而实现了学生表与班级表的关联

这里写图片描述

以上体现的就是实体与实体之间的联系


非关系型数据库

定义:所有不是关系型数据库的数据库都是非关系型数据库
NOSQL:Not Only SQL。
非关系型数据库保存数据的方式:键值对

特点:
1.运行在内存
2.使用键值对来保存和表示数据
3.运行之后,会进行数据同步(将内存的数据写入到磁盘)

关系型数据库和非关系型数据对比
1.保存数据的介质不同(关系型在磁盘,非关系型在内存
2.非关系型数据库效率比关系型数据库高得多
3.关系型数据库比非关系型数据库安全


SQL

是一种关系型数据库操作语言,也是一种编程语言
SQL:Structured Query Language,结构化查询语言。
SQL包含三个部分:
  DDL:Data Definition Language,数据定义语言,库和表的维护create,drop,alter
  DML:Data manipulation Language,数据操作语言(DQL:Data Query Language),数据的查询,select
  DCL:Data Control Language,数据控制语言,用于数据库的权限管理,grant,revoke


SQL的基本操作

CRUD:create(创建:增),read/retrieve(读取:查),update(更新:改),delete(删除:删)


软件结构

mysql是一种c/s软件结构。在运行之前,必须保证服务端和客户端同时运行才能正常工作。



工作流程
1.客户端发送连接请求,建立连接:mysql –h –P –u –p
  a)h:host,ip地址或者域名,默认可以没有代表localhost
  b)P:大写,端口默认为3306
  c)u:username,用户名
  d)p:password,用户密码

这里写图片描述

登录成功

这里写图片描述

2.准备SQL语句:逐行执行,以分号为结束符

这里写图片描述

3.发送SQL语句:发送给服务器
4.服务器接收SQL并执行
5.服务器发送执行结果给客户端
6.客户端解析结果
电脑反应太快,看到的结果是以上四个步骤感觉就是一步到位

这里写图片描述

7.关闭连接
  a)exit
  b)quit
  c)\q

这里写图片描述



mysql客户端操作服务端原理

这里写图片描述

所有的处理操作都是在服务端,客户端只是负责发送SQL语句和接收执行结果,并解析。


管理服务端

windows下有三种方式进行服务端管理
1.windows服务管理

这里写图片描述

2.通过服务命令在dos(CMD)下管理
net:管理服务
net start|stop 服务名

这里写图片描述

3.直接通过mysqld.exe启动
mysqld的执行必须要指定配置文件才能启动成功
mysqld.exe –defaults-file=d:/server/mysql/my.ini

这里写图片描述


服务端内部结构

服务器是由数据库系统在帮助运行。
在服务器端,有四个对象,分别是:数据库管理系统->数据库->数据表->数据字段->管理数据

这里写图片描述


数据库基本操作

数据库基本操作包含三个部分:库操作,表操作(字段操作),数据操作


库操作

SQL语句是以行为执行单位,每行结束都应该有结束符号分号(有特例:建议每行语句都有分号)
新增数据库:create database 数据库名字 [库选项];
库选项:
字符集设置(charset):表示以后在当前数据库存储的数据,默认采用utf-8的字符集存储
校对集设置(collate):如何比较大小

这里写图片描述

执行以上语句,数据库管理系统做了哪些事情?
1.创建了一个叫做mydatabase的数据库(默认使用utf8来存储数据)
2.会在磁盘里开辟一块空间来存储数据(对应外部体现就是创建一个文件夹,文件夹的名字叫做mydatabase)

文件夹的路径可以通过my.ini查看

这里写图片描述


新建的数据库

这里写图片描述

3.库选项在数据库文件夹下有一个对应的文件db.opt

这里写图片描述

数据库命名规范
1.使用字母,下划线和数字构成
2.不能是关键字,如果是关键字,需要使用反引号将名字包裹
  a)反引号:esc下面的波浪线按键对应的英文状态下的输出

错误

这里写图片描述

正确

这里写图片描述

3.可以使用中文作为数据库名字,但是也需要使用反引号(强烈建议:不用使用中文)

这里写图片描述


查看数据库:

查看数据库基本信息:show databases;||模糊查询:show databases like ‘pattern’
查看所有

这里写图片描述

模糊匹配:%匹配任何内容,_表示匹配一个字符

这里写图片描述

下划线使用

这里写图片描述



查看数据库创建语句:show create database 数据库名字

这里写图片描述



修改数据库:数据库名称不可修改,只能修改数据库的库选项
语法:alter database 数据库名字 [库选项]

这里写图片描述



删除数据库:drop Database 数据库名字;

这里写图片描述


表操作

表不能脱离字段存在,字段也不能脱离表,所谓的表操作就是表和字段同时操作。
新增表:create table 表名(字段1 字段类型,字段2 字段类型)[表选项]
1.字段必须要有字段类型:字段 字段类型
2.字段与字段之间使用逗号分隔
3.最后一个字段不需要使用逗号

表选项
   字符集:当前表的数据采用什么字符集保存,字符集以表的字符集为标准
   存储引擎:当前表的数据采用什么样的存储引擎来存储
存储引擎:不同存储和处理数据的方式

创建数据库出现问题

这里写图片描述

注意:数据表必须存储在数据库的内部。

两种方式解决以上问题
1.显示指定数据库:在创建表名的时候使用:库.表名

这里写图片描述

2.隐式的指定数据:事先进入到某个数据库的环境:use 数据库名字

这里写图片描述

创建表语句执行之后的结果:在对应的数据库文件夹下创建两个对应的数据表的结构文件

这里写图片描述

该结构与选定的存储引擎有关系

存储引擎:InnoDB和Myisam
   InnoDB:只会创建一个表结构文件,其他的索引和数据存放在ibdata1文件中
   Myisam:会创建三个文件,一个是结构文件,一个是数据文件,一个是索引文件

这里写图片描述



查看表:
1.查看表基本信息:show tables || show tables like ‘pattern’;

这里写图片描述

2.查看表的创建语句:show create table表名;

这里写图片描述

3.查看表结构:desc|describe 表名/show columns from 表名

这里写图片描述



修改表
可以修改表的名字,表的字段的增删改查,字段的属性的修改,字段的位置的修改
语法:alter table 表名 [add/modify/drop] [column] 字段名字 [字段类型] [字段位置]

增加字段
alter table 表名 add column 字段名字 字段类型 [位置]

字段默认在表最后增加

这里写图片描述

位置:first表示在最前面,after表示在某个字段之后(默认其实是after在最后一个字段之后)

这里写图片描述

修改字段
修改字段位置,修改字段的类型,修改字段的名字
修改字段类型+字段位置

这里写图片描述

修改字段名字
alter table 表名 change 旧字段 新字段 字段类型 字段位置

这里写图片描述

注意:不管是修改字段的哪部分都应该跟上字段类型。

删除字段
alter table 表名 drop 字段名字

这里写图片描述

语法:rename table 旧表名 to 新表名

这里写图片描述

删除表:drop table 表名

这里写图片描述

删除表还会对表文件进行删除

注意:
1.创建过程中会不知道当前表名是否存在:if not exists表示只有表名不存在的时候才去创建,否则放弃执行;

这里写图片描述

2.删除表的过程中,不知道表是否已经存在:if exists

这里写图片描述

3.数据库和数据表都不能随意的删除,删除具有不可逆性。如果确定要删除数据库或者数据表,那么必须要事先备份。


数据操作

新增数据:insert into 表名 (字段列表) values(值列表)
字段列表可以没有,意味着值列表里的字段数必须与表中的字段数完全一致

这里写图片描述

插入数据必须注意
1.插入的值类型必须与数据字段定义的数据类型一致,除了整型可以不加引号之外,其他的都要加上引号
2.整型也可以加上引号

这里写图片描述

在严格模式下,只能将数值字符串转化成数值
在严格模式下,自增不能使用空字符串来代替

3.允许一次性插入多条记录,在values字段后面使用逗号分隔即可

这里写图片描述

查看数据:select 字段列表 from 表名 [where 条件]

这里写图片描述

修改(更新)数据:update 表名 set 字段 = 值 [where条件]

这里写图片描述

删除数据:delete from 表名 [where条件]

这里写图片描述

注意:一定要小心删除数据,切记需要使用where条件,在删除之前需要对数据进行备份

行(row)和记录(record):行和记录表示的意思是完全一样的,行是站在表结构的角度上定义,而记录是站在数据的角度上去定义
列(column)和字段(Field):与行和记录的区别是一样的。

原文地址:https://blog.csdn.net/lwzhang1101

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Online Tours & Travels Management System pay.php sql injectionLine 16 of pay.php invokes a SQL query built using unvalidated input. This call could allow an attacker to modify the statement’s meaning or to execute arbitrary SQL commands.SQL
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在windwos系统搭建typecho博客+cpolar内网穿透工具将博客发布到公共网络环境,实现远程也可以访问和操作。_windows搭建typecho
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代语法,让php更加的优雅的与html生活在一起 -->请放心, 最终生成的,或者说用户最终看到的,仍然是一个html文档, php代码中的内容不会被泄漏的。-- 将php与html代码混编的时候,大括号很容易造成配对错误,最好杜绝它 -->php标签内部代码由php.exe解释, php标签之外的代码原样输出,仍由web服务器解析。-- 所以php的流程控制语句, 都提供了替代语法,用冒号代替大括号 -->php echo '百变鹏仔'?_利用php将静态页面修改为动态页面
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔记博文内容涉及 Linux network namespace 认知以及彼此通信Demo,实际中的应用理解不足小伙伴帮忙指正不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树。_linux network namespace 多端通信 模式认知
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了一个逻辑二层(L2)网络,该网络封装在跨 Kubernetes 集群节点的现有三层(L3)网络拓扑上。使用此模型,可以为容器提供一个隔离的 L2 网络,而无需分发路由。封装网络带来了少量的处理开销以及由于覆盖封装生成 IP header 造成的 IP 包大小增加。封装信息由 Kubernetes worker 之间的 UDP 端口分发,交换如何访问 MAC 地址的网络控制平面信息。此类网络模型中常用的封装是 VXLAN、Internet 协议安全性 (IPSec) 和 IP-in-IP。_k8s网络组件对比
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安全时,我们正在讨论的是保护我们的在线空间,这是我们所有人的共享责任。网络安全涉及保护我们的信息,防止被未经授权的人访问、披露、破坏或修改。
文章浏览阅读1.3w次,点赞3次,收藏7次。尽管您可以通过 ping 命令解析出网站的 IP 地址,但是可能在浏览器中访问时仍然遇到问题,这可能是因为浏览器使用的 DNS 解析结果不同于 ping 命令使用的解析结果。可能是因为您的网络或设备上设置了防火墙,阻止了对特定网站的访问。有些国家或组织可能会对特定的域名进行屏蔽,从而阻止访问相关网站。如果您的网络使用代理服务器进行访问控制,可能会由于代理服务器的配置问题导致无法访问某些网站。即使您的网络和设备一切正常,目标网站本身可能也存在问题,例如服务器故障、维护或过载,导致无法访问。_能ping通打不开网页
文章浏览阅读839次,点赞22次,收藏19次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。
文章浏览阅读2.1k次,点赞31次,收藏22次。基于微信小程序奶茶点餐外卖系统设计与实现(PHP后台+Mysql)可行性分析毕设源代码毕业设计,数据安全和系统稳定性以及团队能力和资源配备方面都具备较好的条件。因此,该项目的可行性较高。:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;微信小程序作为一种快捷、方便的移动应用形式,成为很多用户点餐外卖的首选。项目的界面和功能都可以定制,包安装运行!项目配有对应开发文档、开题报告、任务书、PPT、论文模版等。
文章浏览阅读1.8k次,点赞52次,收藏38次。本文主要通过对系统的前台系统和后台管理系统进行了功能性需求分析,对系统的安全性和可扩展性进行了非功能性需求分析。在详细的需求分析的基础上,根据系统的功能设计确定了数据库结构,实现完整的代码编写。Lucky+Baby母婴用品网站使用 Dreamweaver、HBuilder代码编辑器、Apache服务器等开发工具,完成了系统的主要模块的页面设计和功能实现。本文展示了首页页面的实现效果图,并通过代码和页面介绍了用户注册功能、商品搜索功能、生成订单和查看我的订单功能、在线付款功能功能的实现过程。
文章浏览阅读1.5k次,点赞45次,收藏40次。本设计主要实现集人性化、高效率、便捷等优点于一身的人事信息管理系统,完成首页、系统用户、通知公告、部门信息、员工薪资、考勤签到、员工请假、招聘信息、应聘信息等功能模块。
文章浏览阅读1k次。该错误通常出现在数据库读取结果集数据时,比如当我们写好SQL语句从数据库读取数据时,本身应该返回结果集,再给结果集中读取数据。解决思路:这种错误一般是因为echo后面输出了一个数组导致的,或者是数组作为字符串进行拼接运算时导致的。该错误直译为:警告:mysqli_fetch_assoc函数期望参数1是mysqli的结果集,但是给了一个布尔值。这种错误是PHP解析器在解析时遇到了语法错误,直译为:解析错误:语法错误,意料之外的...该错误直译为:提示:未定义的索引:username。_array to string conversion in
文章浏览阅读2.7w次。解决http请求报错context deadline exceeded (Client.Timeout exceeded while awaiting headers)_context deadline exceeded (client.timeout exceeded while awaiting headers)
文章浏览阅读1.3k次,点赞26次,收藏24次。复杂网络是一种由大量相互连接的元素(节点或顶点)组成的网络结构,这些连接通常是非常复杂和动态的。这些网络可以在各种领域中发现,包括社交网络、生物学系统、信息技术和交通系统等。_代理建模
文章浏览阅读2.6k次,点赞76次,收藏71次。epoll详解,事件模型,ET/LT模式,并通过三个示例进行代码实现。
文章浏览阅读3.3k次。罗拉ROLA-IP是一家来自纽约的代理IP提供商,由李嘉诚先生投资建设,韩国人工智能、自动驾驶、虚拟现实方面的领军企业World IT Show投资入股,由美国纽约大学IT管理教授团队研究开发,进入中国市场6年多,全世界设有多个分子公司。接下来,我们要检查代理和防火墙的设置,因为在绝大多数情况下,它们是导致这个错误的原因,尤其是当用户使用免费代理时。对网站的访问受阻实际上是一个非常常见的错误,它既可能是由于物理原因(硬件问题)造成的,也可能是由于软件错误引起的。检查代理设置,并确保其正确配置。_无法访问此网站,检查代理服务器和防火墙
文章浏览阅读1.1k次,点赞14次,收藏20次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。_php洗车服务预约管理系统php源码
文章浏览阅读1.1k次。桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。同时,对于桶中元素的排序,选择何种比较排序算法对于性能的影响至关重要。
文章浏览阅读936次,点赞22次,收藏17次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。
文章浏览阅读822次,点赞15次,收藏14次。在整个设计过程中,要确定可能的具体解决方案,以实现每一个小的最终目标,对于每一个小目标,我们首先必须了解一些相关的需求分析信息。除了以上作品下面是2023-2024年最新100套计算机专业原创的毕业设计源码+数据库,是近期作品,如果你的题目刚好在下面可以文末领取java源码参考。springboot基于springboot的在线考试系统。springboot基于springboot的商城购物系统。springboot基于微信小程序的智慧校园设计与实现。springboot基于用户的协同过滤算法的话题推荐。