• 第五篇、常用的SQL语句和函数介绍


    简介:

      在使用到sqlite3的时候,常常需要写一些SQL语句,现将常用到的部分语句稍微总结以下,由于个人习惯,关键字用大写。 

    附:

    /*简单约束*/
    CREATE TABLE IF NOT EXISTS t_student(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER);
    CREATE TABLE IF NOT EXISTS t_student(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER NOT NULL);
    CREATE TABLE IF NOT EXISTS t_student(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE, age INTEGER);
    CREATE TABLE IF NOT EXISTS t_student(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER DEFAULT 1);
    
    /*分页*/
    SELECT * FROM t_student ORDER BY id ASC LIMIT 30, 10;
    
    /*排序*/
    SELECT * FROM t_student WHERE score > 50 ORDER BY age DESC;
    SELECT * FROM t_student WHERE score < 50 ORDER BY age ASC , score DESC;
    
    /*计量*/
    SELECT COUNT(*) FROM t_student WHERE age > 50;
    
    /*别名*/
    SELECT name as myName, age as myAge, score as myScore FROM t_student;
    SELECT name myName, age myAge, score myScore FROM t_student;
    SELECT s.name myName, s.age myAge, s.score myScore FROM t_student s WHERE s.age > 50;
    
    /*查询*/
    SELECT name, age, score FROM t_student;
    SELECT * FROM t_student;
    
    /*修改指定数据*/
    UPDATE t_student SET name = 'MM' WHERE age = 10;
    UPDATE t_student SET name = 'WW' WHERE age is 7;
    UPDATE t_student SET name = 'XXOO' WHERE age < 20;
    UPDATE t_student SET name = 'NNMM' WHERE age < 50 and score > 10;
    
    /*删除数据*/
    DELETE FROM t_student;
    
    /*更新数据*/
    UPDATE t_student SET name = 'LNJ';
    
    /*插入数据*/
    
     INSERT INTO t_student(age, score, name) VALUES ('28', 100, 'jonathan');
     INSERT INTO t_student(name, age) VALUES ('lee', '28');
     INSERT INTO t_student(score) VALUES (100);
    
    /*插入数据*/
    INSERT INTO t_student(name, age, score) VALUES ('lee', '28', 100);
    
    /*添加主键*/
    CREATE TABLE IF NOT EXISTS t_student (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, score REAL);
    /*添加主键*/
    CREATE TABLE IF NOT EXISTS t_student (id INTEGER, name TEXT, age INTEGER, score REAL, PRIMARY KEY(id));
    
    /*删除表*/
    DROP TABLE IF EXISTS t_student;
    
    /*创建表*/
    CREATE TABLE IF NOT EXISTS t_student(id INTEGER , name TEXT, age , score REAL);

    函数介绍:

    1.打开数据库
    int sqlite3_open(
        const char *filename,   // 数据库的文件路径
        sqlite3 **ppDb          // 数据库实例
    );
    
    2.执行任何SQL语句
    int sqlite3_exec(
        sqlite3*,                                  // 一个打开的数据库实例
        const char *sql,                           // 需要执行的SQL语句
        int (*callback)(void*,int,char**,char**),  // SQL语句执行完毕后的回调
        void *,                                    // 回调函数的第1个参数
        char **errmsg                              // 错误信息
    );
    
    3.检查SQL语句的合法性(查询前的准备)
    int sqlite3_prepare_v2(
        sqlite3 *db,            // 数据库实例
        const char *zSql,       // 需要检查的SQL语句
        int nByte,              // SQL语句的最大字节长度
        sqlite3_stmt **ppStmt,  // sqlite3_stmt实例,用来获得数据库数据
        const char **pzTail
    );
    
    4.查询一行数据
    int sqlite3_step(sqlite3_stmt*); // 如果查询到一行数据,就会返回SQLITE_ROW
    
    5.利用stmt获得某一字段的值(字段的下标从0开始)
    double sqlite3_column_double(sqlite3_stmt*, int iCol);  // 浮点数据
    int sqlite3_column_int(sqlite3_stmt*, int iCol); // 整型数据
    sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol); // 长整型数据
    const void *sqlite3_column_blob(sqlite3_stmt*, int iCol); // 二进制文本数据
    const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);  // 字符串数据
  • 相关阅读:
    动态规划
    Python第二天学习
    Python第一天学习---基础语法
    java易错知识点
    C语言---指针复习
    排序汇总
    课程设计---创建族谱管理系统
    Vue第五篇 Vue的生命周期
    Vue第四篇 Vue路由系统
    Vue第三篇 Vue组件
  • 原文地址:https://www.cnblogs.com/HJQ2016/p/5791144.html
Copyright © 2020-2023  润新知