write down,forget
adidas eqt support ultra primeknit vintage white coming soon adidas eqt support ultra boost primeknit adidas eqt support ultra pk vintage white available now adidas eqt support ultra primeknit vintage white sz adidas eqt support ultra boost primeknit adidas eqt adv support primeknit adidas eqt support ultra boost turbo red white adidas eqt support ultra boost turbo red white adidas eqt support ultra boost turbo red adidas eqt support ultra whiteturbo adidas eqt support ultra boost off white more images adidas eqt support ultra boost white tactile green adidas eqt support ultra boost beige adidas eqt support ultra boost beige adidas eqt support refined camo drop adidas eqt support refined camo drop adidas eqt support refined running whitecamo adidas eqt support 93 primeknit og colorway ba7506 adidas eqt running support 93 adidas eqt support 93
分类 Category : 数据库

php mysql bit类型处理

<Category: Mysql, PHP> Comments Off on php mysql bit类型处理

http://codeigniter.com/forums/viewthread/157028/#758143
http://www.dotcoo.com/post-101.html

php读取mysql列bit(1)列时获得的是一个二进制的数据,不是布尔值不是字符串也不是数字,所以不能正常使用也不能正常显示,可以使用ord函数把二进制数据转换为数字。

ord函数的作用就是将ASCII的字符转换为他们的字面值,对于二进制数字也有效。

ord函数能转换出来的最大的值是255,也就是一个字节,对于bit(8)以上的列不能正常转换。

本文来自: php mysql bit类型处理

SQL Server 切换用户模式

<Category: SQL Server> Comments Off on SQL Server 切换用户模式
在sql server中,数据库不能同时为单用户模式和只供 dbo 使用模式
可以通过使用 alter database 命令来切换使用:
alter database DatabaseName set single_user
该命令限制用户只能逐个访问数据库
alter database DatabaseName set restricted_user
该命令限制只有 db_owner、dbcreator 或 sysadmin 角色的成员才能访问数据库
alter database DatabaseName set multi_user
该命令将数据库的访问权限返回其一般运行状态

在sql server中,数据库不能同时为单用户模式和只供 dbo 使用模式

可以通过使用 alter database 命令来切换使用:

alter database DatabaseName set single_user

该命令限制用户只能逐个访问数据库

alter database DatabaseName set restricted_user

该命令限制只有 db_owner、dbcreator 或 sysadmin 角色的成员才能访问数据库

alter database DatabaseName set multi_user

该命令将数据库的访问权限返回其一般运行状态

本文来自: SQL Server 切换用户模式

sqlserver2008安装报错 “Previous releases of Microsoft Visual Studio 2008″ failed.

<Category: .NET, SQL Server> Comments Off on sqlserver2008安装报错 “Previous releases of Microsoft Visual Studio 2008″ failed.

“Previous releases of Microsoft Visual Studio 2008″ failed.

问题原因,vs2008未安装sp1

解决办法:

