数据库

mysql入门(一)

社会主义新天地 提交于 2020-03-28 18:16:16
数据库介绍 数据库是在计算机出现以后,为了解决计算机存储问题而创建, 数据库中包含表,表当中才是数据。 数据库的发展史 1. 萌芽阶段 所有存储依赖的都是文件,安全性低,查找非常困难。 2. 层次模型 1). 优点:查询分类的效率高; 2). 缺点:导航结构:如果查找同类别数据,效率低。 数据不完整(如下图) 3. 网状模型 数据不完整性:我们认为每一行数据之间是独立不相关的,网状模型解决了数据不完整的问题,但是依然没有导航结构。 4. 关系模型 现在主流的数据库模型。特点:每张表都是独立的,没有导航结构,表和表之间通过公共字段建立关系,注意:公共的字段,名字可以不一样,但是数据类型必须一致,表达的含义必须一致.数据类型一致,但不一定是公共字段。 优点:有导航结构; 缺点:关系型数据库操作不便捷(关系可能比较复杂),执行效率低下。 补充:在项目中不是每一个业务都需要关系型数据库,可以使用非关系型数据库(NoSql) 简单概念认识 记录,字段,行列,表的属性,字段的属性。 1. 一条记录我们称之为一行数据; 2. 一个字段称之为一列; 3. 表的属性就是字段; 4. 字段的属性就是该字段的功能; 5. 数据冗余指的是数据重复率。 【补充】: 1)冗余只能减少,不能杜绝; 2)冗余减少了,表的体积就减少了,更新速度提高了,保证了数据额完整性; 3)减少了冗余,但是表的数量增加了

Mysql数据库day2

不问归期 提交于 2020-03-28 17:58:17
条件查询 -- 比较运算符 -- select .... from 表名 where ..... -- > -- 查询大于18岁的信息 select * from students where age > 18; -- < -- 查询小于18岁的信息 select * from students where age < 18; -- = -- 查询年龄为18岁的所有学生的名字 select * from students where age = 18; -- != 或者 <> select * from students where age != 18; select * from students where age <> 18; 逻辑运算符 -- and -- 18和28之间的所有学生信息 select * from students where age>18 and age<28; -- 18岁以上的女性 select * from students where age>18 and gender="女"; -- or -- 18以上或者身高高过180(包含)以上 select * from students where age>18 or height>=180; -- not -- 不在 18岁以上的女性 这个范围内的信息 select * from students

MySQL数据库升级

折月煮酒 提交于 2020-03-28 13:49:07
当前不少系统的数据库依旧是MySQL5.6,由于MySQL5.7及MySQL8.0在性能及安全方面有着很大的提升,因此需要升级数据库。本文通过逻辑方式、物理方式原地升级来介绍MySQL5.6 升级至MySQL5.7的方法,并介绍其使用场景。 1. 逻辑方式升级 逻辑方式升级其实就是通过逻辑备份工具(例如mysqldump工具)将数据库、表、其他相关对象及数据逻辑备份成SQL脚本,再将其还原至MySQL5.7的实例中。 详细步骤如下: 1.1 备份数据库 当前数据库的版本为MySQL5.6.27,现在准备备份 因为库比较小,因此使用mysqldump进行备份即可。mysqldump备份的方法可以参考历史文章进行了解 MySQL数据备份及还原(一) https://mp.weixin.qq.com/s/JbLThtgUq5RjkCuztSgBJg 或 https://www.cnblogs.com/gjc592/p/12505347.html 备份脚本: /* 备份所有库及相关对象 */ /usr/local/mysql/bin/mysqldump -uroot -p --socket=/app/data/mysql3307/tmp/mysql.sock --master-data=2 --default-character-set=utf8 --routines --triggers

组态软件开发(zz)

