
MySQL
life is wonderful
pay for life, pay for yourself
展开
-
MySQL学习10:外键约束下的更新操作
上一篇只是讲述了外键约束的要求,并没有讲述外键约束的参照操作。这一次我来看看外键约束下的更新操作。 一外键约束的参照操作 我们进行外键约束的创建以后,在更新表的时候,子表是否也进行相应的更新。这是我们创建外键约束最大的好处。有以下几种: 1)CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行。 2)SET NULL:原创 2016-05-10 15:32:16 · 13728 阅读 · 4 评论 -
MySQL学习21:初始存储过程
一存储过程简介 在学习存储过程之前我们先来看看MySQL数据库中的命令执行流程: (1)存储过程 存储过程是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理。 (2)存储过程的优点 1)增强SQL语句的功能和灵活性。 2)实现较快的执行速度。 3)减少网络流量。原创 2016-06-08 22:26:49 · 8557 阅读 · 0 评论 -
MySQL学习17:运算符与函数之字符函数
MySQL字符函数 MySQL数据库中常用的字符函数有下面几个: (1)字符连接 首先创建一个名字为imooc的数据库,然后再使用CONCAT()字符连接函数进行查询: CREATE DATABASE imooc; SELECT CONCAT('imooc','MySQL'); SELECT CON原创 2016-06-05 16:06:08 · 7211 阅读 · 0 评论 -
MySQL学习18:运算符与函数之数值运算符和函数、比较运算符和函数、日期时 间函数
数值运算符和函数 常见的数值函数下面几个: (1)数值运算符 MySQL数据库常见的数值运算符有:+、-、*、、、%等等。这里我们就不再一一列举,只是来看两个例子: SELECT 3+4; SELECT 3%4; (2)进一取整和舍一取整 SELECT CEIL(3.原创 2016-06-05 16:57:29 · 7750 阅读 · 0 评论 -
MySQL学习19:运算符与函数之信息函数、聚合函数、加密函数
信息函数 常用的信息函数有: (1)查看数据库连接ID和当前数据库 SELECT CONNECTION_ID(); SELECT DATABASE(); (2)查看最后输入记录的ID号 ALTER TABLE test ADD id SMALLINT UNSIGNED KEYAUTO_INCREME原创 2016-06-05 20:41:15 · 7117 阅读 · 0 评论 -
MySQL学习20:运算符与函数之自定义函数
一自定义函数简介 (1)自定义函数定义 用户自定义函数(user-defined function,UDF)是一种对MySQL数据库扩展的途径,其用法与内置函数相同。 (2)自定义函数的两个必要条件 1)参数:可以有零个或多个。 2)返回值:只能有一个返回值。 使用自定义函数的注意事项原创 2016-06-05 22:23:35 · 8269 阅读 · 0 评论 -
老调重弹:JDBC系列 之 存储过程 CallableStatement(创建和使用)
前言 最近在研究Mybatis框架,由于该框架基于JDBC,想要很好地理解和学习Mybatis,必须要对JDBC有较深入的了解。所以便把JDBC 这个东东翻出来,老调重弹,好好总结一番,作为自己的笔记,也是给读者一个参考~~~ 本文主要通过 使用JDBC创建存储过程 和使用JDBC调用存储过程两部分 阐述JDBC 对存储过程的支持。本文将在Oracle数转载 2017-04-18 23:02:12 · 1837 阅读 · 0 评论 -
SQL 多条件查询
网上有不少人提出过类似的问题:“看到有人写了WHERE 1=1这样的SQL,到底是什么意思?”。其实使用这种用法的开发人员一般都是在使用动态组装的SQL。让我们想像如下的场景:用户要求提供一个灵活的查询界面来根据各种复杂的条件来查询员工信息,界面如下图:界面中列出了四个查询条件,包括按工号查询、按姓名查询、按年龄查询以及按工资查询,每个查询条件前都有一个复选框,如果复选框被选中转载 2017-04-16 17:57:47 · 23669 阅读 · 1 评论 -
Mycat从入门到放弃
1.非分片字段查询Mycat中的路由结果是通过分片字段和分片方法来确定的。例如下图中的一个Mycat分库方案:根据 tt_waybill 表的 id 字段来进行分片分片方法为 id 值取 3 的模,根据模值确定在DB1,DB2,DB3中的某个分片如果查询条件中有 id 字段的情况还好,查询将会落到某个具体的分片。例如:MySQL>select * from tt_waybill where id转载 2017-08-24 22:33:50 · 1210 阅读 · 0 评论 -
mysql悲观锁总结和实践
最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证转载 2017-09-05 18:05:23 · 706 阅读 · 0 评论 -
mysql乐观锁总结和实践
上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁,具体参见下面介绍: 乐转载 2017-09-05 18:06:26 · 842 阅读 · 0 评论 -
SQL语句优化技巧
1、应尽量避免在 where 子句中使用!=或2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这转载 2017-09-05 23:05:22 · 1172 阅读 · 0 评论 -
Union和Union All的区别
假设我们有一个表Student,包括以下字段与数据: [c-sharp] view plain copy drop table student; create table student ( id int primary key, name nvarchar2(50) not null, score number not null ); insert into student转载 2017-09-06 17:25:02 · 988 阅读 · 0 评论 -
MySQL错误代码大全
原文链接:https://www.cnblogs.com/skillCoding/archive/2011/09/07/2169932.html可以直接参考原文,原文会持续更新,自己只是为了记录,这几天查了好多,还是蛮好的!本章列出了当你用任何主机语言调用MySQL时可能出现的错误。首先列出了服务器错误消息。其次列出了客户端程序消息。B.1. 服务器错误代码和消息服务器错误信息来自下述源文件:·转载 2018-01-10 10:42:35 · 1333 阅读 · 0 评论 -
解决使用UNIO关键字报错:The used SELECT statements have a different number of columns的方案
解决使用UNIO关键字报错:The used SELECT statements have a different number of columns的方案错误描述:异常信息:2018-05-15 16:50:08 [http-nio-8103-exec-8] ERROR com.huajin.queryserver.advice.ExpectionAdviceController - Handl...原创 2018-05-15 20:29:20 · 9591 阅读 · 0 评论 -
MySQL学习9:详解MySQL中的外键约束
本篇主要讲解MySQL中的外键约束。 一约束概述 创建约束的目的就是保证数据的完整性和一致性。约束根据约束针对的字段的数目的多少划分为表级约束和列级约束。 如果约束按照功能来划分的话刻印划分为:NOT NULL(非空约束)、PRIMARY KEY(主键约束)、UNIQUE KEY(唯一约束)、DEFAULT(默认约束)和FOREIGN原创 2016-05-09 15:55:34 · 2995 阅读 · 0 评论 -
MySQL学习8:操作数据表(二)
接着上一篇博客,这一次我们初步了解一些MySQL数据库中的约束。 六自动编号 AUTO_INCREMENT 自动编号的字段,必须与主键组合使用。默认情况下,起始值为1,每次的增量为1。 例子: CREATE TABLE tb3( id SMALLINT UNSIGNED AUTO_INCREM原创 2016-05-09 14:02:58 · 2003 阅读 · 1 评论 -
MySQL学习11:修改数据表(一)
修改数据表包括添加列、删除列、添加约束、删除约束,修改列定义和修改数据表名称,后面的两个我们使用时一定要谨慎,尽量不使用。 下面就来一个一个单独介绍怎么修改数据表: 一添加数据表中的列 (1)添加单列 MySQL数据库的数据表中添加单列的语法格式为: ALTER TABLE table_name ADD [原创 2016-05-11 14:30:50 · 6499 阅读 · 0 评论 -
MySQL学习12:修改数据表(二)
我们接着上一篇的添加约束的操作讲述。 三添加约束 (3)添加外键约束 ALTER TABLE table_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] [index_type] (index_col_name,...) references_definition;原创 2016-05-11 16:16:00 · 6386 阅读 · 3 评论 -
MySQL学习13:操作数据表中的记录(一)
操作MySQL数据库中的数据表的记录包括:记录的插入、记录的修改、记录的删除和记录的查询。简单来说、就是数据表中的记录的增删改查。 一插入记录 MySQL数据库中的数据表的记录的插入包括三种形式,在前面我们操作数据表的时候就已经使用过记录的插入。那只是我们最常使用的一种方式而已,接下来我们来看看记录的三种插入方式: (1)INSERT命令原创 2016-05-14 18:42:45 · 7617 阅读 · 1 评论 -
MySQL学习14:操作数据表中的记录(二)
四查询记录 MySQL数据库中对于数据表中的记录最常用的就是记录的查询,操作数据表中的记录大都是记录的查询。查找记录的语法结构为: SELECT select_expr [,select_expr ...] [ FROM table_refereneces [WHERE where原创 2016-05-15 17:05:41 · 10391 阅读 · 0 评论 -
MySQL学习1:初识MySQL
一什么是数据库? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。 我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据原创 2016-05-04 20:16:29 · 8692 阅读 · 0 评论 -
MySQL学习2:Windows 64位操作系统下安装和配置MySQL
一安装方式 MySQL安装文件分为两种,一种是MSI格式的,一种是ZIP格式的。下面来看看这两种方式: MSI格式的可以直接点击安装,按照它给出的安装提示进行安装,Windows操作系统下一般MySQL将会安装在C:\Program Files\MySQL该目录中。 ZIP格式是自己解压,解压缩之后其实MySQL就可以使用了,但是要进行配置。这个可原创 2016-05-05 11:19:13 · 5417 阅读 · 0 评论 -
MySQL学习15:子查询(一)
一数据准备 (1)创建数据库 CREATE DATABASE IF NOT EXISTS t2 CHARACTER SET gbk; (2)创建数据表 CREATE TABLE IF NOT EXISTS tdb_goods( goods_id SMALLINT UNSIGNED PRIMARY KEY原创 2016-05-29 13:03:26 · 9008 阅读 · 3 评论 -
MySQL学习15:子查询(二)
二子查询 3由[NOT] IN/EXISTS引发的子查询 使用[NOT] IN引发的子查询的语法结构:operand comparsion_operator [NOT] IN (subquery)。其中,=ANY运算符与IN等价;!=ALL或 例子: 1)查询所有商品中价格等于超级本价格(任意一个)的商品原创 2016-05-29 17:35:24 · 6192 阅读 · 2 评论 -
MySQL学习3:Windows 64位操作系统下验证MySQL
一验证计算机服务列表中是否有MySQL服务 (1)右击桌面上的计算机图标出现菜单列表选项,选中管理(有多种方式可以打开计算机本地服务列表,这里只是用的我习惯的打开方式)。 (2)出现计算机对话框,点击打开服务与应用程序中服务选项。 (3)在右侧的服务列表中寻找是否有名称为MySQL的服务,并且查看是否启动,这说明我们安装MySQL原创 2016-05-05 19:43:33 · 6116 阅读 · 0 评论 -
MySQL学习16:多表连接
一连接概述 (1)连接 MySQL数据库在SELECT语句,多表更新以及多表删除中都支持JOIN操作。多表连接的语法结构为: table_reference {[INNER | CROSS] JOIN} | {LEFT|RIGHT} [OUTER] JOIN} table_reference ON condtional_expr;原创 2016-05-29 22:22:16 · 6408 阅读 · 1 评论 -
MySQL学习4:Windows 64位操作系统下使用MySQL
以下所有的步骤都是使用命令行方式完成操作MySQL服务的。 一启动/关闭MySQL (1)启动MySQL服务 net start mysql (2)停止MySQL服务 net stop mysql 二登录/退出MySQL 首先我们先来看看一些重要的mysq原创 2016-05-06 14:11:19 · 2609 阅读 · 0 评论 -
MySQL学习5:数据库基本操作
以下均是在Windows 64位操作系统下的命令行使用。 学习之前我们先来解释一下MySQL语法格式中的一些符号代表的含义: (1)中括号([])表示存在或者不存在都可以,是可选参数。比如:SHOW {DATABASES | SCHEMAS} [LIKE 'pattern' | WHERE expr];此语法格式中的[]括起来的内容是可以不加的。原创 2016-05-07 17:04:50 · 3689 阅读 · 0 评论 -
MySQL学习6:MySQL基本数据类型
数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储方式,代表了不同的信息类型。MySQL中常用的的数据类型包括:数值类型、日期和时间类型和字符串类型等。 一数值类型 MySQL支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER、SMALLINT、DECIMAL、NUMBERIC),以及近似数值数据类型(FLOAT、原创 2016-05-07 20:47:21 · 4050 阅读 · 6 评论 -
MySQL学习7:操作数据表(一)
数据表 数据表(或称为表)是数据库最重要的组成部分之一,是其它对象的基础。 先来解决上一篇博客末尾说到的进入数据库验证的问题: 验证当前数据库是哪一个的MySQL命令为: SELECT DATABASE(); 例子: SHOW DATABASES; USE t1; SEL原创 2016-05-08 15:46:01 · 2157 阅读 · 0 评论 -
Mysql 更新时间(加上或者减去一段时间)
Mysql时间加减函数为date_add()、date_sub()定义和用法DATE_ADD() 函数向日期添加指定的时间间隔。DATE_SUB() 函数向日期减少指定的时间间隔。语法DATE_ADD(date,INTERVAL expr type)DATE_SUB(date,INTERVAL expr type)date 参数是合法的日期表达式。expr参数是您希望添加的时...转载 2018-12-24 18:55:39 · 2786 阅读 · 1 评论