美文网首页
sqlite3常用sql语言总结

sqlite3常用sql语言总结

作者: 豪门百里 | 来源:发表于2016-07-04 13:31 被阅读185次

    一、sqlite3接口部分

    与mysql的show命令一样,sqlite3也有自己的接口命令。接口命令不需要在结尾输入分号。以下介绍几个重要的命令:

    1. 进入数据库。从交互式终端进入sqlite3时一定要指定一个数据库名。如果不指定,就会在当前文件夹下创建这个数据库。如果要删除数据库,显然就是将这个文件删除。
    2. 退出数据库:.exit
    3. 查看当前数据库的信息:.databases
    4. 查看所有的数据表:.tables。如果再在后面加一个表名,还可以用于查询这张表是否存在。
    5. 查看某张表的表结构:.schema tablename

    二、sql语句部分

    1. 创建一个数据表。注意:
      • sqlite在创建字段时可以定义任何数据类型,就算是随便打一串字母也不会报错。sqlite会根据规则将sql语句中的数据类型转换为自身的5种类型之一。在sql语句中我们也不能对sqlite数据类型做任何限制。例如我们定义了一个int(1)字段,但当我们写入一个10位数时依然不会报错。唯一的作用在于,当我们通过create语句反向生成orm中的model时,以Django为例,int(1)就会为转为IntegerField(max_value=9),这样如果我们通过model插入一个2位数的数据,就不能过django.db.models的验证了
      • 5种亲和类型分别为INTEGER, REAL, NUMERIC, TEXT, NONE。其中整数和实数容易理解,一般用于适配整型和浮点型。文本显然是适配所有的字符串。NUMERIC就有些难理解了。因为整数和实数已经包含了所有的数值了,为什么还要加一个数值型呢?原来,NUMERIC不是一个真正的数据类型,它用于接收一个可能有多种形式的数据,然后再分发到INTEGER, REAL或TEXT中。例如datetime数据类型,我们可能向这个字段传入字符串,也可能传入1970年1月1日0点0分UTC以来的秒数。那么NUMERIC就会将前者分发给TEXT,后者分发给INTEGER。NONE用于适配不能识别的类型,它不会对插入内容进行任何处理
      • 对于自增字段,数据类型必须设为integer,不能设为int
      • 字段名加上单引号是为了高亮,不加也可以
      • 可以将所有需要用于计算的数值都设为numeric类型,sqlite3的定点数并不好使
      • comment加字段注释的方法并不适用于sqlite3,这也是sqlite3只适合开发不适合运维的原因之一
    -- 创建旗舰表,表明各大厂商旗舰机的信息
    create table flagship (
        'id' integer primary key autoincrement,
        'brand' varchar,
        'name' varchar,
        'price' numeric
    );
    

    2.删除数据表

    drop table flagship;
    

    3.插入一行数据,最好在表名后面加上(c1, c2),不然有多少个column就一定要填多少项,不填值的话可以写成null,否则不能通过!

    -- 无论是用sql还是orm,每次都只能增加一行数据,不像删除可以一次多行
    insert into meizhi values('27','Lili',null)
    

    4.删除一行数据。这里要用到where,where是支持and和or的,如果依然搜索到多行,会一并删除!

    -- 如果不写where,会将整张表的内容删除,但表还在
    delete from meizhi where age = '27' and name = 'Lili'
    

    5.查找数据,原理和删除数据差不多

    -- select 列名称 from 表名称 where...
    -- 注意,在整个sql语言中,只有表格内容是区分大小写的
    select * from merzhi where age = '27'
    

    6.更新数据。把妹纸的年龄从27岁改为28岁,意为长大了一岁嘛,哈哈!

    updata meizhi set age = '28' where age = '27'
    

    7.删除表格。有的时候看到别人建了一个测试表,但是建了之后不自觉删除,这个时候就要亲自操刀了!

    -- 把TTT这张表删除
    drop table TTT
    

    8.增加一列。使用数据表的时候有时发觉需要增添一列,那总不能把表删了重建吧,于是可以这么做

    -- 在meizhi这张表中增加一个school列,类型不大于255的字符串
    alter table meizhi add school varchar(255)
    

    9.最后一个,删除一列

    -- 把刚才添加的那一列删掉,简单暴力
    alter table meizhi drop school
    

    后记:这些数据库语言都应该熟练,在java中配置好驱动之后也可以使用。当然在java中更流行使用orm,但掌握sql语言是掌握orm的基础。

    相关文章

      网友评论

          本文标题:sqlite3常用sql语言总结

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