五迷三道 提交于 2020-03-28 13:24:41
http://www.ad.siemens.com.cn/service/answer/solution.asp?q_id=53092&cid=1032 底层驱动的开发是一方面,最重要的是稳定性,研发新品不是做出来就能用的,要有一个试运行的过程,在这个过程中不断发现问题和改进问题,所以给客户使用时,系统的稳定性是最重要的。 监控组态软件主要是以下几方面组成。 1、实时数据库 实时数据库,顾名思义就是一种处理和存储实时数据的数据库,它分为两种构成模式,第一种就是利用开发工具直接开发二进制文件模式,自己开发sql引擎,建立索引以及配置文件等机制,例如IFIX;另外一种就是依托于成熟的关系数据库,把实时数据放在二进制文件中但sql引擎,索引,以及配置文件都利用关系数据库等机制,例如WINCC。 1、内核通讯 说起内核通讯一般谈及组态软件很少涉及,因为它是一种根本看不见摸不着但具有决定组态软件的构架。市面上比较流行就是两种通讯框架,一种是与实时数据库通讯为核心框架,图形界面、脚本、通讯驱动等都是围绕实时数据库来完成相应功能,另一种就是消息通讯为核心框架的,这种框架就是类似SOA构架,首先建立通信数据元素,把所有用于访问的数据格式包含在其中,然后通过消息发布出去,是那个组件接受那个组件完成相应的指令,消息通讯在今天的组态软件行业里也分为内存消息型和端口消息型

SqlServer数据库中文乱码问题解决方法

◇◆丶佛笑我妖孽 提交于 2020-03-28 12:57:15
题:创建新数据库,存入中文显示乱码??? 原因分析:SQL版的乱码问题还是出现在SQL SERVER的安装设置上。默认安装时系统默认的排序规则是拉丁文的排序规则,但一般人在安装时没有考虑到这一点,安装时只是点取下一步,安装完成后,造成了SQL版在使用过程中出现乱码。 解决方法1: 如果是新建数据库,可以在建立数据时指定排序规则,记得选中文简体(Chinese_PRC_CS_AI_WS);如果数据库中已经有数据,则转换 编码会失败 操作步骤 1.右键数据库》属性 2.点击“选项”》修改排序方式 解决方法2: 最彻底的就是重装SQL,在安装时自定义安装,选好语言版本及排序规则,这样问题就解决了。 参数解释如下: 前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。 排序规则的后半部份即后缀 含义:   _BIN 二进制排序   _CI(CS) 是否区分大小写,CI不区分,CS区分   _AI(AS) 是否区分重音,AI不区分,AS区分      _KI(KS) 是否区分假名类型,KI不区分,KS区分  _WI(WS) 是否区分宽度WI不区分,WS区分  区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。 区分重音:如果想让重音和非重音字母视为不等,请选择该选项。如果选择该选项, 比较还将重音不同的字母视为不等。 区分假名

NodeJs mysql 开启事务

