精华内容
下载资源
问答
  • 数据库null的默认排序及解决方案 –最大派 Oracle中排序时默认null最大; 处理方法:null first/last语法... 相当于创建新列,null时为1,不是null时为0,先对新列排序再 对age列排序,这样null就变成了最大

    –最大派
    Oracle中排序时默认null最大;
    处理方法:null first/last语法
    (oracle9i版本后支持case语法)

    –最小派
    Sql Server中排序时默认null最小;
    Mysql中排序时默认null最小;
    处理方法:case语法,类似创建一无null的新列并优先进行排序
    (不支持null first/last语法)

    –实践
    –age为年龄字段,null排在最后面
    –oracle专用nulls last语法

    select * from table order by age nulls last;(升序)
    select * from table order by age asc nulls last;(升序)
    select * from table order by age desc nulls last;(降序)
    –Mysql、Sql Server、oracle(oracle9i版本后支持)通用case语法
    select * from table order by case when age is null then 1 else 0 end,age;(升序)
    select * from table order by case when age is null then 0 else 1 end desc,age;(升序)
    select * from table order by case when age is null then 1 else 0 end,age desc;(降序)
    select * from table order by case when age is null then 0 else 1 end desc,age desc;(降序)
    –age为年龄字段,null排在最前面
    –oracle专用nulls first语法

    select * from table order by age nulls first;(升序)
    select * from table order by age asc nulls first;(升序)
    select * from table order by age desc nulls first;(降序)
    –Mysql、Sql Server、oracle(oracle9i版本后支持)通用case语法
    select * from table order by case when age is null then 0 else 1 end,age;(升序)
    select * from table order by case when age is null then 1 else 0 end desc,age;(升序)
    select * from table order by case when age is null then 0 else 1 end,age desc;(降序)
    select * from table order by case when age is null then 1 else 0 end desc,age desc;(降序)

    欢迎评论留言!

    展开全文
  • DbNull 是指数据库中当一个字段没有被设置的时候的相当于数据库中的“空值”。  null 是 C# 中是空引用的意思(在 VB 中为 Nothing),表示没有引用任何对象。 它们的意义是不同的。  * null表示一个对象的...
     DbNull 是指数据库中当一个字段没有被设置值的时候的值,相当于数据库中的“空值”。
           null 是 C# 中是空引用的意思(在 VB 中为 Nothing),表示没有引用任何对象。
    它们的意义是不同的。
                     * null表示一个对象的指向无效,即该对象为空对象。
                       DBNull.Value表示一个对象在数据库中的值为空,
                     * 或者说未初始化,DBNull.Value对象是指向有效的对象。
    展开全文
  • pdo操作sqlite数据库

    千次阅读 2018-12-11 17:10:51
    sqlite数据库介绍 ...NULL: 表示该值为NULL值 INTEGER: 无符号整型值,相当于mysql中的int相关的几种类型 REAL: 浮点值,相当于mysql中的float、double和decimal TEXT: 文本字符串,存储使用的编码方式为...

    sqlite数据库介绍

    一款轻量级关系数据库,不需要单独的进程启动或停止服务,很适合作为左面程序或者手机应用的内置数据库

    sqlite数据类型有下面几种

    • NULL: 表示该值为NULL值
    • INTEGER: 无符号整型值,相当于mysql中的int相关的几种类型
    • REAL: 浮点值,相当于mysql中的float、double和decimal
    • TEXT: 文本字符串,存储使用的编码方式为UTF-8、UTF-16BE、UTF-16LE,相当于mysql中的varchar、char和text等
    • BLOB: 存储Blob数据,该类型数据和输入数据完全相同

    下载sqlite

    官方下载地址

    找到windows 版本

    下载后将两个压缩包的的文件解压到一个文件夹中,文件夹命名为 sqlite

    创建数据库

    创建数据库有两种方式:

    1. 使用命令
    2. 使用图形化管理工具,如navicate

    这里只说使用命令的方式

    第一步:拷贝

    将sqlite文件夹拷贝到一个经常使用的目录,如我将其拷贝到了D:\developer下,如图

     

    第二步:添加环境变量

    为了使用方便,将sqlite添加到环境变量

    添加方式,鼠标右键“此电脑”,训责“属性”

    然后选择“高级系统设置”,再选择“环境变量”

    在弹出的窗体中,选择“系统变量”下的Path,再选择“编辑”

    在弹出的窗体中点击“新建”,然后输入sqlite数据库所在的路径

    然后点击“确定”。。。。

    第三步:创建数据库

    使用windows+R 快捷键调出如下窗口,输入"cmd“

    会弹出dos命令窗口

    然后使用命令切换到目录数据库目录

    比如,你想要在如下路径下新建sqlite数据库

    D:\phpStudy\WWW\test

    就需要键入如下命令,将当前目录切换成上面的目录

    然后使用如下命令创建数据库

    注意:命令执行完毕后,在指定目录不会出现 test.db 文件

    需要在出现的 sqlite 命令符下键入如下命令才会出现

    注意观察目录,已经可以看到test.db文件了

    至此,数据库创建成功

    第四步:创建表

    可以继续在命令行中键入sql语句创建表

    但是现在我们学习使用navicate连接sqlite数据库并创建表

    打开navicate,点击“连接”,选择”sqlite“

    键入连接名称,并选择想要操作的数据库

    然后选择“确定”

    再双击“test”连接名称,再双击"main",然后就可以使用图形化或者sql语句创建表了

    我们使用sql语句的方式

    点击“查询”->“新建查询”

    编写如下sql语句,创建表

    CREATE TABLE users(
    id INTEGER PRIMARY KEY,
    username TEXT,
    password TEXT
    )
    

    至此,表创建完成

    pdo 操作 sqlite

    在这里,只列出增加数据的代码,重点在于数据库连接字符串的拼写与连接mysql时的差异,其他代码与操作mysql数据库没有差别,大家可以参考pdo操作mysql的代码自行实验

    <?php
    //连接字符串
    $dsn = "sqlite:".dirname(__FILE__) . '\test.db';
    try {
        //创建连接
        $pdo = new PDO($dsn);
        //设置编码
        $pdo->exec("set names utf8");
        //插入数据
        $id = 3;
        $username = "onlifes";
        $password = "123456";
        $sql = "insert into users(id,username,password) values($id,'$username','$password')";
        $pdo_statement = $pdo->exec($sql);
        if ($pdo_statement == false) {
            echo 'sql语句错误:' . $pdo->errorInfo()[2];
            die();
        }
        if ($pdo_statement > 0) {
            echo "执行成功";
        } else {
            echo "执行失败";
        }
    } catch (PDOException $e) {
        var_dump($e->getMessage());
    }
    
    
    

     

     

     

    展开全文
  • mysql数据库

    2021-02-18 13:52:45
    分组group bywhere和having的区别第一条以后开始显示10条 相当于是2-10条记录表的关系左链接 注意:where 是当的意思 添加; insert into student value(1,“张三”,“20”,“哈尔滨”); 查询; selec


    注意:where 是当的意思

    添加;

    insert into student value(1,“张三”,“20”,“哈尔滨”);

    查询;
    select * from student;
    select id from student;

    更新;

    UPDATE student set name = ‘111’ where id = 1;

    删除表;

    DELETE FROM student;

    删除单条

    delete from student where id = 1;

    去重查询

    select distinct name,age from student; 相同名字的只显示一个

    运算符:

    >、<、>=、<=、=、<>(sql中表示不等于)  !=(mysql方言)
    

    模糊查询

    like
    %–>匹配任意个字符(>=0) ‘张%’ 姓张的
    _–>匹配一个字符 ‘_县’ 最后一个字为县的
    语法:select * from student3 where name like ‘%张%’;

    集合

    in(值1,值2,…值n) 包含
    – 查询数学分数为60,80,90的同学
    SELECT *
    FROM student3
    WHERE math IN(60,80,90);

    逻辑(sql)–> && || !

    and(并且)
    or(或者)
    not(非)

    – 查询年龄大于35岁,性别为男的学生
    SELECT *
    FROM student3
    WHERE age>35 AND sex=‘男’;

    SELECT *
    FROM student3
    WHERE math NOT IN(60,80,90);

    between 值1 and 值2

    表示从值1到值2的范围(包含头值,包含尾值)。
    – 查询英语分数在100和60之间的学生
    SELECT *
    FROM student3
    WHERE english<=100 AND english>=60;

    SELECT *
    FROM student3
    WHERE english BETWEEN 60 AND 100;

    is NUll

    为null(空值)值
    – 姓名不为null的学生都有谁
    SELECT *
    FROM student3
    WHERE NAME IS NOT NULL;

    排序查询

    语法(多列、组合):
    select 字段
    from 表名
    where 条件
    order by 字段1[升序默认(asc)|降序(desc)],字段2[升序默认(asc)|降序(desc)]…

    – 查询所有男学生的信息,按照数学分数降序排序,分数相等,按照英语分数升序排序
    SELECT *
    FROM student3
    WHERE sex=‘男’
    ORDER BY math DESC,english;

    聚合函数

    max(列名) :求这一列中的最大值
    min(列名):求这一列中的最小值
    avg(列名):求这一列中的平均值
    count(列名):统计这一列总共有多少条数据
    sum(列名):求这一列中总和
    语法:
    select 聚合函数(字段) from 表名;

    ifNull(列名,默认值):如果列名为空,返回默认值。

    分组group by

    – 查询年龄大于20岁,按性别分组,统计每组人数
    SELECT sex, count( * )
    FROM student3
    WHERE age > 20
    GROUP BY sex;

    语法:
    select 字段
    from 表名
    [where 条件查询]
    group by 分组字段
    having 条件查询
    – 查询年龄大于20岁,按性别分组,统计每组人数,并显示人数大于3的数据
    SELECT sex,COUNT()
    FROM student3
    WHERE age>20
    GROUP BY sex
    HAVING COUNT(
    )>3;

    where和having的区别

    where子句:1.对象查询结果分组前,将不符合where条件的数据进行过滤(先过滤后分组)。
    2.where 后面不可以使用聚合函数
    having子句:1.作用是筛选满足条件的组,在分组之后在进行过滤(先分组然后过滤)。
    2.having后面可以使用聚合函数。
    group by 后边不能直接where

    第一条以后开始显示10条 相当于是2-10条记录

    SELECT *
    FROM student3
    LIMIT 1,10;

    只有一个参数是显示5条记录
    SELECT *
    FROM student3
    LIMIT 5;

    表的关系

    1.一对多(1:n)学生表和课程表
    一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键。
    2.一对一(1:1)在实际开发中应用不多。一对一可以创建成为一张表。
    3.多对多(M:N)
    多对多关系建表原则:需要创建第三张表,中间表至少两个字段,这两个字段分别做为外键指向各自一方的主键。

    左链接

    SELECT * 查询所有字段
    FROM emp 来自emp表
    left JOIN dept 来自dept表
    ON emp.DEPTNO=dept.deptno 两个表中字段
    WHERE emp.HIREDATE>‘1981-1-1’; 查询的条件

    展开全文
  • 同一具有UNIQUE约束的列或者行,可以允许只有一个空值,就是相当于,这个具有空值的行或者列可以用空值来和其他非空值行或者列区别。 而约束中的PRIMARY KEY,不能允许有空值。它来定义基本表的主键,起唯一标识作用...
  • android sqlite数据库使用

    热门讨论 2011-09-17 00:25:56
    有了上面的基础这里就容易理解了,这里的whereClause相当于前面的selection,whereArgs相当于前面的selectionArgs。 view plaincopy to clipboardprint? 1. public static void update(Context context) { 2. ...
  • 数据库-002

    2021-04-10 10:25:18
    SQL内置函数 Count()函数 AVG()函数 SUM()函数 GROUP BY 分组聚合函数 1.Count()函数 ...SELECT AVG(payment) AS'average_for_men' #AS后面相当于给它另起一个名 FROM TABLE1 WHRER sex='M'; 3.
  • 主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值;如果的多列组合的主键约束, 那么这些列都不允许为空值,并且组合的不允许重复。 每个表最多只允许一个主键,建立主键约束可以...
  • integer(整型)、real(浮点型)、...primary key:主键,用来唯一的标识某条记录,相当于记录的身份证。主键可以是一个或多个字段,应由计算机自动生成和管理。主键字段默认包含了not null和unique两个约束。 autoin...
  • 查看每个人的佣金和薪金的和 相当于查询了一个新的字段:注意:如果一个null相加 那么得到的一定是nullselect empno,sal+comm from emp;可以在查询的时候 给空值赋个(IFNULL(字段,))select *,sal+IFNULL(...
  • 翻译的过程中,译者感到此言不虚:作者从数据库的基本概念到数据库建模,从如何运用规范化原则到如何做成实际的数据库表,从如何保护数据库完整性到如何提高数据库的性能,从数据库的安全机制到并发事务控制,从...
  • 翻译的过程中,译者感到此言不虚:作者从数据库的基本概念到数据库建模,从如何运用规范化原则到如何做成实际的数据库表,从如何保护数据库完整性到如何提高数据库的性能,从数据库的安全机制到并发事务控制,从...
  • 10.in (相当于or) not in(相当于and) select 字段名 from 表名 where 字段名 in(数值,数值); select 字段名 from 表名 where 字段名 not in(数值,数值); 11.模糊查询 like %:0个或多个任意字符 _:1个任意字符 ...
  • count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列NULL count(1)包括了所有列,用1代表代码行,在统计结果的时候,不会忽略列NULL count(列名)只包括列名那一列,在统计结果的时候,会忽略...
  • 一,oracle中nvl()函数 NVL(表达式1,表达式2) 如果表达式1为空值,NVL返回值为表达式2的,否则返回表达式1的。该函数的目的是把一个空值(null)转换成一个实际的...相当于建了个e临时表 with e as (select...
  • DbNull和null的区别

    2014-01-13 20:10:57
     * DbNull 是指数据库中当一个字段没有被设置的时候的相当于数据库中的“空值”。  * null 是 C# 中是空引用的意思(在 VB 中为 Nothing),表示没有引用任何对象。  * 它们的意义是不同的。  * null...
  • 在sql server2008中,数据类型主要包括以下几种:整数型,货币型,小数类型,日期时间类型,字符串型,二进制以及其它的数据类型。...tinyint的范围是0-255,smallint相当于java中的short类型,bigint相当于java中的l
  • -- 查看每个人佣金和薪金的和-- 相当于查询了一个新的字段-- 注意:如果一个和空值相加那么得到的 一定为空值(null)SELECT empno,sal+comm FROM emp;-- 可以在查询的时候 给空值 赋个SELECT *,sal+IFNULL(comm...
  • 3.8.3 用test命令求表达式的 51 3.8.4 执行带命令行参数的shell程序 52 3.8.5 分析shell脚本 52 3.8.6 Korn shell编程中的流控制结构 53 3.9 管理UNIX进程 55 3.9.1 用ps命令收集进程信息 55 3.9.2 ...
  • Mysql 运算符 说明 = 等于 <>或!= ...is null 为空,null不是一个,不能用等号衡量(is not null 不为空) ...包含,相当于多个or(not in不在这个范围中) not not可以取非,主要
  • 复合索引: 多个列构成的索引,相当于二级目录 name,age 两个张三,再看年龄; 创建索引: 一、create 索引类型 索引名 on 表 单: create index dep_index on tb(dept); 唯一 create unique index...
  • (1)count(*)—包括所有列,返回表中的记录数,相当于统计表的行数,在统计结果的时候,包含NULL的记录,且不去重。 (2)count(列名)—只包括列名指定列,返回指定列的非空的记录数,在统计结果的时候,不包含为...
  • 2)get命令:获取key对应的(若是当前库,没有该key,则返回nil,相当于null) 例子:get k1 3)keys *命令:查找当前库所有key(注意:redis默认设置有16个库,下标0-15) keys * 跟SQL中的select *差不多 ...
  • <br>第二,无法方便地向数据库中插入NULL值。因为IBatisNet是直接把C#的基本类型(如int/DateTime)插入到数据库中字段的。对于一些C#值类型,例如int,并没有NULL状态。于是不得不采用一些特殊的值来表示NULL,...
  • 小粥重学mysql(4)之DCL...在…范围内,between 100 and 200 相当于100到200之间,包头包尾 in(集合) 集合表示多个,逗号分割 like ‘张%’ 模糊查询 _(下划线):单个任意字符;%:多个任意字符 is null
  • 目录 count(*) 和 count(1)和count(列名)区别 ... count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列NULL count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列为...
  • (1)count(*)—包括所有列,返回表中的记录数,相当于统计表的行数,在统计结果的时候,包含NULL的记录,且不去重。 (2)count(1)—第一列,1表示一个固定,也可以用count(2)、count(3)代替,在统计结...
  • 同一具有UNIQUE约束的列或者行,可以允许只有一个空值,就是相当于,这个具有空值的行或者列可以用空值来和其他非空值行或者列区别。 而约 束中的PRIMARY KEY,不能允许有空值。它来定义基本表的主键...
  • 如果你在一个不包含 ROUP BY子句的语句中使用一个 group(count、min、max、avg、sum)函数 ,它相当于对所有行进行分组(隐式分组操作)。 测试数据表: ⑴计数 count() ①COUNT(expr) 返回SELECT语句检索到的行中...

空空如也

空空如也

1 2 3 4 5 6
收藏数 113
精华内容 45
关键字:

数据库null值相当于