
SQL
猫猫猫猫猫大人
工程师 -> 架构师 -> 全栈工程师 -> 全栈架构师
展开
-
SQLite语法学习
一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server---创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_转载 2016-06-15 11:29:11 · 1002 阅读 · 0 评论 -
我的MYSQL学习心得(十) 自定义存储过程和函数
这一篇《我的MYSQL学习心得(十)》将会讲解MYSQL的存储过程和函数MYSQL中创建存储过程和函数分别使用CREATE PROCEDURE和CREATE FUNCTION使用CALL语句来调用存储过程,存储过程也可以调用其他存储过程函数可以从语句外调用,能返回标量值创建存储过程语法CREATE PROCEDURE sp_name ([ proc_paramete转载 2016-09-18 18:58:37 · 2037 阅读 · 0 评论 -
我的MYSQL学习心得(十一) 视图
这一篇《我的MYSQL学习心得(十一)》将会讲解MYSQL的视图 使用视图的理由是什么?1、安全性:一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定,这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。2、查询性能提高3、有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果。转载 2016-09-18 18:59:40 · 527 阅读 · 0 评论 -
我的MYSQL学习心得(十二) 触发器
这一篇《我的MYSQL学习心得(二)》将会讲解MYSQL的触发器 触发器是一个特殊的存储过程,不同的是存储过程要用CALL来调用,而触发器不需要使用CALL也不需要手工启动,只要当一个预定义的事件发生的时候,就会被MYSQL自动调用。创建触发器语法如下:CREATE TRIGGER trigger_name trigger_time trigger_event转载 2016-09-18 19:01:42 · 568 阅读 · 0 评论 -
我的MYSQL学习心得(十三) 权限管理
这一篇《我的MYSQL学习心得(十三)》将会讲解MYSQL的用户管理 在mysql数据库中,有mysql_install_db脚本初始化权限表,存储权限的表有:1、user表2、db表3、host表4、table_priv表5、columns_priv表6、proc_priv表 MySQL存取控制包含2个阶段:阶段1:服务器检查你是否允许连接。阶段2转载 2016-09-18 19:03:05 · 793 阅读 · 0 评论 -
我的MYSQL学习心得(十四) 备份和恢复
这一篇《我的MYSQL学习心得(十四)》将会讲解MYSQL的备份和恢复MYSQL里的备份分为逻辑备份和物理备份,还原的时候同样分逻辑还原和物理还原 备份逻辑备份方法使用MYSQLDUMP命令备份MYSQLDUMP是MYSQL提供的一个非常有用的数据库备份工具。mysqldump命令执行时将数据库备份成一个文本文件,该文件中实际上包含了多个CREATE 和INSERT语句转载 2016-09-18 19:04:08 · 880 阅读 · 0 评论 -
我的MYSQL学习心得(十五) 日志
这一篇《我的MYSQL学习心得(十五)》将会讲解MYSQL的日志MYSQL里的日志主要分为4类,使用这些日志文件,可以查看MYSQL内部发生的事情。分别是1、错误日志:记录mysql服务的启动、运行、停止mysql服务时出现的问题2、查询日志:记录建立的客户端连接和执行的语句3、二进制日志:记录所有更改数据的语句,可以用于数据复制4、慢查询日志:记录所有执行时间超过long转载 2016-09-18 19:05:21 · 1179 阅读 · 0 评论 -
我的MYSQL学习心得(十六) 优化
一步一步走来已经写到了第十六篇了~ 这一篇主要介绍MYSQL的优化,优化MYSQL数据库是DBA和开发人员的必备技能MYSQL优化一方面是找出系统瓶颈,提高MYSQL数据库整体性能;另一方面需要合理的结构设计和参数调整,以提高用户操作响应的速度;同时还有尽可能节省系统资源,以便系统可以提供更大负荷的服务 如果大家看过我写的两篇文章,那么学习MYSQL的索引就不会太难,因为是转载 2016-09-18 19:06:49 · 1970 阅读 · 0 评论 -
我的MYSQL学习心得(十七) 复制
这一篇主要介绍MYSQL的复制MYSQL 从3.25.15版本开始提供数据库复制功能(replication)。mysql复制是指从一个mysql主服务器(MASTER)将数据复制到另一台或多台mysql从服务器(SLAVE)的过程,将主数据库的DDL和DML操作通过二进制日志传到复制服务器上,然后在从服务器上对这些日志重新执行,从而使从服务器的数据保持同步。 在mysql中,转载 2016-09-18 19:08:15 · 501 阅读 · 2 评论 -
truncate和delete的区别
清除mysql表中的数据truncate table 表明delete from 表明1.delete不能使自动编号返回起始值,但是truncate能使自动增长的列返回为默认的种子。2.truncate只能一次清空,不能按条件删除,delete可以。3.truncate效率高4.truncate不会记录到系统日志,不会触发delete触发器。原创 2016-09-20 13:29:30 · 633 阅读 · 0 评论 -
SQLite3 API 学习
核心C API: 查询封装: 连接与断开连接: 其实就是打开数据库。可以使用函数sqlite3_open_v2( )、 sqlite3_open( ) 、sqlite3_ open16( )。其中sqlite3_open_v2( )函数功能最强大,也是最新的函数,尽量使用这个函数。 打开数据库函转载 2016-06-15 13:48:18 · 6341 阅读 · 0 评论 -
mongodb,redis,mysql 对比
本篇内容大部分不是原创,转载的会贴有链接。准备学习下数据库,想对目前的主流数据库做一个简单的了解分析,就搜集了资料整理到了一块。当下主流的要数NoSql数据库了,拥有强大的高并发能力。mongodb:它是一个内存数据库,数据都是放在内存里面的。对数据的操作大部分都在内存中,但mongodb并不是单纯的内存数据库。持久化方式:mongodb的所有数据实际上是存放在硬盘的,原创 2016-12-27 17:00:22 · 4916 阅读 · 1 评论 -
Redis+Mysql模式和内存+硬盘模式的异同
学习任何新知识,都是一个循序渐进的过程,从刚开始的懵懂无知,到简单熟悉,然后突然的彻悟,成果让人欣喜若狂,心情也会快乐很久。redis+mysql和内存+硬盘类似的地方首先看图:首先,我们知道,MySQL是持久化存储,存放在磁盘里面,检索的话,会涉及到一定的IO,为了解决这个瓶颈,于是出现了缓存,比如现在用的最多的memcached(简称mc)。首先,用户访问mc,转载 2016-12-27 17:05:54 · 825 阅读 · 0 评论 -
mysql (master/slave)复制原理及配置
1 复制概述 MySQL内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到转载 2017-05-23 11:34:36 · 415 阅读 · 0 评论 -
Master-Slave通用基础框架
一、设计目的 设计出一个通用的Master-Slave基础框架,然后可以基于这个框架来实现特定的业务需求,比如实现多节点并行计算等。二、设计理念 基于经典的命令模式,Master和Slave之间通过相互发送命令(Command)实现交互,命令是一个抽象的概念,Command可以用来分发任务,也可以用来传输数据,这完全由业务来决定怎么处理,框架转载 2017-05-23 11:37:01 · 11009 阅读 · 0 评论 -
我的MYSQL学习心得(九) 索引
这一篇《我的MYSQL学习心得(九)》将会讲解MYSQL的索引 索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型。根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。大多数存储引擎有更高的限制。MYSQL中索引的存储类型有两种:BTREE和HASH,具体和表的存转载 2016-09-18 18:57:19 · 549 阅读 · 0 评论 -
我的MYSQL学习心得(八) 插入 更新 删除
这一篇《我的MYSQL学习心得(八)》将会讲解MYSQL的插入、更新和删除语句同样的,只会讲解跟SQLSERVER不同的地方 插入将多行查询结果插入到表中语法INSERT INTO table_name1(column_list1) SELECT (column_list2) FROM table_name2 WHERE (condition)INSERT IN转载 2016-09-18 18:56:24 · 388 阅读 · 0 评论 -
SQLite的设计与概念
1、 API由两部分组成: 核心API(core API) 和扩展API(extension API)核心API的函数实现基本的数据库操作:连接数据库,处理SQL,遍历结果集。它也包括一些实用函数,比如字符串转换,操作控制,调试和错误处理。扩展API通过创建你自定义的SQL函数去扩展SQLite。1.1、SQLite Version 3的一些新特点:(1)SQLite的API全转载 2016-06-15 11:32:40 · 1462 阅读 · 0 评论 -
SQLite3 测试程序
#include#include#include#include#define SIZE 64int bspsql_Callback(void *v, int lCount, char **ppszValue, char **ppszName);int main(int argc,char **argv){ int lInt = 0; int原创 2016-06-16 10:09:40 · 1215 阅读 · 0 评论 -
mysql导入数据load data infile用法
基本语法:load data [low_priority] [local] infile 'file_name txt' [replace | ignore]into table tbl_name[fields[terminated by't'][OPTIONALLY] enclosed by ''][escaped by'\' ]][lines terminated原创 2016-08-31 14:37:10 · 925 阅读 · 0 评论 -
SQL 触发器详解
1. 概述2. 触发器的分类3. Inserted和Deleted表4. 触发器的执行过程5. 创建触发器6. 修改触发器:7. 删除触发器:8. 查看数据库中已有触发器:9. “Instead of”相关示例:10. “After”触发器11. 参考资源1. 概述触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。 所以触发器可以原创 2016-08-22 14:40:05 · 706 阅读 · 0 评论 -
SQL 中 RAISERROR 的用法
raiserror 是由单词 raise error 组成 raise 增加; 提高; 提升raiserror 的作用: raiserror 是用于抛出一个错误。[ 以下资料来源于sql server 2005的帮助 ] 其语法如下:RAISERROR ( { msg_id | msg_str | @local_variable }转载 2016-08-22 15:32:12 · 3120 阅读 · 0 评论 -
触发器以及事前触发和事后触发,语句级触发和行级触发
一、触发器概念触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件(增、删、改)进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。触发器是在对表进行增、删、改时,自动执行的存储过程。触发器常用于强制业务规则,它是一种高级约束,通过事件进行触发而被执行。二、触发器分类SQL Server 包括两种常规类型的触发器:数据操作语言 (DM转载 2016-08-22 15:43:09 · 6885 阅读 · 0 评论 -
MYSQL视图的学习笔记
视图及图形化工具 1. 视图的定义视图就是从一个或多个表中,导出来的表,是一个虚拟存在的表。视图就像一个窗口(数据展示的窗口),通过这个窗口,可以看到系统专门提供的数据(也可以查看到数据表的全部数据),使用视图就可以不用看到数据表中的所有数据,而是只想得到所需的数据。在数据库中,只存放了视图的定义,并没有存放视图的数据,数据还是存储在原来的表里,视图的数据是依赖原来表中转载 2016-08-23 16:04:41 · 344 阅读 · 0 评论 -
我的MYSQL学习心得(一) 简单语法
语法的差异我这里主要说语法的不同1、默认约束区别:mysql里面DEFAULT关键字后面是不用加括号的--sqlserverCREATE TABLE emp(id INT DEFAULT(12))--mysqlCREATE TABLE emp(id INT DEFAULT 12)insert into emp(id) values(default)转载 2016-09-18 18:48:47 · 384 阅读 · 0 评论 -
我的MYSQL学习心得(二) 数据类型宽度
显示宽度 MYSQL中的整数型数据类型都可以指定显示宽度,而SQLSERVER不行 创建一个表CREATE TABLE tb_emp( id BIGINT(1))id字段的数据类型为BIGINT(1),注意到后面的数字1,这表示的是该数据类型指定的显示宽度,指定能够显示的数值中数字的个数。例如,假设声明一个INT类型的字段 YEARINT(4)转载 2016-09-18 18:49:48 · 337 阅读 · 0 评论 -
我的MYSQL学习心得(三) 查看字段长度
查看字段的长度SQLSERVER USE [sss]GOSELECT LEN([NAME]) FROM [dbo].[aa] MYSQLCREATE TABLE tmp13(vb VARBINARY(10))INSERT INTO tmp13 (vb) VALUES(12)SELECT LENGTH(vb) FROM tmp13INSERT IN转载 2016-09-18 18:50:47 · 389 阅读 · 0 评论 -
我的MYSQL学习心得(四) 数据类型
MYSQL里的BLOB数据类型BLOB是一个二进制大对象,用来存储可变数量的数据。BLOB类型分为4种:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。 MySQL的四种BLOB类型 类型 大小(单位:字节)TinyBlob 最大 255B转载 2016-09-18 18:51:57 · 703 阅读 · 0 评论 -
我的MYSQL学习心得(五) 运算符
MYSQL中的运算符很多,这一节主要讲MYSQL中有的,而SQLSERVER没有的运算符安全等于运算符()这个操作符和=操作符执行相同的比较操作,不过可以用来判断NULL值。在两个操作数均为NULL时,其返回值为1而不为NULL;而当一个操作数为NULL时,其返回值为0而不为NULL。下面分别是 SELECT NULL 1 SELECT 10 SELECT转载 2016-09-18 18:52:44 · 492 阅读 · 0 评论 -
我的MYSQL学习心得(六) 函数
这一节主要介绍MYSQL里的函数,MYSQL里的函数很多,我这里主要介绍MYSQL里有而SQLSERVER没有的函数数学函数1、求余函数MOD(X,Y)MOD(X,Y)返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,他返回除法运算后的精确余数SELECT MOD(31,8) 2、四舍五入函数TRUNCATE(X,Y)TRUNCATE(X,Y)转载 2016-09-18 18:54:34 · 1444 阅读 · 0 评论 -
我的MYSQL学习心得(七) 查询
在这个《我的MYSQL学习心得》系列里面,我一直都把MYSQL跟SQLSERVER进行比较,相互进行比较是学习一样东西比较好的方法比较出大家的异同点,从而加深记忆这一篇《我的MYSQL学习心得(七)》也是一样,相同的地方略略带过,不同的地方我会给出例子,谢谢大家的支持o(∩_∩)o 这一节主要介绍MYSQL里的基本查询(MYSQL官方参考手册)MySQL中select的转载 2016-09-18 18:55:22 · 641 阅读 · 0 评论 -
SQLServer空间查询geometry
一、介绍geometry数据类型为空间数据提供了一个存储结构,它是由任意平面上的坐标定义的。这种数据通常是用在区域匹配系统中的,例如由美国政府制定的州平面系统,或者是不需要考虑地球弯曲性的地图和内层布置图。geometry 数据类型提供了与开放地理空间联盟(OGC)Simple Features Specification for SQL标准结合的属性和方法,使得你可以对geometry数据执行操作原创 2018-01-18 11:54:25 · 16391 阅读 · 0 评论