1.逻辑架构剖析 1.1 服务器处理客户端请求 首先 MySQL 是典型的 C/S 架构,即 Client/Server 架构,服务器端程序使用的 mysqld。 不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(SQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果)。 以查询请求为例: 具体展开来看: 1.2 Connectors Connectors 指的是不同语言中与 SQL 的交互。 MySQL 首先是一个网络程序,在 ...
mysql(一) 1.登录mysql 1.mysql -uroot -p加密码。 2.mysql -A python1 -uroot -p加密码(直接进入指定数据库无需使用use功能) 2.库级操作 一般操作比较简单,先用mysql -uroot -p加密码进入mysql,之后通过show databases;查看所有的数据库,如果没有就创建一个新的数据库,通过create database 加名字,如果有就用use database 加名字直接进入使用,删除数据库用drop database加名字...
Refence: http://www.xianfen.net/Article137.aspx 因工作需要,编译MySQL,查找到MySQL官方的Windows下编译MySQL的文档,地址为:http://forge.mysql.com/wiki/Building_MySQL_on_Windows 按照文档知道一步一步操作即可。 一. 环境准备: 1. 获取MySQL最新源码:当前版本为5.1.44:http://dev.mysql.com/downloads/mysql/ (Window...
视频链接:https://www.bilibili.com/video/BV1iq4y1u7vj?p=151 1.范式 在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 范式的英文名称是 Normal Form,简称 NF。它是英国人 E.F.Codd 在上个世纪70年代提出关系数据库模型后总结出来的。范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则...
1.索引及其优缺点 1.1 概述 MySQL 官方对索引的定义为:索引(Index)是帮助 MySQL 高效获取数据的数据结构。 索引的本质:索引是数据结构。可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法。 索引是在存储引擎中实现的,因此每种存储引擎的索引不一定完全相同,并且每种存储引擎不一定支持所有索引类型,同时,存储引擎可以定义每个表的最大索引数和最大索引长度。 1.2 优点 (1) 类似大学图书馆建书...
视图是MySQL 5.0中增加的三大新功能之一(另外两个是存储过程与触发器),也是一般稍微“高级”一点的数据库所必需要有的功能。MySQL在定义视图上没什么限制,基本上所有的查询都可定义为视图,并且也支持可更新视图(当然只有在视图和行列与基础表的行列之间存在一一对应关系时才能更新),因此从功能上说MySQL的视图功能已经很完善了。 然而若要在应用中使用视图,还需要了解处理视图时的性能,而MySQL在这方面问题是比较大的,需要特别注意。首先要知道MySQL在处理视图时有两种算法,分别称为MERGE和TEM...
问题:连接MySQL时出现1045(28000)错误,Access denied表示拒绝访问。 (说明:我的数据库版本是mysql-8.0.15-winx64,不同版本可能解决方案不同,仅供参考) 解决步骤: 1、以管理员的身份运行命令行(必须以管理员的身份打开) 2、cd到mysql安装路径的bin目录 3、输入net stop mysql,关闭服务。 4、我的MySQL是8.0,所以在命令行输入mysqld --console --skip-grant-tables --shares-memory 5...
1.MySQL中的数据类型 类型类型举例整数类型TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT浮点类型FLOAT、DOUBLE定点数类型DECIMAL位类型BIT日期时间类型YEAR、TIME、DATE、DATETIME、TIMESTAMP文本字符串类型CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT枚举类型ENUM集合类型SET二进制字符串类型BINARY、VARBINARY、TINYBLOB、BLOB、ME...
com.mysql.jdbc.CommunicationsException: The last packet successfully received from the server was58129 seconds ago.The last packet sent successfully to the server was 58129 seconds ago, which is longer than the server configured value of 'wait_timeout'. ...
1.SQL概述 SQL(Structured Query Language,结构化查询语言)是使用关系模型的数据库应用语言,与数据直接打交道,由 IBM 上世纪70年代开发出来。后由美国国家标准局(ANSI)开始着手制定 SQL 标准,先后有 SQL-86,SQL-89,SQL-92,SQL-99 等标准。 SQL 有两个重要的标准,分别是 SQL92 和 SQL99,它们分别代表了 92 年和 99 年颁布的 SQL 标准,我们今天使用的 SQL 语言依然遵循这些标准。 不同的数据库生产厂商都支持S...
一.一条sql是如何运行得 mysql结构: 主要由server层和引擎两个部分组成,server层由连接器,查询缓存,分析器,优化器 执行器组成,引擎有innoDb,memory,myISAM等引擎 连接器主要与客户端建立连接,获取权限,使用show processlist显示当前有多少个连接。 command这一列表示连接状态。如果客户端连接一直没有使用,一段时间后将会被干掉,由wait_timeout指定, 默认8小时。 mysql拿到查询请求后,会先请求查询缓存,查询缓存以key-value形式(...
1. 变量 在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据。 在 MySQL 数据库中,变量分为系统变量以及用户自定义变量。 1.1 系统变量 1.1.1 系统变量分类 变量由系统定义,不是用户定义,属于服务器层面。启动MySQL服务,生成MySQL服务实例期间,MySQL将为MySQL服务器内存中的系统变量赋值,这些系统变量定义了当前MySQL服务实例的属性、特征。这些系统变量的值要么是编译MySQL时参数的默认值,要么是配置文件(例如my.in...
1. 函数的理解 1.1 什么是函数 函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在 SQL 中我们也可以使用函数对检索出来的数据进行函数操作。使用这些函数,可以极大地提高用户对数据库的管理效率。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G48zXFmN-1641555518983)(images/1554979529525.png)] 从函数定义的角度出发,...
1.第一范式,原子性,即属性不可再分。 2.第二范式,完全依赖性,即记录的所有属性均依赖于主键,不能产生记录的属性有部分依赖的情况,若有部分依赖的属性,则应拆分成两个实体。 3.第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余. 4.与基本表、代码表、中间表不同,视图是一种虚表,它依赖数据源的实表而存在。视图是供程序员使用数据库的一个窗口,是基表数据综合的一种形式, 是数据处理的一种方法,是用户数据保密的一种手段。为了进行复杂处理、提高运算速度和节省存储空间, 视...
视频链接:https://www.bilibili.com/video/BV1iq4y1u7vj?p=121 1.磁盘与内存交互基本单位:页 1.1 页结构概述 不同的数据库管理系统(DBMS)的页大小不同。比如在 MySQL 的 InnoDB 存储引擎中,默认页的大小是 16KB,可以通过下面的命令进行查看: SQL Server 中页的大小为 8KB,而在 Oracle 中我们用块(Block)来代表页,Oracle 支持的块大小为 2KB,4KB,8KB,16KB,32KB 和 64KB。 I...
1.导入mysql驱动jar包 mysql-connector-java-8.0.11.jar 2.导入Druidjar驱动jar包 druid-1.1.10.jar 3.创建测试类 (DruidTest) public class DruidTest { @Test public void getConnection() { Connection conn = null; try { //1.读取配置文件 Prop...
1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql 3....
1.Linux下MySQL8.0的主要目录结构 1.1 数据库文件的存放路径 数据库文件的存放路径:/var/lib/mysql/ MySQL 服务器程序在启动时会到文件系统的某个目录下加载一些文件,之后在运行过程中产生的数据也都会存储到这个目录下的某些文件中,这个目录就称为数据目录。 数据目录对应着一个系统变量 datadir,我们在使用客户端与服务器建立连接之后,可以查看这个系统变量的值。 1.2 相关命令目录 相关命令目录:/usr/bin 和 /usr/sbin。 安装目录下的 bin 目...
多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,也可能没有建立外键。比如:员工表和部门表,这两个表依靠“部门编号”进行关联。 1.笛卡尔积(或交叉连接) 笛卡尔乘积是一个数学运算。假设我有两个集合 X 和 Y,那么 X 和 Y 的笛卡尔积就是 X 和 Y 的所有可能组合,也就是第一个对象来自于 X,第二个对象来自于 Y 的所有可能。组合的个数即为两个集合中元素个数的乘积数。 S...
事务的四个特性: 1、原子性:每一个事务是一个最小整体,要么执行成功,要么执行失败,不可能出现执行一半的情况。 2、一致性:数据的完整约束保持一致状态,比如a和b一共有20元,无论a与b之间如何转账,都不可能改变这个总和。 3、隔离性:一个事务在操作同一个数据,只有操作完成了其他事务才能操作这个数据。 4、持久性:一个事务成功执行后将被保存到数据库,啊不能再回滚。 四种隔离级别: 1、read uncommited(读取未提交内容):所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,...
含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性 分类:六大约束 NOT NULL:非空,用于保证该字段的值不能为空比如姓名、学号等DEFAULT:默认,用于保证该字段有默认值比如性别PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空比如学号、员工编号等UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空比如座位号CHECK(:检查约束【mysql中不支持】比如年龄、性别FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关...
1. MySQL8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多MySQL Optimizer优化器进行了改进。不仅在速度上得到了改善,还为用户带来了更好的性能和更棒的体验。 1.1 MySQL8.0 新增特性 1. 更简便的NoSQL支持 NoSQL泛指非关系型数据库和数据存储。随着互联网平台的规模飞速发展,传统的关系型数据库已经越来越不能满足需求。从5....
mysql -u root -p --default-character-set=utf8 use dbname source /root/newsdata.sql ...
cd /opt/mysql-clsuter bin/mysql -u root -p --socket=/opt/mysql-clsuter/tmp/mysql.sock ...
我们上一章讲到了 SQL 单行函数。实际上 SQL 函数还有一类,叫做聚合(或聚集、分组)函数,它是对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个值。 1. 聚合函数介绍 什么是聚合函数 聚合函数作用于一组数据,并对一组数据返回一个值。 聚合函数类型 AVG()SUM()MAX()MIN()**COUNT() ** 聚合函数语法 聚合函数不能嵌套调用。比如不能出现类似“AVG(SUM(字段名称))”形式的调用。 1.1 AVG和SUM函数 # 第08章_聚合函数#1. 常见的...
http://www.codinglabs.org/html/theory-of-mysql-index.html 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。 文章主要内容分为...
bin/mysql -u root -p wptest -e 'select comment_content from wp_comments where comment_approved 1 ;' less...
MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将复杂的SQL逻辑封装在一起,应用程序无须关注存储过程和函数内部复杂的SQL逻辑,而只需要简单地调用存储过程和函数即可。 1. 存储过程概述 1.1 理解 含义:存储过程的英文是 Stored Procedure。它的思想很简单,就是一组经过预先编译的 SQL 语句的封装。 执行过程:存储过程预先存储在 MySQL 服务器上,需要执行的时候,客户端只需要向服务器端发出调用存储过程的命令,服务器端就可以把预先存储好的这一系列 SQL 语句全部执...
mysql总结: 链接: http://pan.baidu.com/s/1o7NayJC 密码: j638 数据库主干: http://naotu.baidu.com/file/be875db4e664eaaa5e69a1b39f57f1ae?token=2f55968cbef5da36 数据库主干对应的知识: http://naotu.baidu.com/file/d72e12645702aa58a2a78de099dfcd88?token=5aafe0464f39b68c 表细节 htt...
1. 插入数据 1.1 方式1:VALUES的方式添加 #第11章_数据处理之增删改#0. 储备工作USE atguigudb;CREATE TABLE IF NOT EXISTS emp1(id INT,`name` VARCHAR(15),hire_date DATE,salary DOUBLE(10,2));DESC emp1;SELECT *FROM emp1;#1. 添加数据#方式1:一条一条的添加数据# ① 没有指明添加的字段#正确的INSERT INTO emp1VALUES (1,'T...
读取单条数据 ResultSet = rsterminalInfo.executeQuery(); session.getTransaction().commit(); if(rs.next()) rs.getString(TENumber); 读取多条记录 List<InvoiceData> invoiceList = new ArrayList(); try { ResultSet rs = readInvoice.executeQuery(); session.beginT...
主要模块的交互(介绍mysql各个模块主要职责) 当Connection Manager收到client连接的时候,则会初始化网络连接进程,然后建立Connetion handler进程。进而connection handler进程进行权限认证。 传过来的sql脚本将会被Command Dispatcher接收,如果是个复杂的指令,将会传到其他的模块去。 在Mysql的术语中,client有两种请求,一种是query,另外一种是command,query不仅包括select,还包括delete、inser...
索引可以提高查询效率,将随机I/O变为顺序I/O,mysql的索引采用的是B+Tree索引数据结构,那么该如何创建索引? 一、创建索引语句 ALTER TABLE table_name ADD INDEX index_name (column_list) ALTER TABLE table_name ADD UNIQUE (column_list) ALTER TABLE table_name ADD PRIMARY KEY (column_list) 二、索引的有效查询 1、全值匹配指的是和索引中的所有...
select timediff('23:59:59', '12:00:00') from tableName; 注意,timediff 的两个参数只能是 datetime/timestamp, time 类型的,并且这两个参数类型要相同。即:datetime/timestamp 和 datetime/timestamp 比较;time 和 time 相比较。 虽然 MySQL 中的日期时间类型比较丰富,但遗憾的是,目前(2008-08-08)这些日期时间类型只能支持到秒级别,不支...
搞清楚操作系统什么版本,根据操作系统的版本32位/64位,到官网下载相应的包。32位若不行,可安装64位。 MySQL-server-community-5.1.62-1.rhel5 MySQL-devel-community-5.1.62-1.rhel5 MySQL-shared-compat-5.1.62-1.rhel5 MySQL-client-community-5.1.62-1.rhel5 安装顺序 server client devel shared 若出现找不到库 或者库不...
1.索引作用在索引列上,除了有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3此查询结果应该为1000行,每行包含3个相等的值。在无索引的情况下处理...
搜索引擎分为三种模式 自然语言模式 把搜索字符串解释为一系列单词,并查找包含这些单词的数据行。 布尔模式 给定某单词必须出现在某数据行中,或者是某行数据必须包含某短语 查询扩展模式 检索分为两段进行,第一段是自然语言搜索,第二段使用原来字符串,在第一次基础上再进行一次搜索。...
http://www.jb51.net/article/21228.htm 非常适合对数据库操作命令不熟悉的数据库管理者,下面我就说下怎么安装该工具: 1.先到网上下载phpmyadmin,再解压到可以访问的web目录下(如果是虚拟空间,可以解压后通过ftp等上传到web目录下),当然您可以修改解压后该文件的名称。 2.配置config文件 打开libraries下的config.default.php文件,依次找到下面各项,按照说明配置即可: A.访问网址 引用: $cfg['PmaA...
首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。 注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。 用户:phplamp 用户数据库:phplampDB 1.新建用户。 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_su...
修改乱码最终需要达到所有编码均为utf8的目的,如最下图。 默认登录mysql之后show variables like ‘%character%’, 出现 mysql> show variables like 'character%'; +--------------------------+-----------------------------------------------------------+ | Variable_name | Value ...
今日内容 1. 数据库连接池2. Spring JDBC : JDBC Template 数据库连接池 1. 概念:其实就是一个容器(集合),存放数据库连接的容器。 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。2. 好处: 1. 节约资源 2. 用户访问高效3. 实现: 1. 标准接口:DataSource javax.sql包下的 1. 方法: * 获取连接:getConnection() ...
视频链接:https://www.bilibili.com/video/BV1iq4y1u7vj?p=128 1.索引的分类 MySQL 的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。 从功能逻辑上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。 按照物理实现方式,索引可以分为 2 种:聚簇索引和非聚簇索引。 按照作用字段个数进行划分,分成单列索引和联合索引。 小结:不同的存储引擎支持的索引类型也不一样 InnoDB:支持 B-tree、Full-te...
1.算术运算符 算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加 +、减 -、乘 *、除 /、取模 % 运算。 加法与减法运算符 SELECT 100, 100 + 0, 100 - 0, 100 + 50, 100 + 50 * 30, 100 + 35.5, 100 - 35.5FROM DUAL;SELECT 100 + '1' # 此时将字符串转换为数值(隐式转换)FROM DUAL;SELECT 100 + 'a' # 此时将字符串看做0处理FROM...
http://my.oschina.net/cuilili/blog/162561 今天偶然打开windows事件查看器,发现几千条登录失败的日志,心中一惊,马上明白过来 肯定是又有黑客什么的拿着字典扫肉鸡了。然后赶紧开始查系统有没有多出来的用户,打开卡巴斯基把防火墙开了看看有什么可以连接。排查一遍之后没发现什么异常,但是下次绝不可掉以轻心啊。 虽说没有造成什么破坏但是安全以前真没怎么重视过,好吧马上开始行动吧。 由于我的数据库是安装在物理机上面平时也就是学习上课要用,虚拟机里面有时也...
1.存储引擎概述 为了管理方便,人们把连接管理、查询缓存、语法解析、查询优化这些并不涉及真实数据存储的功能划分为 MySQL Server 的功能,把真实存取数据的功能划分为存储引擎的功能。所以在 MySQL Server 完成了查询优化后,只需按照生成的执行计划调用底层存储引擎提供的API,获取到数据后返回给客户端就好了。 简而言之,存储引擎就是指表的类型。其实存储引擎以前叫做表处理器,后来改名为存储引擎,它的功能就是接收上层传下来的指令,然后对表中的数据进行提取或写入操作。 查看 MySQL 提供...
今日内容 1. JDBC基本概念2. 快速入门3. 对JDBC中各个接口和类详解 JDBC: 1. 概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 * JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。2. 快速入门: * 步骤: 1. 导入驱动jar包 mysql-connec...
JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet、beans)中建立数据库连接 进行sql操作 断开数据库连接 这种模式开发,存在的问题: 普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)。需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接。这样的方式将会消耗大量的资源...
数据库的基本概念 MySQL数据库软件 安装卸载配置 SQL 数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB2. 什么数据库? * 用于存储和管理数据的仓库。3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 -- SQL4. 常见的数据库软件 * 参见《MySQL基础.pdf》 MySQL数据库软件 1. 安装 * 参见《MySQL基础.pdf》2. 卸载 1. 去mysql的安装...
1、in参数的理解 DELIMITER C R E A T E P R ...
子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。 SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果,然后与这个数据结果(可能是某个标量,也可能是某个集合)进行比较。 1. 需求分析与问题解决 # 第09章_子查询#1. 由一个具体的需求,引入子查询#需求:谁的工资比Abel的高?#方式1:SELECT salaryFROM employeesWHERE last_name...