zoukankan      html  css  js  c++  java
  • SQL常见命令

    简介:

    轻型,嵌入式,ACID关系型数据库
    A原子型 / C一致性 / I隔离性 / D持久性

    MySQL启动后会有一个独立的进程,应用与该进程对接;
    SQLite是一个API库,数据库引擎库;SQLite运行在自己的应用程序进程中。

    SQLite优点
    轻量高效;
    绿色无需安装;
    零配置;
    动态数据类型

    SQLite缺点
    并发性能;



    数据类型:

    NULL: 这个值为空值
    VARCHAR(n):长度不固定且其最大长度为 n 的字串,n不能超过 4000。
    CHAR(n):长度固定为n的字串,n不能超过 254。
    INTEGER: 值被标识为整数,依据值的大小可以依次被存储为1,2,3,4,5,6,7,8.
    REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.
    TEXT: 值为文本字符串,使用数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).
    BLOB: 值是BLOB数据块,以输入的数据格式进行存储。如何输入就如何存储,不改  变格式。
    DATA :包含了 年份、月份、日期。
    TIME: 包含了 小时、分钟、秒。



     建表:

    建表:CREATE TABLE IF NOT EXISTS table_name (col_name_1 datatype, col_name_2, datatype);

    CREATE INDEX 语句用于在表中创建索引。您可以在表中创建索引,以便更加快速高效地查询数据。用户无法看到索引,它们只能被用来加速搜索/查询。

    在表上创建一个简单的索引。允许使用重复的值:CREATE INDEX index_name ON table_name (column_name)

    在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值:CREATE UNIQUE INDEX index_name ON table_name (column_name)

    更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。

    SQLite数据库中索引的使用、索引的优缺点:https://blog.csdn.net/zbc415766331/article/details/55053224
    Sqlite中INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用:https://www.cnblogs.com/peida/archive/2008/11/29/1343832.html
    Sqlite中的rowid字段和integer primary key autoincrement的字段区别:https://blog.csdn.net/maxwell_nc/article/details/48766223?utm_source=blogxgwz6
    sqllite 自增id和rowid的一个区别:https://blog.csdn.net/qq_16383977/article/details/79630042
    深入理解SQLite3之sqlite3_exec及回调函数:https://blog.csdn.net/u012351051/article/details/90382391



     插入

    插入语句,在表中创建一条记录:INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY)  VALUES (1, 'Paul', 32, 'California', 20000.00 );



     更新

    UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 6;
    UPDATE 表名 SET 字段名 = 字段值 WHERE 过滤字段名 = 过滤字段值;
    UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];



     查询:

    支持升降序,分页

    asc //升序
    desc //降序

    select * from tb_shop id order by id desc limit 0,1;

    分页:

    SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
    SELECT * FROM %s %s ORDER BY seq LIMIT %d OFFSET %d
    select * from table limit 5; --返回前5行
    select * from table limit 0,5; --同上,返回前5行
    select * from table limit 5,10; --返回6-15行

    //limit skip,count



    删表:

    drop table table_name



    删除:

    delete from table_name where xxxx and xxxx;



    其他:

    打开数据库

      sqlite3 xxx.db


    sqlite> 下的操作
      .table 查看数据库中存在哪些表;

      .tables    数据库内的表格

      .schema 查看建表语句

      .databases 数据库的路径
      
    ..> 下的操作

      进入到这里是SQL数据语言模式了,需要输入完整的SQL语句,即结尾要加 ; (分号)。

    SQLite 是不区分大小写的,但也有一些命令是大小写敏感的,比如 GLOB 和 glob 在 SQLite 的语句中有不同的含义。记得是用分号结束语句

    这里比较牛一点的感觉就是创建的数据库后缀名是任意的、不过注意一点就是:在命令框下执行创建数据库的时候。如果没有为数据库创建表格、则看不见数据库文件,所以必须创建表格。

    所有的 SQLite 语句可以以任何关键字开始,如 SELECT、INSERT、UPDATE、DELETE、ALTER、DROP 等,所有的语句以分号(;)结束。

    NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL;



     参考链接:

    SQLite常见命令:https://www.cnblogs.com/senior-engineer/p/7028972.html

  • 相关阅读:
    Finalize,Dispose,SuppressFinalize
    防火防盗防微软,Firefox发布插件自动检测服务
    Nginx的Rewrite设置及示例
    Linux游戏开发包 ClanLib 2.1.0 发布
    HTTP协议详解(真的很经典)
    Linux on POWER:发行版迁移和二进制兼容性考虑事项
    映射网络驱动器VBS脚本
    [笔记] 使用 opcache 优化生产环境PHP
    2020最新版MySQL数据库面试题(三)
    请注意,面试中有这7个行为肯定会被拒绝!
  • 原文地址:https://www.cnblogs.com/grooovvve/p/11666903.html
Copyright © 2011-2022 走看看