随笔分类 -  数据库相关

Sqlserver使用 Sql语句 存储过程的应用
摘要:偶然的机会,得知mysql主键的类型采用 varchar 存UUID 的查询性能没有int型做主键好。网上查询大量资料,都是停留在理论上的,因此,自己写了代码进行实测,以下结果仅供参考,不具备权威性。 三个表的字段,除了主键ID 分别采用varchar,bigint 和自动增长bigint不同外,其 阅读全文
posted @ 2017-09-28 19:44 PointNet 阅读(3073) 评论(1) 推荐(0) 编辑
摘要:SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用, 阅读全文
posted @ 2017-08-27 11:13 PointNet 阅读(360) 评论(0) 推荐(0) 编辑
摘要:MySql优化的一般步骤: 1.通过show status 命令了解各种sql的执行效率 SHOW STATUS提供msyql服务器的状态信息 一般情况下,我们只需要了解以”Com”开头的指令 show session status like ‘Com%’:显示当前的连接的统计结果 show glo 阅读全文
posted @ 2017-08-21 20:54 PointNet 阅读(676) 评论(0) 推荐(0) 编辑
摘要:很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询语句中字段的顺序不符。看下面的例子:假设有一张订单表(orders),包含order_id和product_id二个字段。一共有31条数据。符合下 阅读全文
posted @ 2017-08-19 12:46 PointNet 阅读(13597) 评论(5) 推荐(1) 编辑
摘要:创建一个多列索引:CREATE TABLE test ( id INT NOT NULL, last_name CHAR(30) NOT NULL, first_name CHAR(30) NOT NULL, PRIMARY KEY (id), INDEX name (last_name,first 阅读全文
posted @ 2017-04-05 17:30 PointNet 阅读(7057) 评论(0) 推荐(2) 编辑
摘要:InnoDB引擎的索引和存储结构 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。 1.MySQL主要存储引擎的区别 阅读全文
posted @ 2017-03-13 22:08 PointNet 阅读(735) 评论(0) 推荐(0) 编辑
摘要:悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Op 阅读全文
posted @ 2017-03-06 22:53 PointNet 阅读(21025) 评论(1) 推荐(0) 编辑
摘要:mongodb和memcached不是一个范畴内的东西。mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据。mongodb和memcached不存在谁替换谁的问题。和memcached更为接近的是redis。它们都是内存型数据库,数据保存在内存中,通过tcp直接存取, 阅读全文
posted @ 2017-02-27 11:52 PointNet 阅读(302) 评论(0) 推荐(0) 编辑
摘要:一.定义表变量DECLARE @T1 table(UserID int ,UserName nvarchar(50),CityName nvarchar(50));insert into @T1 (UserID,UserName,CityName) values (1,'a','上海')insert into @T1 (UserID,UserName,CityName) values (2,'b','北京')insert into @T1 (UserID,UserName,CityName) values (3,'c 阅读全文
posted @ 2013-01-07 10:31 PointNet 阅读(1757) 评论(0) 推荐(1) 编辑
摘要:Having Group by 阅读全文
posted @ 2012-12-05 17:53 PointNet 阅读(336) 评论(0) 推荐(0) 编辑
摘要:在SQL Server ,采用1,2,4,8,16.....等用数字标识的状态字段可以进行累加,对存在的几种状态进行组合,从而可形成各种组合状态例如:一条记录该字段原来的数字是,2,如我们想加上4,则可以用update t_User set iFlag = iFlag | 4 where UserID = 1(iFlag 为该字段名)例2:在加上4之后我们想去掉4怎么办呢,可以这样实现update t_User set iFlag = iFlag ^4 where UserID = 1这样就又把4从该记录中去掉了.如果我们想选择所有为2的记录该怎么做呢,可以这样实现select * from 阅读全文
posted @ 2012-05-03 17:10 PointNet 阅读(18677) 评论(2) 推荐(3) 编辑
摘要:1 TOP这是一个大家经常问到的问题,例如在SQLSERVER中可以使用如下语句来取得记录集中的前十条记录:SELECT TOP 10 * FROM [index] ORDER BY indexid DESC;但是这条SQL语句在SQLite中是无法执行的,应该改为:SELECT * FROM [index] ORDER BY indexid DESC limit 0,10;其中limit 0,10表示从第0条记录开始,往后一共读取10条2创建视图(Create View)SQLite在创建多表视图的时候有一个BUG,问题如下:CREATE VIEW watch_single AS SELEC 阅读全文
posted @ 2012-04-27 15:17 PointNet 阅读(5504) 评论(4) 推荐(1) 编辑
摘要:一、概念数据模型概述 概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。 通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系 (Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个 DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。 CDM是一组严格定义的模型元素的... 阅读全文
posted @ 2011-08-26 17:41 PointNet 阅读(570) 评论(0) 推荐(1) 编辑
摘要:sql中的某个字段用“,”分隔数据,需要获取数据的时候直接把“,”拆分成数据,获得一个数据的list。例如:需要查询某字段是否包含一个值,111是否存在于1111,2111,1112,1121,1113这个字段中。因为根据“,”逗号分开,要求的答案是:不在字段中。 用传统的like '%111%',显然不合适,这样虽然111不存在但是依然能查到该条记录。所以应该用以下语句实现:select * from Table where ','+columA+',' like '%,111,%'。实际就是把字段填上一个逗号然后在比较。如果你 阅读全文
posted @ 2011-07-27 12:32 PointNet 阅读(16399) 评论(0) 推荐(1) 编辑
摘要:如何快速生成100万不重复的8位编号收藏最近在论坛看到有人问,如何快速生成100万不重复的8位编号,对于这个问题,有几点是需要注意的:1.如何生成8位随机数,生成的数越随机,重复的可能性当然越小2.控制不重复3.考虑性能针对这个问题,我写了如下的示例来解决,希望能为有这类需求的人提供指导生成100万条8位不重复数据的示例中USEtempdbGO--创建测试表CREATETABLEtb(idchar(8))--创建用于自动过滤重复值的唯一索引CREATEUNIQUEINDEXIX_tbONtb(id)WITHIGNORE_DUP_KEYGO--测试数据插入的处理时间,记录开始处理的时间点DECL 阅读全文
posted @ 2011-07-01 11:50 PointNet 阅读(3484) 评论(1) 推荐(0) 编辑
摘要:动态sql语句基本语法 1 :普通SQL语句可以用Exec执行 eg: Select * from tableName Exec( 'select * from tableName ') Exec sp_executesql N 'select * from tableName ' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态... 阅读全文
posted @ 2010-10-19 17:21 PointNet 阅读(8034) 评论(0) 推荐(0) 编辑
摘要:插入一条记录后想要立刻获取其数据表中的主键返回值。这个主键是自动生成的,其实实现的方式有很多,比如再进行一次查询,获取出来。或者在插入数据之前取 出最大值,在最大值上面加一等等,方法很多,但是有些很不方便。 个人感觉最快的方式就是,在插入数据后直接获取主键的值,然后返回过来。方法如下:sql语句如下:INSERT INTO tableName (fieldname ...) values (v... 阅读全文
posted @ 2010-05-05 14:01 PointNet 阅读(2839) 评论(0) 推荐(0) 编辑
摘要:[代码]题目一、取出 A类中price最大的记录select cate,max(price) from t group by cate如果要用分组,只能取出两列,要把所有的列都显示出来后来想到用overselect id,des,price from (select *,max(price) over(PARTITION by cate) as newprice from t ) a where ... 阅读全文
posted @ 2010-04-14 11:27 PointNet 阅读(703) 评论(2) 推荐(0) 编辑
摘要:decimal(numeric ) 同义,用于精确存储数值 float 和 real 不能精确存储数值 decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一个准确(精确)的数字表达法;不存储值的近似值。 定义 decimal 的列、变量和参数的两种特性如下: p 小... 阅读全文
posted @ 2009-02-01 15:35 PointNet 阅读(972) 评论(0) 推荐(0) 编辑
摘要:select语句中只能使用sql函数对字段进行操作(链接sql server), select 字段1 from 表1 where 字段1.IndexOf("云")=1; 这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。 left()是sql函数。 select 字段1 from 表1 where charindex('云',字段1)=1; 字符串函数对二进... 阅读全文
posted @ 2008-09-28 14:01 PointNet 阅读(347) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示