mysql基本认识【关系型数据库和nosql、mysql操作流程和体系,库操作,表操作,数据的操作,字符集的操作,以及php作为client操作数据库】对连接本身没有疑问

1.关系型数据库
永久性保存数据的仓库
php的变量只是php脚本执行期间,临时性保存变量的空间【使用内存空间临时保存】

关系型数据库:利用二者的关系来描述实体的信息。【利用二维表字段名和字段值来进行描述】
【关系型数据库根本不是可以使用外键将两个表构建成关联的意思,而是实现描述实体的二维表的形式】

nosql:not only sql【sql表示操作关系型数据的语言】
所以nosql指的就是非关系型数据库【典型的是键值对型的数据(redis、memcache)】
【nosql可以视情况添加信息,不需要对信息的所有内容都需要对应(减少了录入的信息)】
【非关系型数据库就是用于速度快读取以及结构灵活的数据】
缓存数据基本是nosql型

关系型数据库的行列之间的问题【不需要太过纠结】
SQL:结构化查询语言【也就是关系型数据库语言】

2.操作mysql的流程
数据库系统【mysql本身就是数据库系统。系统就是用来操作数据的一整套工具】
数据系统=数据库【数据的主题部分】+数据管理系统【内资的操作数据的工具系统】
mysql本身也需要对数据进行存储【这一点需要在日常中进行注意】

数据库操作基本都是c/s架构【需要客户端,sql server里的扩展也是这样的】
c/s架构【不同的服务器提供的是不同的终端访问方式】
b/s架构【b/s架构都是通过HTTP协议进行访问,不同的服务器都是一致的需要浏览器访问方式】

【mysql的操作流程】
mysql服务通过mysqld进程进行提供
mysql客户端【首先需要连接和认证这个服务,然后发出操作指令,然后mysql服务接受指令,然后执行指令,返回执行结果】
以上这样交互便是一个正常的连接【最后断开连接】

mysql服务进程是mysqld【本身有指令集,配置的相关,以及相关连接的处理情况】
mysql客户端是mysql命令行端

3.mysql服务器体系
php使用扩展来操作mysql,此时php的进程通过连接来操作mysqld,来实现数据的操作。此时php脚本进程就是mysql客户端

数据存储的概念:
数据存在字段下,然后多个字段存储在一条数据,多个一条数据组合成一个表。最后多个表形成一个库,然后一个数据库服务器由多个库构成

这就是数据的构成机构【对数据库有一个更加细节的认识】

4.库操作
增删改查【操作和命令】

【数据存放】
datadir这个配置配置的就是数据库数据存放的库的位置【用作存储数据的内容】
因为mysql每一个库存放的位置是在系统之下,所以它对大小写是否敏感取决于系统【windows和linux】
特殊关键字不能作为数据库的名【但是可以使用反引号,将特殊关键字包裹,来声明该关键字是名字】【不过自己创建库时,不适用特殊字做库名即可】
反引号【在mysql中的使用】【反引号在1旁边的那个键】

5.表操作
use 库名【选择数据库】
使用库名来指定一个范围,然后使用库名来实现文件的确定【数据存储的形式】

在表中创建字段【因为mysql有固定的数据类型,在创建时就需要指定数据类型(强类型)】
增删改查操作的问题【这些没什么】

6.数据的操作
对数据的操作
基本是针对一行的数据做处理
增删改查

sql中‘=’就是‘==’【sql里没有赋值语句】

7.字符集操作
字符集【gbk和utf8】
描述可见的图形和传输时的编码被称为字符集。【就是已经提前设定好图形来显示假定的字符】

数据存储的编码【编码本身在os里已经假定好】
只有在数据库系统中使用便可以实现不同的字符集选择。
charset即可

数据的编码也是要映射到字段上。
【如何确定编码】
(1)先看字段的编码,如果存在则确定
(2)如果字段没有设置编码,则查看表的编码。如果有,则确定数据编码
(3)如果表没有编码,则查找库的编码
(4)如果库也没有设置编码,那么使用系统进行确定【或者是mysql配置文件设置默认编码】
【所以现实编程中,使用库进行设置编码,简单且明确。这也存在编码选择的优先级】

【注意:客户端操作,查询的编码(这是项目中经常需要注意的。这是编码一致性的重点)】
(1)客户端发送的数据的编码【set names 编码来声明客户端传递的数据的编码是什么样的】
(2)客户端接收到服务器的数据编码
(也就是说,我们需要在php脚本中对传递的编码进行指定,并且保证其与mysql服务的编码一致【这是编码一致性的重点】)
【而php脚本获得mysql结果之后的显示也需要和脚本本身的编码进行一致性处理,来保证编码显示的一致性!!!】

8.php操作数据库
【这块不需要太过想象,正常考虑即可】
php通过php的扩展来建立与mysql服务的连接。【进行连接认证】
将php发送sql语句当做URL寻址一样理解就能正常理解连接的问题了。

