美文网首页
SQLite常用语句

SQLite常用语句

作者: 忆殇 | 来源:发表于2018-04-09 14:39 被阅读15次

    在移动开发中,经常会使用数据库,而在移动开发中使用的SQLite轻量级的数据库。
    1.创建表

    $ CREATE TABLE 表名 (字段名1 字段类型,表名2 字段类型,... );
    # 加上IF NOT EXISTS,创建表时如果存在就不创建,不会报错
    $ CREATE TABLE IF NOT EXISTS 表名 (字段名1 字段类型 , 表名2 字段类型,... );
    # 示例
    $ CREATE TABLE IF NOT EXISTS t_shop (name text , price real);
    

    2.刪表

    $ DROP TABLE 表名;
    $ DROP TABLE IF EXISTS 表名;
    # 示例
    $ DROP TABLE IF EXISTS t_shop;
    

    3.插入数据

    $ INSERT INTO 表名(字段1 , 字段2 ,...) VALUES (字段1的值 , 字段2的值 ,...);
    # 示例
    $ INSERT INTO t_shop(name , price) VALUES ('娃哈哈',2.0);
    # 注意,数据库中的字符串应该用单引号'括住!!!
    

    4.更新数据

    $ UPDATE 表名 SET 字段1 = 字段1的值 , 字段2 = 字段2的值 ,...;
    # 示例
    $ UPDATE t_shop SET name = '农夫山泉' , price = 3.0;
    # 注意:上面的示例会将t_shop里面所有记录的name都改成农夫山泉,price都是3.0!!!
    

    5.删除数据

    $ DELETE FROM 表名;
    # 示例
    $ DELETE FROM t_shop;
    # 注意:上面的示例会删除t_shop所有的记录!!!
    

    6.条件语句

    $ WHERE 字段 = 某个值; // 不能用两个=
    $ WHERE 字段 is 某个值; // is相当于=
    $ WHERE 字段 != 某个值;
    $ WHERE 字段 is not 某个值; // is not相当于!=
    $ WHERE 字段 > 某个值;
    $ WHERE 字段1 = 某个值 AND 字段2 > 某个值; // AND相当于C语言中的&&
    $ WHERE 字段1 = 某个值 OR 字段2 > 某个值; // OR相当于C语言中的 |
    # 示例
    # 将t_shop表里记录price等于2.0的名称改为农夫山泉
    $ UPDATE t_shop SET name = '农夫山泉' WHERE price = 2.0;
    

    7.查询语句

    $ SELECT 字段1 , 字段2 ,... FROM 表名;
    $ SELECT * FROM 表名; // 查询所有的字段
    # 示例
    $ SELECT * FROM t_shop;
    $ SELECT name , price FROM t_shop;
    $ SELECT * FROM WHERE price = 3.0; // 条件查询
    

    8.起别名

    $ SELECT 字段1 别名 , 字段2 别名 , ... FROM 表名 别名;
    $ SELECT 字段1 别名 , 字段2 AS 别名 , ... FROM 表名 AS 别名;
    $ SELECT 别名.字段1 , 别名.字段2 , ... FROM 表名 AS 别名;
    # 示例
    $ SELECT name myname , price myage FROM t_shop;
    # 给name起个叫myname的别名,给price起个叫myprice的别名
    $ SELECT s.name , s.price FROM t_shop s;
    # 给t_shop起个别名s,用s来引用表中的字段
    

    9.计算记录的数量

    $ SELECT COUNT [字段] FROM 表名;
    $ SELECT COUNT [*] FROM 表名;
    # 示例
    $ SELECT COUNT [name] FROM t_shop;
    $ SELECT COUNT [*] FROM t_shop;
    

    10.排序
    查询出来的结果可以用order by进行排序

    $ SELECT * FROM t_shop ORDER BY 字段;
    $ SELECT * FROM t_shop ORDER BY price;
    

    默认是按照升序排序(由大到小),也可以变为降序(由小到大)

    $ SELECT * FROM t_shop ORDER BY price DESC; // 降序
    $ SELECT * FROM t_shop ORDER BY price ASC; // 升序(默认)
    # 多个字段进行排序
    $  SELECT * FROM t_shop ORDER BY price ASC , name DESC;
    

    11.limit限制
    使用limit可以精确的控制查询结果的数量,比如每次只查询10条数据,做分页

    $ SELECT * FROM 表名 LIMIT 数值1 , 数值2;
    # 跳过前面4条记录,取8条记录
    $ SELECT * FROM t_shop LIMIT 4 , 8;
    # 取最前面4条记录
    $ SELECT * FROM t_shop LIMIT 4;
    

    12.约束
    建表时给特定的字段设置一些约束条件,常见的约束有

    $ not null :规定字段的值不能为null
    $ unique :规定字段的值必须唯一
    $ default : 规定字段的默认值
    # 尽量给字段设定严格的约束性,以保证数据的规范性。
    # 示例
    $ CREAT TABLE t_student (id integer , name text not null unique , age integer not null default 1);
    

    13.主键
    解释:主键(Primary Key,简称PK)用来唯一的标识某一条记录,主键可以是一个字段或多个字段。
    作用:良好的数据库编程规范应该保证每条记录的唯一性,每张表都必须有一个主键,用来标识记录的唯一性。
    注意:1>主键应当是对用户没有意义的
    2>永远也不要更新主键
    3>主键不应包含动态变化的数据
    4>主键应当由计算机主动生成
    5>主键字段包含了not null 和 unique

    $ create table t_student (id integer primary key , name text , age integer);
    # 如果想要主键自动增长(必须是integer类型),应该增加autoincrement
    $ create table t_student (id integer primary key autoincrement , name text , age integer);
    

    14.外键
    利用外键约束可以建立表与表之间的联系,外键的一般情况是:一张表的字段引用着另外一张表的主键字段。

    # 新建一个外键
    $ create table t_student (id integer primary key autoincrement , name text , age integer , constraint fk_student_class foreign key [class_id] references t_class[id]);
    

    15.表连接查询
    需要联合多张表才能查到想要的数据
    表连接的类型
    内连接:inner join 或者 join (显示的是左右表都有完整字段值的记录)
    左外连接:left outer join (保证左表数据的完整性)

    $ select s.name,s.age from t_student s, t_class c where s.class_id = c.id and c.name = ‘0316iOS’;
    

    相关文章

      网友评论

          本文标题:SQLite常用语句

          本文链接:https://www.haomeiwen.com/subject/nwcmhftx.html