![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mysql数据库
文章平均质量分 79
图灵的猫.
给行业以ai,而不是给ai以行业
展开
-
Mysql中Check约束无效的原因以及解决方法
如果需要设置CHECK约束的字段范围小,并且比较容易列举全部的值,就可以考虑将该字段的类型设置为枚举类型 enum()或集合类型set()。如果需要设置CHECK约束的字段范围大,且列举全部值比较困难,比如:>0的值,那就只能使用触发器来代替约束实现数据的有效性了。如下代码,可以保证a>0。此外,在MYSQL中,域(Domain)与断言(Assertion)也是无法使用的,原因类似于CHECK,后续将会在其他文章中提到。原因是因为,不同于SQL,在MYSQL中,CHECK只是一段可调用但无意义的子句。原创 2017-11-30 22:13:36 · 19478 阅读 · 1 评论 -
数据库的ACID(原子性、一致性、隔离性与持久性)
SQL Server中使用了WAL(Write-Ahead Logging)技术来保证事务日志的ACID特性,在数据写入到数据库之前,先写入到日志,再将日志记录变更到存储器中。事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,如A给B转账,不论转账的事务操作是否成功,其两者的存款总额不变(这是业务逻辑的一致性,至于数据库关系约束的完整性就更好理解了)。完全的隔离性是不现实的,完全的隔离性要求数据库同一时间只执行一条事务,这样会严重影响性能。原创 2018-05-08 15:45:37 · 50750 阅读 · 1 评论 -
Mysql中Drop,Truncate,Delete的区别
1、delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。(6)truncate与不带where的delete :只删除数据,而不删除表的结构(定义)drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);新行标识所用的计数值重置为该列的种子。原创 2017-12-01 21:09:42 · 1418 阅读 · 0 评论 -
数据库系统:NoSQL与SQL的区别
云计算背后的秘密:NoSQL诞生的原因和优缺点我本来一直觉得NoSQL其实很容易理解的,我本身也已经对NoSQL有了非常深入的研究,但是在最近准备YunTable的Chart的时候,发现NoSQL不仅非常博大精深,而且我个人对NoSQL的理解也只是皮毛而已,但我还算是一个“知耻而后勇”的人,所以经过一段时间的学习之后,从本系列第六篇开始,就将和大家聊聊NoSQL,而本篇将主要给大家做一下NoSQL数据库的综述。首先将和大家聊聊为什么NoSQL会在关系型数据库已经非常普及的情况下异军突起?原创 2018-01-04 18:52:14 · 10267 阅读 · 0 评论 -
数据库中的模式分解与无损连接性
我的机器学习教程「美团」算法工程师带你入门机器学习 以及「三分钟系列」数据结构与算法已经开始更新了,欢迎大家订阅~这篇专栏整合了这几年的算法知识,简单易懂,也将是我实体书的BLOG版。欢迎大家扫码关注微信公众号「图灵的猫」,除了有更多AI、算法、Python相关文章分享,还有免费的SSR节点和外网学习资料。其他平台(微信/知乎/B站)也是同名「图灵的猫」,不要迷路哦~...原创 2018-01-04 18:42:35 · 3496 阅读 · 0 评论 -
Mysql学习笔记(一):子查询与选择
下列代码是我在学习MOOC的视频时做的一些练习,内容比较简单,主要涉及子查询与连接,大家可以作为练习参考直接使用代码如下:Create database MOOC;Use MOOC;SET NAMES utf8; CREATE TABLE IF NOT EXISTS tdb_goods( goods_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INC原创 2017-12-28 12:07:33 · 537 阅读 · 0 评论 -
MYSQL中SET NAMES UTF8的作用和内涵
,发现原来为latin1的那些变量“character_set_client”、“character_set_connection”、“character_set_results”的值全部变为utf8了,原来是这3个变量在捣蛋。如果两种字符集不兼容,比如latin1和utf8,转化过程就为不可逆的,破坏性的。所以,从服务器配置的角度而言,是没办法省略掉那行代码的。网上查了半天,解决办法倒是简单,在连接数据库之后,读取数据之前,先执行一项查询“SET NAMES UTF8”,即在PHP里为。原创 2017-12-28 19:17:22 · 9263 阅读 · 1 评论 -
MYSQL的用户变量(@)和系统变量(@@)
设置会话变量不需要特殊权限,但客户端只能更改自己的会话变量,而不能更改其它客户端的会话变量。如果我们移除一个与某个GLOBAL变量具有相同名字的SESSION变量,具有SUPER权限的客户可能会意外地更改GLOBAL变量而不是它自己的连接的SESSION变量。如果我们添加一个与某个GLOBAL变量具有相同名字的SESSION变量,想更改GLOBAL变量的客户可能会发现只有自己的SESSION变量被更改了。设置变量并在同一语句中使用它的另一个问题是变量的默认结果的类型取决于语句前面的变量类型。原创 2018-01-03 22:14:21 · 2886 阅读 · 1 评论 -
Mysql学习笔记(二):子查询与连接
下列代码是我在学习MOOC的视频时做的一些练习,内容比较简单,本节主要涉及内外连接以及子分类(自连接),大家可以作为练习参考直接使用代码如下://Join的使用USe mooc; Select * from tdb_goods group by goods_id ASC;ALTER TABLE tb_cates rename to goods_cate; INSERT goods_c原创 2017-12-28 12:15:03 · 508 阅读 · 0 评论 -
什么是异构数据库?它和分布式数据库的联系是什么?
数据仓库可以从异构数据库系统中的多个数据库中收集信息,并建立统一的全局模式,同时收集的数据还支持对历史数据的访问,用户通过数据仓库提供的统一的数据接口进行决策支持的查询。例如,在企业信息化建设过程中,由于各业务系统建设和实施数据管理系统的阶段性、技术性以及其它经济和人为因素等因素影响,导致企业在发展过程中积累了大量采用不同存储方式的业务数据,包括采用的数据管理系统也大不相同,从简单的文件数据库到复杂的网络数据库,它们构成了企业的异构数据源。在转换的过程中,有时要想实现严格的等价转换是比较困难的。原创 2017-12-30 20:46:11 · 6536 阅读 · 0 评论 -
MYSQL的Commit与程序的原子性
MySQL默认操作模式就是autocommit自动提交模式。这就表示除非显式地开始一个事务,否则每个查询都被当做一个单独的事务自动执行。我们可以通过设置autocommit的值改变是否是自动提交autocommit模式。从查询结果中,我们发现Value的值是ON,表示autocommit开启。我们可以通过以下SQL语句改变这个模式值0和OFF都是一样的,当然,1也就表示ON。原创 2017-12-22 23:43:57 · 1028 阅读 · 0 评论 -
OLAP(On-line Analytical Processing,联机分析处理)
数据仓库的多维数据模型 可能很多人理解的数据仓库就是基于多维数据模型构建,用于OLAP的数据平台,通过上一篇文章——数据仓库的基本架构,我们已经看到数据仓库的应用可能远不止这些。但不得不承认多维数据模型是数据仓库的一大特点,也是数据仓库应用和实现的一个重要的方面,通过在数据的组织和存储上的优化,使其更适用于分析型的数据查询和获取。多维数据模型的定义和作用多维数据模型是转载 2017-12-22 23:03:49 · 2144 阅读 · 0 评论 -
DML、DDL的概念与区别
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。DML(Data Manipulation Language)数据操纵语言: 适用范围:对数据库中的数据进行一些简单操作,如insert,delete,update,select等.DDL(Data Definition Language)数据定义语言: 适用范围:对数据库中的某些对象(例如,原创 2017-12-01 21:15:11 · 16483 阅读 · 1 评论 -
触发器(Trigger)的使用方法详解
MySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。创建触发器在MySQL中,创建触发器语法如下:CREATE TRIGGER trigger_nametrigger_timetrigger_event ON tbl_nameFOR EACH ROWtrigger_stmt其中:trigger原创 2017-12-01 13:30:33 · 16217 阅读 · 0 评论 -
无法添加外键约束的原因(cannot add foreign key constraint)
需要注意的是,在SQL中,参照关系可以为主键,但在MYSQL中,参照关系不能为主键。原因是在SC这张表中,作为参照关系,SNO的数据类型没有保持和被参照的表STUDENT。然后,创建下面这张表,其中SNO为外键,参照关系是SC,被参照是STUDENT。在这张已经建成的STUDENT表中,SNO为Primary Key, 类型为。3.参照表的值需要在所参考的表的那一个主键中已经存在的(即不能为空)2.外键所参照的键必须为被参照表的主键;1.外键不能为新建表的主键;更多相关代码可以访问。原创 2017-12-01 12:15:00 · 23505 阅读 · 1 评论 -
Hive报错:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
我的机器学习教程「美团」算法工程师带你入门机器学习 以及「三分钟系列」数据结构与算法已经开始更新了,欢迎大家订阅~这篇专栏整合了这几年的算法知识,简单易懂,也将是我实体书的BLOG版。欢迎大家扫码关注微信公众号「图灵的猫」,除了有更多AI、算法、Python相关文章分享,还有免费的SSR节点和外网学习资料。其他平台(微信/知乎/B站)也是同名「图灵的猫」,不要迷路哦~...原创 2018-07-09 17:09:09 · 672 阅读 · 0 评论