1.去掉下面3个安装组件

  • Management Tools
  • Integration Services
  • Business Intelligence Development Studio
  • 2.转到安装目录,执行:

     

     

    本文来自: sqlserver2008安装报错 “Previous releases of Microsoft Visual Studio 2008″ failed.

    [转] SQL优化心得

    <Category: SQL Server> Comments Off on [转] SQL优化心得

    大家都在讨论关于数据库优化方面的东东,刚好参与开发了一个数据仓库方面的项目,以下的一点东西算是数据库优化方面的学习+实战的一些心得体会了,拿出来大家共享。欢迎批评指正阿!

    SQL语句:
    是对数据库(数据)进行操作的惟一途径;
    消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;
    可以有不同的写法;易学,难精通。

    SQL优化:
    固定的SQL书写习惯,相同的查询尽量保持相同,存储过程的效率较高。
    应该编写与其格式一致的语句,包括字母的大小写、标点符号、换行的位置等都要一致

    ORACLE优化器:
    在任何可能的时候都会对表达式进行评估,并且把特定的语法结构转换成等价的结构,这么做的原因是
    要么结果表达式能够比源表达式具有更快的速度
    要么源表达式只是结果表达式的一个等价语义结构
    不同的SQL结构有时具有同样的操作(例如:= ANY (subquery) and IN (subquery)),ORACLE会把他们映射到一个单一的语义结构。

    阅读这篇文章的其余部分 »

    本文来自: [转] SQL优化心得

    [转] 影响SQL server性能的关键三个方面

    <Category: SQL Server> Comments Off on [转] 影响SQL server性能的关键三个方面

    1 逻辑数据库和表的设计
    数据库的逻辑设计、包括表与表之间的关系是优化关系型数据库性能的核心。一个好的逻辑数据库设计可以为

    优化数据库和应用程序打下良好的基础。

    标准化的数据库逻辑设计包括用多的、有相互关系的窄表来代替很多列的长数据表。下面是一些使用标准化

    表的一些好处。

    A:由于表窄,因此可以使排序和建立索引更为迅速

    B:由于多表,所以多镞的索引成为可能

    C:更窄更紧凑的索引

    D:每个表中可以有少一些的索引,因此可以提高insert update delete等的速度,因为这些操作在索引

    多的情况下会对系统性能产生很大的影响

    E:更少的空值和更少的多余值,增加了数据库的紧凑性

    由于标准化,所以会增加了在获取数据时引用表的数目和其间的连接关系的复杂性。太多的表和复杂的连接关系会降低服务器的性能,因此在这两者之间需要综合考虑。
    定义具有相关关系的主键和外来键时应该注意的事项主要是:用于连接多表的主键和参考的键要有相同的数据类型。

    阅读这篇文章的其余部分 »

    本文来自: [转] 影响SQL server性能的关键三个方面

    多个字段排序的sql

    <Category: SQL Server> Comments Off on 多个字段排序的sql

    sql又生疏了…

    Untitled

    SQL的identity函数只有在select into时才可用;
    DB2 的自增列函数 ROW_NUMBER() OVER() ;

    本文来自: 多个字段排序的sql

    深入讲解数据库中User和Schema的关系

    <Category: SQL Server> Comments Off on 深入讲解数据库中User和Schema的关系

     User和Schema比较容易混淆,搞不清他们之间是什么关系,转一篇文章。

    假如我们想了解数据库中的User和Schema究竟是什么关系,首先必须了解一下数据库中User和Schema到底是什么概念。

           在SQL Server2000中,由于架构的原因,User和Schema总有一层隐含的关系,让我们很少意识到其实User和Schema是两种完全不同的概念,不过在SQL Server2005中这种架构被打破了,User和Schema也被分开了。

    首先我来做一个比喻,什么是Database,什么是Schema,什么是Table,什么是列,什么是行,什么是User?我们可以可以把Database看作是一个大仓库,仓库分了很多很多的房间,Schema就是其中的房间,一个Schema代表一个房间,Table可以看作是每个Schema中的床,Table(床)就被放入每个房间中,不能放置在房间之外,那岂不是晚上睡觉无家可归了J。,然后床上可以放置很多物品,就好比Table上可以放置很多列和行一样,数据库中存储数据的基本单元是Table,现实中每个仓库放置物品的基本单位就是床, User就是每个Schema的主人,(所以Schema包含的是Object,而不是User),其实User是对应与数据库的(即User是每个对应数据库的主人),既然有操作数据库(仓库)的权利,就肯定有操作数据库中每个Schema(房间)的权利,就是说每个数据库映射的User有每个Schema(房间)的钥匙,换句话说,如果他是某个仓库的主人,那么这个仓库的使用权和仓库中的所有东西都是他的(包括房间),他有完全的操作权,可以扔掉不用的东西从每个房间,也可以放置一些有用的东西到某一个房间,呵呵,和现实也太相似了吧。我还可以给User分配具体的权限,也就是他到某一个房间能做些什么,是只能看(Read-Only),还是可以像主人一样有所有的控制权(R/W),这个就要看这个User所对应的角色Role了,至于分配权限的问题,我留在以后单独的blog中详述。比喻到这里,相信大家都清楚了吧。

    阅读这篇文章的其余部分 »

    本文来自: 深入讲解数据库中User和Schema的关系

    SQL条件处理–Case语句

    <Category: SQL Server> Comments Off on SQL条件处理–Case语句

    SQL中使用CASE处理条件

         在使用SQL的过程中,有时候可能会要对数据进行条件查询。比如字段A为True时查询出“男”,否则查询出“女”。这样就可以不在程序中在去判断了。在SQL中,可以利用Case语句来完成这样的查询。

    一、Case介绍

    CASE
    计算条件列表并返回多个可能结果表达式之一。

    CASE 具有两种格式:

    简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。
    CASE 搜索函数计算一组布尔表达式以确定结果。
    两种格式都支持可选的 ELSE 参数。

    语法
    简单 CASE 函数:

    CASE input_expression
        WHEN when_expression THEN result_expression
            [ …n ]
        [
            ELSE else_result_expression
        END

    CASE 搜索函数:

    CASE
        WHEN Boolean_expression THEN result_expression
            [ …n ]
        [
            ELSE else_result_expression
        END

    参数
    input_expression

    是使用简单 CASE 格式时所计算的表达式。Input_expression 是任何有效的 Microsoft® SQL Server™ 表达式。

    WHEN when_expression

    使用简单 CASE 格式时 input_expression 所比较的简单表达式。When_expression 是任意有效的 SQL Server 表达式。Input_expression 和每个 when_expression 的数据类型必须相同,或者是隐性转换。

    n

    占位符,表明可以使用多个 WHEN when_expression THEN result_expression 子句或 WHEN Boolean_expression THEN result_expression 子句。

    THEN result_expression

    当 input_expression = when_expression 取值为 TRUE,或者 Boolean_expression 取值为 TRUE 时返回的表达式。result expression 是任意有效的 SQL Server 表达式。

    ELSE else_result_expression

    当比较运算取值不为 TRUE 时返回的表达式。如果省略此参数并且比较运算取值不为 TRUE,CASE 将返回 NULL 值。Else_result_expression 是任意有效的 SQL Server 表达式。Else_result_expression 和所有 result_expression 的数据类型必须相同,或者必须是隐性转换。

    WHEN Boolean_expression

    使用 CASE 搜索格式时所计算的布尔表达式。Boolean_expression 是任意有效的布尔表达式。

    二、SQL中的Case语句实例

        CASE 函数用于计算多个条件并为每个条件返回单个值。CASE 函数通常的用途是使用可读性更强的值替换代码或缩写。下面的查询使用 CASE 函数重命名书籍的分类,以使之更易理解。

    USE pubs
    SELECT
       CASE type
          WHEN ‘popular_comp’ THEN ‘Popular Computing’
          WHEN ‘mod_cook’ THEN ‘Modern Cooking’
          WHEN ‘business’ THEN ‘Business’
          WHEN ‘psychology’ THEN ‘Psychology’
          WHEN ‘trad_cook’ THEN ‘Traditional Cooking’
          ELSE ‘Not yet categorized’
       END AS Category,
    CONVERT(varchar(30), title) AS “Shortened Title”,
    price AS Price
    FROM titles
    WHERE price IS NOT NULL
    ORDER BY 1

    下面是结果集:

    category            shortened title                Price �
    ——————- —————————— ——-
    Business            Cooking with Computers: Surrep 11.95 �
    Business            Straight Talk About Computers  19.99 �
    Business            The Busy Executive’s Database  19.99 �
    Business            You Can Combat Computer Stress 2.99  �
    Modern Cooking      Silicon Valley Gastronomic Tre 19.99 �
    Modern Cooking      The Gourmet Microwave          2.99  �
    Popular Computing   But Is It User Friendly?       22.95 �
    Popular Computing   Secrets of Silicon Valley      20.00 �
    Psychology          Computer Phobic AND Non-Phobic 21.59 �
    Psychology          Emotional Security: A New Algo 7.99  �
    Psychology          Is Anger the Enemy?            10.95 �
    Psychology          Life Without Fear              7.00  �
    Psychology          Prolonged Data Deprivation: Fo 19.99 �
    Traditional Cooking Fifty Years in Buckingham Pala 11.95 �
    Traditional Cooking Onions, Leeks, and Garlic: Coo 20.95 �
    Traditional Cooking Sushi, Anyone?                 14.99  

    (16 row(s) affected)

    CASE 函数的另一个用途给数据分类。下面的查询使用 CASE 函数对价格分类。

    SELECT
       CASE
          WHEN price IS NULL THEN ‘Not yet priced’
          WHEN price < 10 THEN ‘Very Reasonable Title’
          WHEN price >= 10 and price < 20 THEN ‘Coffee Table Title’
          ELSE ‘Expensive book!’
       END AS “Price Category”,
    CONVERT(varchar(20), title) AS “Shortened Title”
    FROM pubs.dbo.titles
    ORDER BY price

    下面是结果集:

    Price Category        Shortened Title    �
    ——————— ——————–
    Not yet priced        The Psychology of Co
    Not yet priced        Net Etiquette      �
    Very Reasonable Title You Can Combat Compu
    Very Reasonable Title The Gourmet Microwav
    Very Reasonable Title Life Without Fear  �
    Very Reasonable Title Emotional Security:�
    Coffee Table Title    Is Anger the Enemy?�
    Coffee Table Title    Cooking with Compute
    Coffee Table Title    Fifty Years in Bucki
    Coffee Table Title    Sushi, Anyone?     �
    Coffee Table Title    The Busy Executive’s
    Coffee Table Title    Straight Talk About�
    Coffee Table Title    Silicon Valley Gastr
    Coffee Table Title    Prolonged Data Depri
    Expensive book!       Secrets of Silicon V
    Expensive book!       Onions, Leeks, and G
    Expensive book!       Computer Phobic AND�
    Expensive book!       But Is It User Frien

    (18 row(s) affected)

    本文来自: SQL条件处理–Case语句

    SET PARSEONLY 与SET NOEXEC (Transact-SQL)

    <Category: SQL Server> 1 条评论

    SET PARSEONLY
    检查每个 Transact-SQL 语句的语法并返回任何错误消息,但不编译和执行语句。
    SET PARSEONLY { ON | OFF }

    当 SET PARSEONLY 为 ON 时,SQL Server 只分析语句。当 SET PARSEONLY 为 OFF 时,SQL Server 编译并执行语句。

    SET PARSEONLY 的设置是在分析时设置,而不是在执行或运行时设置。

    在存储过程或触发器中不要使用 PARSEONLY。如果 OFFSETS 选项为 ON 而且没有出现错误,则 SET PARSEONLY 返回偏移量。

    SET NOEXEC (Transact-SQL)

    编译每个查询但不执行查询。
    SET NOEXEC { ON | OFF }
    当 SET NOEXEC 为 ON 时,SQL Server 将编译每一批处理 Transact-SQL 语句但并不执行它们。当 SET NOEXEC 设置为 OFF 时,所有批处理将在编译后执行。

    SQL Server 中的语句执行包含两个阶段:编译和执行。该设置可用于让 SQL Server 在执行 Transact-SQL 代码时,验证代码中的语法和对象名。它也可以用于调试通常是较大的批处理中的部分语句。

    SET NOEXEC 设置是在执行或运行时设置,而不是在分析时设置。

     

    USE AdventureWorks;
    GO
    PRINT ‘Valid query’;
    GO
    — SET NOEXEC to ON.
    SET NOEXEC ON;
    GO
    — Inner join.
    SELECT e.EmployeeID, e.Title, v.Name
    FROM HumanResources.Employee e
    INNER JOIN Purchasing.PurchaseOrderHeader poh
    ON e.EmployeeID = poh.EmployeeID
    INNER JOIN Purchasing.Vendor v
    ON poh.VendorID = v.VendorID;
    GO
    — SET NOEXEC to OFF.
    SET NOEXEC OFF;
    GO

    PRINT ‘Invalid object name’;
    GO
    — SET NOEXEC to ON.
    SET NOEXEC ON;
    GO
    — Function name used is a reserved keyword.
    USE AdventureWorks;
    GO
    CREATE FUNCTION dbo.Values(@EmployeeID INT)
    RETURNS TABLE
    AS
    RETURN (SELECT PurchaseOrderID, TotalDue
    FROM dbo.PurchaseOrderHeader
    WHERE EmployeeID = @EmployeeID)
    — SET NOEXEC to OFF.
    SET NOEXEC OFF
    GO

    PRINT ‘Invalid syntax’;
    GO
    — SET NOEXEC to ON.
    SET NOEXEC ON;
    GO
    — Built-in function incorrectly invoked
    SELECT *
    FROM fn_helpcollations;
    — Reset SET NOEXEC to OFF.
    SET NOEXEC OFF;
    GO

    本文来自: SET PARSEONLY 与SET NOEXEC (Transact-SQL)

    从数据库随机读取数据

    <Category: SQL Server> Comments Off on 从数据库随机读取数据

    示例代码:
    SQL Server:Select Top * From  表 Order By NewID()  
    Access  :Select Top * From 表 Order By Rnd(ID) 
            *说明-Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)  Select Top 10 * From 表 Order BY Rnd(Len(UserName))
     
    MySql:Select * From 表 Order By Rand() Limit 10

    本文来自: 从数据库随机读取数据