sqlite3数据库基础知识及简单应用

1.数据库文件基本结构

(1)文件名
	filename.db 
(2)表
	一系列数据的集合

	格式:分为不同的列

2.sqlite3命令

1.create table语句
      创建表
      示例:
        create table 魏 (编号 integer primary key, 姓名 char(255), 字 char(32), 武力 double, 智力 double);

2.insert into语句
      插入表
      示例:
        insert into 魏 values (1, "曹操", "孟德", 85.5, 90.3);

3.select语句
      查找表信息
      示例:
        select * from 魏;

        select 姓名,智力 from 魏;

4.where语句
      匹配数据 
      示例:
        select * from 魏 where 姓名 like "%曹%";

5.order by 语句
      数据排序
      示例:
        select 姓名 from 魏 order by 智力 asc;

6.delete from 
      删除数据
      示例:
        delete from 魏 where 姓名 = "曹操";
    
7.update 
      更新数据
      示例:
       update 魏 set 智力=95.0 where 姓名 = "曹丕";

8.drop table 
      删除表 
      示例:
        drop table 魏;

3. 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 表名称;

4.多表联合查询

    1.cross join 
      交叉连接
      示例:
        sqlite> select 学生信息表.姓名 as 姓名, 课程表.课程名 as 课程, 课程表.学分 as 学分
        ...> from 学生信息表 cross join 课程表
        ...> ;

    2.inner join 
      内连接
      示例:
        sqlite> select 学生信息表.姓名 as 姓名, 成绩表.课程 as 课程编号, 成绩表.成绩 as 成绩
        ...> from 学生信息表 inner join 成绩表 on 学生信息表.编号 = 成绩表.学号
        ...> order by 成绩 desc;
    
    3.outer join 
      外连接
      示例:
        sqlite> select 学生信息表.姓名 as 姓名, 成绩表.课程 as 课程编号, 成绩表.成绩 as 成绩
        ...> from 学生信息表 left outer join 成绩表 on 学生信息表.编号 = 成绩表.学号;

        sqlite> select 学生信息表.姓名 as 姓名, 课程表.课程名 as 课程, 成绩表.成绩 as 成绩
        ...> from 学生信息表 left outer join 成绩表 on 学生信息表.编号 = 成绩表.学号
        ...> left outer join 课程表 on 成绩表.课程 = 课程表.编号;

5.sqlite提供的函数接口
 

    1.sqlite3_open 
        int sqlite3_open(
            const char *filename,   /* Database filename (UTF-8) */
            sqlite3 **ppDb          /* OUT: SQLite db handle */
        );
        功能:
            打开一个数据库文件
        参数:
            filename:文件名
            ppDb:存放数据库句柄空间的首地址
        返回值:
            成功返回SQLITE_OK
            失败返回错误码 使用sqlite3_errmsg获得错误码对应的英文


    2.sqlite3_close 
        int sqlite3_close(sqlite3*);
      功能:
        关闭数据库连接


    3.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语句时调用的回调函数
            每找到一条数据,就调用一次callback 

            void*:sqlite3_exec的第4个参数
            int:找到数据的列数
            char **:查找到数据每列内容首地址的指针数组
            char **:查找到数据每列标题字符串首地址的指针数组

        void *:给回调函数的传参
        errmsg:存放出错信息空间首地址
      返回值:
        成功返回SQLITE_OK
        失败返回错误码

    注意:
        1.callback称为回调函数,只有找到匹配的数据时才会调用该函数(找到几条数据,回调函数会被调用几次)
        2.callback内部参数的值,取决于SQL语句,找几列,内部的num参数就会是几

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值