MySQL
文章平均质量分 86
MySQL数据库
天山老妖
多年私募基金量化IT工程师从业经验,专注于Linux/C++、Qt、Python、量化IT技术,具有丰富的中频、高频量化交易系统开发和实盘交易运维经验,熟悉CTP、盛立REM、易达YD、Xele期货柜台API,宽睿OES、华鑫Tora、中泰XTP股票柜台API。
QuantFabric开源:https://github.com/QuantFabric
展开
-
Hello MySQL(十五)——游标
一、游标简介1、游标简介游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。游标是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。尽管游标能遍历结果中的所有行,但一次只指向一行。游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作。2、游标的特性游标具有三个属性:A、不敏感(Asensitive):数据库可以选择不复制结果集B、只读(Read only)C、不滚动(Nonscrollable):游标只能向一个方向前进,并且不可以跳过原创 2022-03-02 00:05:00 · 2277 阅读 · 0 评论 -
Hello MySQL(十四)——计划任务(事件)
一、事件简介1、事件简介事件是用来执行定时任务的一组SQL集,在时间到时会触发。一个事件可调用一次,也可周期性的启动,由一个特定的事件调度器线程来管理的。事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。2、事件的优点A、对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。B、可以实现每秒钟执行一个任务,在原创 2022-03-02 00:04:47 · 292 阅读 · 0 评论 -
Hello MySQL(十三)——事务和锁
一、事务简介1、事务简介事务(Transaction) 是指作为单个逻辑工作单元执行的一系列操作。2、事务的特性A、原子性(Atomicity)表示组成一个事务的多个数据库操作是一个不可分隔的原子单元,只有所有的操作执行成功,整个事务才提交,事务中任何一个数据库操作失败,已经执行的任何操作都必须撤销,让数据库返回到初始状态。B、一致性(Consistency)事务操作成功后,数据库所处的状态和它的业务规则是一致的,即数据不会被破坏。C、隔离性(Isolation)在并发数原创 2022-03-02 00:04:33 · 348 阅读 · 0 评论 -
Hello MySQL(十二)——索引
一、索引简介1、索引简介索引(Index)是帮助MySQL高效获取数据的数据结构。在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的。MyISAM和InnoDB存储引擎只支持BTREE索引, MEMORY/HEAP存储引擎支持HASH和BTREE索引。2、索引的优点A、提高数据检索效率,降低数据库的IO成本。B、通过索引对数据进行排序,降低数据排序的成本,降低了CPU的消耗。C、大大加快数据的查询速度。3、索引的缺点A原创 2022-03-02 00:03:28 · 368 阅读 · 0 评论 -
Hello MySQL(十一)——触发器
一、触发器简介1、触发器简介触发器是和表关联的特殊的存储过程,可以在插入,删除或修改表中的数据时触发执行,比数据库本身标准的功能有更精细和更复杂的数据控制能力。2、触发器的优点A、安全性可以基于数据库的值使用户具有操作数据库的某种权利。可以基于时间限制用户的操作,例如不允许下班后和节假日修改数据库数据;可以基于数据库中的数据限制用户的操作,例如不允许股票的价格的升幅一次超过10%。B、审计可以跟踪用户对数据库的操作。审计用户操作数据库的语句;把用户对数据库的更新写入审计表。...原创 2022-03-02 00:03:04 · 1874 阅读 · 0 评论 -
Hello MySQL(十)——存储过程
一、存储过程简介1、存储过程简介存储过程是一组具有特定功能的SQL语句集组成的可编程的函数,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数来调用执行。存储过程是数据库管理中常用的技术之一,可以很方便的做些类似数据统计、数据分析等工作,SQL SERVER、ORACLE、MySQL都支持存储过程,但不同的数据库环境语法结构有所区别。2、存储过程的优点A、存储过程增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算原创 2022-03-02 00:02:30 · 1921 阅读 · 0 评论 -
Hello MySQL(九)——视图
一、视图简介1、视图简介视图是由SELECT查询语句所定义的一个虚拟表,是查看数据的一种非常有效的方式。视图包含一系列带有名称的数据列和数据行,但视图中的数据并不真实存在于数据库中,视图返回的是结果集。2、创建视图的目的视图是存储在数据库中的查询的SQL语句,创建视图主要出于两种原因:A、实现安全。视图可设置用户对视图的访问权限。创建查询是JAVA班学生成绩的视图javaview、NET班学生成绩的视图netview,授权zhang能够访问javaview视图,授权wangk可以访问原创 2022-03-02 00:02:14 · 1277 阅读 · 0 评论 -
Hello MySQL(八)——自定义函数
一、自定义函数简介自定义函数 (user-defined function UDF)是一种对MySQL扩展的途径,其用法和内置函数相同。自定义函数的两个必要条件:A、参数B、返回值(必须有)。函数可以返回任意类型的值。二、自定义函数的使用1、自定义函数语法CREATEFUNCTIONfunction_name(parameter_nametype,[parameter_name type,...])RETURNS{STRING|INTEGER|REAL}runtime...原创 2022-03-02 00:01:59 · 6824 阅读 · 0 评论 -
Hello MySQL(七)——数据完整性
一、数据完整性简介1、数据完整性简介数据冗余是指数据库中存在一些重复的数据,数据完整性是指数据库中的数据能够正确反应实际情况。数据的完整性是指数据的可靠性和准确性,数据完整性类型有四种:A、实体完整性:实体的完整性强制表的标识符列或主键的完整性(通过唯一约束,主键约束或标识列属性)。B、域完整性:限制类型(数据类型),格式(通过检查约束和规则),可能值范围(通过外键约束,检查约束,默认值定义,非空约束和规则)。C、引用完整性:在删除和输入记录时,引用完整性保持表之间已定义的关系。引用原创 2022-03-02 00:01:36 · 2049 阅读 · 0 评论 -
Hello MySQL(六)——SQL插入、更新、删除操作
一、插入数据1、为表的所有字段插入数据使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值。INSERT INTO table_name (column_list) VALUES (value_list);insert into `TSubject` (subjectID,subjectName,BookName,Publisher) values ('0004','英语','大学英语走遍美国','清华出版社')可以不指定插入的列insert i原创 2022-03-02 00:00:52 · 361 阅读 · 0 评论 -
Hello MySQL(五)——SQL查询
一、单表查询1、查询所有字段在SELECT语句中使用星号“*”通配符查询所有字段在SELECT语句中指定所有字段select * from `TStudent`;2、查询指定字段查询多个字段select Sname,sex,email from TStudent;3、查询指定记录在SELECT 语句中通过WHERE子句,对数据进行过滤,语法格式为:SELECT 字段名1,字段名2,…,字段名n FROM 表名WHERE 查询条件select Sname,se原创 2022-03-01 09:00:19 · 2158 阅读 · 0 评论 -
Hello MySQL(四)——MySQL数据库创建实例
一、创建数据库1、创建数据库创建数据库,指定数据库的默认字符集为utf8。CREATE DATABASE schoolDB default character set utf8;连接数据库,客户端必须选择UTF8字符集。数据库中的三张表分别为学生表(student)、课程表(TSubject)、分数表(TScore)。2、创建学生表CREATE TABLE `TStudent` (`StudentID` varchar(15) NOT NULL,`Sname...原创 2022-03-01 08:58:58 · 2970 阅读 · 0 评论 -
Hello MySQL(三)——SQL语言
一、SQL语言简介1、SQL语言简介SQL是结构化查询语言(Structured Query Language),是用于访问和处理数据库的标准计算机语言。SQL语言的功能如下:A、SQL面向数据库执行查询B、SQL可从数据库取回数据C、SQL可在数据库中插入新的记录D、SQL可更新数据库中的数据E、SQL可从数据库删除记录F、SQL可创建新数据库G、SQL可在数据库中创建新表H、SQL可在数据库中创建存储过程I、SQL可在数据库中创建视图J、SQL可以设置原创 2022-03-01 08:58:43 · 750 阅读 · 0 评论 -
Hello MySQL(二)——MySQL字符集与乱码解析
一、字符集与编码1、字符集简介字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。字符编码(Character encoding)是把字符集中的某原创 2022-03-01 08:58:10 · 1233 阅读 · 0 评论 -
Hello MySQL(一)——MySQL数据库简介
一、MySQL简介1、MySQL简介MySQL是一个轻量级关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。目前MySQL被广泛地应用在Internet上的中小型网站中,由于体积小、速度快、总体拥有成本低,开放源码、免费,一般中小型网站的开发都选择Linux + MySQL作为网站数据库。MySQL是一个关系型数据库管理系统,MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,就增加了速度并提高了灵活性。MyS原创 2022-03-01 08:57:43 · 3926 阅读 · 0 评论 -
数据库设计(三)——数据库设计规范
一、数据库设计规范简介1、数据库设计规范化的要求A、表中应该避免可为空的列B、表不应该有重复的值或者列C、表中记录应该有一个唯一的标识符D、数据库对象要有统一的前缀名E、尽量只存储单一实体类型的数据2、数据库设计规范化的目的A、消灭重复数据。B、避免编写不必要的,用来使重复数据同步的代码。C、保持表的瘦身,以及减从一张表中读取数据时需要进行的读操作数量。D、最大化聚集索引的使用,从而可以进行更优化的数据访问和联结。E、减少每张表使用的索引数量,因为维护索引的成本很高。原创 2022-03-01 08:57:16 · 6885 阅读 · 0 评论 -
数据库设计(二)——数据库设计原则
一、数据库表的设计原则1、不应该针对整个系统进行数据库设计,而应该根据系统架构中的组件划分,针对每个组件所处理的业务进行组件单元的数据库设计;不同组件间所对应的数据库表之间的关联应尽可能减少,如果不同组件间的表需要外键关联也尽量不要创建外键关联,而只是记录关联表的一个主键,确保组件对应的表之间的独立性,为系统或表结构的重构提供可能性。2、采用领域模型驱动的方式和自顶向下的思路进行数据库设计,首先分析系统业务,根据职责定义对象。对象要符合封装的特性,确保与职责相关的数据项被定义在一个对象之内,这些数据原创 2022-03-01 08:57:00 · 2169 阅读 · 0 评论 -
数据库设计(一)——数据库设计
一、数据库设计简介按照规范设计,将数据库的设计过程分为六个阶段:A、系统需求分析阶段B、概念结构设计阶段C、逻辑结构设计阶段D、物理结构设计阶段E、数据库实施阶段F、数据库运行与维护阶段需求分析和概念结构设计独立于任何数据库管理系统。二、系统需求分析1、需求分析的任务需求分析的任务:对现实世界要处理的对象进行详细的调查,通过对原系统的了解,收集支持新系统的基础数据并对其进行处理,在此基础上确定新系统的功能。A、调查分析用户活动B、收集和分析需求数据,确定系统边界信原创 2022-03-01 08:56:44 · 16596 阅读 · 0 评论