数据库基础

qulite3

SQL语言

        create table       创建表
        使用形式:
            create table 表名称(列1 数据类型, 列2 数据类型, ...);
        示例:
            create table student(姓名 text, 性别 text, 年龄 integer, 成绩 double);

        insert into 
        插入表
        使用形式:
            insert into 表名称 values(值1, 值2, ...);
        示例:
            insert into student values("张三", "男", 19, 89.5);
            insert into student values("李四", NULL, NULL, 99.99);
            insert into student (姓名, 年龄) values ("王二", 18);
 

         select        查看表  
        使用形式: 
            select 列1,列2,... from 表名称 where 匹配条件 order by 列名称 asc/desc;
        示例:
            select * from 表名称; 
            select 姓名,成绩 from student;
            select 姓名,成绩 from student where 姓名 like "%张%";
            select 姓名,成绩 from student order by 成绩 desc;
            select 姓名 from student where 成绩 > 85 order by 成绩 desc;

        delete from       删除表
        使用形式:
            delete from student where 匹配条件; 
        示例:
            select 姓名 from student where 成绩 > 85 order by 成绩 desc;

        update      更新表
        使用形式:
            update 表名称 set 列1=值1,列2=值2 where 匹配条件;
        示例:
            update student set 性别="女", 成绩=86.3 where 姓名="王二";

        drop table    删除表 
        使用形式:
            drop table 表名称;

多表联合查询

        cross join:       交叉连接 
         将表1中的每一项都与表2中所有项连接获得一张新表 

         示例:
         select student.name as 姓名, lesson.subject as 科目 from student cross join lesson;
         select student.name as 姓名, lesson.subject as 科目 from student cross join lesson where 科目 like "语文";

        inner join:        内连接
         将表1和表2中所有同时满足条件的数据关联在一起 

         示例:
         select grade.stuid as 学号, lesson.subject as 科目, grade.score as 成绩 from grade inner join lesson on grade.lessonid = lesson.id;
         
         sqlite> select student.name as 姓名, lesson.subject as 科目, grade.score as 成绩
            ...> from grade inner join lesson on grade.lessonid = lesson.id
            ...> inner join student on grade.stuid = student.id
            ...> ;

         sqlite> select student.name as 姓名, lesson.subject as 科目, grade.score as 成绩
            ...> from grade inner join lesson on grade.lessonid = lesson.id
            ...> inner join student on grade.stuid = student.id
            ...> where 成绩 < 60 
            ...> order by 成绩 desc;
 

        outer join         外连接
          sqlite> select grade.stuid as 学号, student.name as 姓名, lesson.subject as 科目, grade.score as 成绩
             ...> from grade inner join lesson on grade.lessonid = lesson.id
             ...> left outer join student on grade.stuid = student.id
             ...> ;

sqlite3函数接口

        sqlite3_open 
        int sqlite3_open(
            const char *filename,   /* Database filename (UTF-8) */
            sqlite3 **ppDb          /* OUT: SQLite db handle */
        );

        功能:
            打开一个数据库文件
        参数:
            filename:数据库文件名称 
            ppDb:数据库句柄
        返回值:
            成功返回SQLITE_OK
            失败返回错误码

        sqlite3_errmsg 
        const char *sqlite3_errmsg(sqlite3*);
        获得出错原因
 

        sqlite3_exec 
          int sqlite3_exec(
            sqlite3*,                                  /* An open database */
            const char *sql,                           /* SQL to be evaluated */
            int (*callback)(void*,int,char**,char**),  /* Callback function */
            void *,                                    /* 1st argument to callback */
            char **errmsg                              /* Error msg written here */
          );
          功能:
            执行SQL语句
          参数:
            sqlite3*:数据库句柄
            sql:要执行的SQL语句字符串的首地址 
            callback:回调函数(只有在select语句时会使用,其余SQL语句只需传入NULL),对找到的数据要完成的操作
            void *:给回调函数的参数 
            char **:存放错误信息空间首地址
          返回值:
            成功返回SQLITE_OK 
            失败返回错误码 

        sqlite3_close   
          int sqlite3_close(sqlite3*);
          功能:
            关闭sqlite3数据库  

  • 21
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值