【至于客户端与mysql服务如何连接就跟网络ssh连接没什么区别,只需要声明ip,端口和用户信息即可进行验证。】【而连接的数量也跟nginx连接数量没什么区别】
【对网络连接有一个认识】

时间: 2024-10-31 13:39:43

mysql基本认识【关系型数据库和nosql、mysql操作流程和体系,库操作,表操作,数据的操作,字符集的操作,以及php作为client操作数据库】对连接本身没有疑问的相关文章

VS2013 EF6 MySQL(您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库) 之说明

关于VS2013 链接MySQL EF6 网上很多说法大体一致,但具体过程中,可能有些问题 综合纵说纷纭,提炼一下几点: 1. 安装 mysql-for-visualstudio-1.2.3.msi (必须) 2. 安装 mysql-connector-net-6.9.4.msi (必须) 3. 使用Nuget Packages 程序包管理器 安装EF 安装命令(Install-Package EntityFramework),注意:哪个项目安装,安装完成后会自动在项目下添加app.config

mysql建库建表插入数据

#!/bin/bash user="root" password="123456" mycmd="mysql -u$user -p$password" for dbname in tec stu do $mycmd -e "create database $dbname;" $mycmd -e "use $dbname;create table test(id int,name varchar(18));insert

Mysql DBA 高级运维学习笔记-Mysql数据库字符集知识

1.2 Mysql数据库字符集知识 1.2.1 MySQL数据库字符集介绍 简单的说,一套文字符号及其编码.比较规则的集合. MySQL数据库字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念.其中,字符集是用来定义MySQL数据字符串的存储方式,而校对规则则是定义比较字符串的方式.前面建库的语句中,CHARACTER SET latin1即为数据库字符集而COLLATE latin1_wedish_ci 为校对字符集,有关字符集详细内容参考mysql手册,第10张字

数据库部分(MySql)_4

约束 约束:给表的字段名添加限制条件; 非空约束(not null):添加非空约束后,字段值不能为null: 唯一约束(unique):添加唯一约束后,字段值不能重复: 主键约束(primary key):添加了主键约束,主键值不能为null并且不能重复: 自增:当自增字段名赋值为null时,字段值会自动增长:删除数据库数值不会减,数值会从曾经的最大值基础上+1:可以使用truncate使自增数值清零: 默认约束(default):给字段添加默认约束,当不对此字段赋值时,默认值生成: CREAT

数据库学习之mysql数据库

参考链接网站: http://c.biancheng.net/view/2361.html Mysql的版本以及版本号 MySQL Community Server(社区版):该版本完全免费,但是官方不提供技术支持. MySQL Enterprise Server(企业版):该版本能够以很高的性价比为企业提供数据仓库应用,支持 ACID 事物处理,提供完整的提交.回滚.崩溃恢复和行级锁定功能,但是该版本需要付费使用,官方提供电话技术支持. Mysql服务器端实用工具: http://c.bian

Mysql DBA 高级运维学习笔记-Mysql插入中文乱码问题

1.1 mysql插入中文数据乱码 1.1.1MySQL中添加中文数据并查看检表语句 a.创建cuizhong测试数据库并查看建表语句 mysql> create database cuizhong; Query OK, 1 row affected (0.00 sec) mysql> show create database cuizhong\G *************************** 1. row *************************** Database:

MySQL学习——操作表里的数据

MySQL学习——操作表里的数据 摘要:本文主要学习了使用DML语句操作表里数据的方法. 插入数据 语法 通过传入数据插入: 1 insert into 表名 [(列名1, …, 列名n)] values (值1, …, 值n); 通过查询数据插入: 1 insert into 表名 [(列1, ..., 列n)] 2 select 列1, ..., 列n from 查询的表; 实例 1 mysql> insert into score values (null, '张三', '计算机', 98

计算数据库中各个表的数据量和每行记录所占用空间--添加架构信息-读后感及知识整理

参考文章: SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database) 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 监控SQLServer 数据库表每天的空间变化情况 仔细拜读上面三位的文章,不会的知识点又参考了MSDN,巩固了知识点如下: 知识点: 1.表的架构信息,涉及的系统对象 sys.schemas 和 INFORMATION_SCHEMA.TABLES,但后者不是官方推荐方式,

初识关系型数据库(SQL)与非关系型数据库(NOSQL)

一.关系型数据库(SQL): Mysql,oracle 特点:数据和数据之间,表和字段之间,表和表之间是存在关系的 例如:部门表 001部分,   员工表 001 用户表,用户名.密码 分类表 和 商品表, 一对多关系. 优点:①数据之间有关系,进行数据的增删改查时非常方便的. ②关系型数据库 有事务操作. 保证数据的完整性 缺点:1.因为数据和数据之间有关系的,关系是由底层大量算法保证 大量算法会拉低系统运行速度 大量算法会消耗系统资源 2.海量数据的增删改查时会显得无能为力. 很可能宕机 3