房东的猫 提交于 2020-03-28 12:55:10
如题;node后台使用mysql数据库,并使用事务来管理数据库操作。 这里主要讲一个事务的封装并写了一个INSERT 插入操作。 code: 基础code: db.config.js const mysql = require('mysql') const pool = mysql.createPool({ connectionLimit: 20, //连接池连接数 host: 'localhost', //数据库地址,这里用的是本地 database: 'xxxx', //数据库名称 user: 'xxxxx', // username password: '*****' // password }) //返回一个Promise链接 const connectHandle = () => new Promise((resolve, reject) => { pool.getConnection((err, connection) => { if(err) { console.error('链接错误:' + err.stack + '\n' + '链接ID:' + connection.threadId) reject(err) } else { resolve(connection) } }) }) module.exports = connectHandle 事务操作

国内图片网站Yupoo的架构

冷暖自知 提交于 2020-03-28 09:50:21
之前向大家介绍过全球最大在线图片服务网站 Flickr网站架构 ,Yupoo(又拍网)作为国内最大的图片服务提供商,我们也一起来看看它的架构,同样是提供图片服务,看看他与Flickr的差别在哪里,大家看完本文可以思考一下。 一、先来看看Yupoo网站的基本信息: 带宽:4000M/S ( 参考 ) 服务器数量:60 台左右 Web服务器:Lighttpd, Apache, nginx 应用服务器:Tomcat 其他:Python, Java, MogileFS 、ImageMagick 等 其架构图如下: 原图链接 二、关于 Squid 与 Tomcat Squid 与 Tomcat 似乎在 Web 2.0 站点的架构中较少看到。我首先是对 Squid 有点疑问,对此阿华的解释是"目前暂时还没找到效率比 Squid 高的缓存系统,原来命中率的确很差,后来在 Squid 前又装了层 Lighttpd, 基于 url 做 hash, 同一个图片始终会到同一台 squid 去,所以命中率彻底提高了" 对于应用服务器层的 Tomcat,现在 Yupoo! 技术人员也在逐渐用其他轻量级的东西替代,而 YPWS/YPFS 现在已经用 Python 进行开发了。 名次解释: YPWS--Yupoo Web Server YPWS 是用 Python开发的一个小型 Web 服务器,提供基本的

MySQL存储引擎介绍

狂风中的少年 提交于 2020-03-28 07:43:50
一 存储引擎解释   首先确定一点,存储引擎的概念是MySQL里面才有的,不是所有的关系型数据库都有存储引擎这个概念,后面我们还会说,但是现在要确定这一点。     在讲清楚什么是存储引擎之前,我们先来个比喻,我们都知道录制一个视频文件,可以转换成不同的格式,例如mp4,avi,wmv等,而存在我们电脑的磁盘上也会存在于不同类型的文件系统中如windows里常见的ntfs、fat32,存在于linux里常见的ext3,ext4,xfs,但是,给我们或者用户看懂实际视频内容都是一样的。直观区别是,占用系统的空间大小与清晰程度可能不一样。 那么数据库表里的数据存储在数据库里及磁盘上和上述的视频格式及存储磁盘文件的系统格式特征类似,也有很多种存储方式。   但是对于用户和应用程序来说同样一张表的数据,无论用什么引擎来存储,用户能够看到的数据是一样的。不同储引擎存取,引擎功能,占用空间大小,读取性能等可能有区别。说白了,存储引擎就是在如何存储数据、提取数据、更新数据等技术方法的实现上,底层的实现方式不同,那么就会呈现出不同存储引擎有着一些自己独有的特点和功能,对应着不同的存取机制。   因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即:对表的存储、操作等的实现方法不同),表是什么,表本质上就是磁盘上的文件。   其实MySQL支持多种存储引擎

SQL学习笔记

爷,独闯天下 提交于 2020-03-28 04:21:01
SQL Server管理 (1) SQL Server的两种验证方式:用户名验证和Windows验证,开发时用Windows验证就行了。 (2) 常用字段类型:bit(可选值0,1),datetime,int,varchar,nvarchar(可能含有中文用nvarchar)。 (3) varchar(),nvarchar().char(n)的区别: char(n)不足长度n的部分用空格填充 。Var: variable:可变的。 SQL语句入门 (1) SQL语句是和DBMS”交谈”专用的语句,不同DBMS都认SQL语法。 (2) SQL语句中字符串用 单引号 。 (3) SQL语句是 大小写不敏感的 ,不敏感指的是SQL关键字,字符串值还是大小写敏感。 (4) 创建表,删除表不仅可以手工完成,还可以执行SQL语句来完成,在自动化部署,数据导入中用的很多。 创建表: create table T_Person ( ID int not null, Name nvarchar(50), Age int null ) 删除表: drop table T_Person (5) 执行简单的Insert语句: insert into T_Person(ID,Name,Age) values (1,’Jim’,39) (6) *(熟悉):SQL主要分DDL(数据定义语言)和DML

postgresql数据库常规操作管理

余生颓废 提交于 2020-03-27 23:48:15
数据库连接: 方式一: psql -U test_huishishuju -d test_huishishuju 参数说明: -U 数据库用户名 -d 数据库名称 方式二: su – postgres -bash-4.2$ psql 进入postgres数据库 数据库用户管理: 创建用户 postgres=# create user dev_huishishuju; 或者create role dev_huishishuju; 创建数据库用户 postgres=# alter user dev_huishishuju with password '123456'; 修改数据库用户的密码为123456 设置用户权限 • 基本语法格式 CREATE或者ALTER ROLE role_name WITH optional_permissions(用户的授权); 实例: postgres=# alter user dev_huishishuju with superuser; 修改用户的属性,设置数据库用户dev_huishishuju为superuser postgres=# alter user dev_huishishuju with login; 给数据库用户设置登陆权限 • 设置用户权限的语法格式如下: GRANT permission_type ON table_name TO