• sqlite 学习笔记(二 )


    本次

    1、sqlite 只有5种本地类型(integer ,real , text , blob , null);

    2、创建表的几种不同的配置:

         a、CREATE TABLE my_table (id integer primary key , firstname text , lastname text , age integer);

         b、CREATE TABLE my_table (id integer primary key , firstname text NOT NULL,lastname text NOT NULL , age integer);

              如果设置了NOT NULL 参数,则再INSERT 数据的时候一定要设置不为空的值,否则会报错。

         c、CREATE TABLE my_table (id integer primary key , firstname text NOT NULL DEFAULT 'mike' , lastname text NOT NULL 'li' , age integer DEFAULT 23);

              可以设置默认值,当INSERT时没有指定字段的值,则使用默认的值。

        另外还有 collate nocase 可以指定排序不区分大小写;unique 指定唯一。

    3、删除表 使用 SQL : DROP TABLE my_table;

    4、选择查询SQL:

         a、select * from foods;

         b、select * from foods where type_id = 4;

         c、select name from foods where type_id = 4;

         d、select name from foods where type_id = 4 [and|or] name =‘pizza’;

         e、 select * from foods where name >='B' and name <'D'; 使用这种方式可以筛选首字母 大于等于B 小于D的行;

         f、select  * from foods where name is null; 查询name未定义的行;不能使用 name = null , name='null' , name =0 等限制;也可以 使用 is not null;

         g、select * from foods where id like '%3%'; 查询 id 中 包含 3的行;

         h、select * from foods where id between 12 and 20; 包含头尾

         i、select * from foods where id in (12 , 13, 14); 查询id 为 ()范围内的 行,相反的用法有 not in;

         j、select length(name),name,lower(name) from foods where type_id =4; sqlite 中可以使用 length lower 等方法处理筛选出的字段,但是其他数据库中的部分方法是用不了的。

         k、另外 select count(*) from foods ; 可以求出 筛选出的行数;

         l、 select count(*) ,avg(type_id) from foods where id>4 and id<9; avg 求平均数;sum 求和;

         m、select * from foods where name like '%A' order by name; order by 用来排序;再列名后加上 desc 表示反转排序结果。

         n、select sum(id),count(id),type_id from foods group by type_id order by sum(id); group by 分组;

         o、select type_id , max(id) ,max(length(name)) from foods group by type_id;  max ,min求最大最小值;

         p、 select distinct type_id from foods;求不同的type_id;

         s、select distinct type_id from foods limit 2; limit 限制显示的条数 , offset 表示从某一行开始选择。(第一行为 0);

    5、删除记录:

        a、delete from foods where id = 3;

        b、delete from foods ;删除foods中的所有记录;

    6、更新记录:

        a、update foods set name = 'kfc' where id = 3;  set 后面可以接多个字段,其间用 ‘,’分开;

             不加where 每个行中的字段都会被修改;

             update 修改的行 由where 限制;

        b、update foods set type_id= type_id +1 where id = 3;

        c、update foods set name = case when type_id =1 then 1          when type_id =2 then 2        when type_id =3 then 3       end       where type_id <3;

             使用case end模块可以筛选需要跟新的记录;

    7、添加字段:

        a、alter table show add column id integer; 为表show 添加一个新的字段 id;

        b、alter table tablename rename to tb_two;

  • 相关阅读:
    poj2954
    bzoj1863
    bzoj2002
    bzoj1389
    [POJ3041] Asteroids(最小点覆盖-匈牙利算法)
    [POJ2594] Treasure Exploration(最小路径覆盖-传递闭包 + 匈牙利算法)
    [POJ2446] Chessboard(二分图最大匹配-匈牙利算法)
    [luoguP1266] 速度限制(spfa)
    [luoguP1186] 玛丽卡(spfa)
    [luoguP1027] Car的旅行路线(Floyd)
  • 原文地址:https://www.cnblogs.com/lipeil/p/2585170.html
Copyright © 2020-2023  润新知