数据库相关知识

1.数据库

  • 高效对大批量数据管理的一种软件

2.分类

  • 关系型数据库
    • Oracle
    • Mysql
    • SQLServer
    • SQLite
  • 非关系型数据库
    • Redit

3.SQLite数据库

  • 所有数据库支持:SQL编程语言

4. SQLite数据库的安装

  •  虚拟机网络连通
  • apt-get工具集配置成功
  • 安装SQlite软件

sudo apt-get install sqlite3
sudo apt-get install libsqlite3-dev
sudo apt-get install sqlitebrowser
navica

  • 运行sqlite3软件

sqlite3


SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .quit

    5.Sqlite3命令

    • databases

    查看数据库中的信息

    • tables

    查看表名称

    • header(s) ON|OFF

    开启/关闭头部显示

    • mode MOOE

    设置数据的显示格式

    MOOE:csv、column、html、insert、line、list、tabs、tc

    • schema?TABLE?

    显示创建表时的格式

    • quit

    退出

    6.SQL语句

    • create table---创建表

    CREATE TABLE 表名称
    (
    列名称1 数据类型,
    列名称2 数据类型,
    列名称3 数据类型,
    ....
    )
    ex:

    create table student (学号 integer primary key, 姓名 text, 性别 text,年龄 integer, 成绩 integer)

    • drop table---删除数据表

    drop table 表名称;
    ex:

    drop table student;

    • insert into---插入

    INSERT INTO 表名称 VALUES (值1, 值2,....)->NULL.自动增长

    ex:
    insert into student values (1002, "李四", "女", 13, 80);
    insert into student (学号,姓名,性别) values (1009, "熊大", "男");

    • dalete from---删除

    DELETE FROM 表名称 WHERE 列名称 = 值

    ex:
    delete from student where 姓名 = "赵五";

    • update---修改

    UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

    ex:
    update student set 年龄=16,成绩=85 where 姓名="熊大";

    • select---选取

    SELECT 列名称 FROM 表名称

    ex:
    select * from student;
    select 学号,成绩 from student;
    select 姓名 from student where 成绩<60 and 性别="男";
    select 姓名 from student where 姓名 like "%田%"

    • order by---排序

    ORDER BY 语句用于根据指定的列对结果集进行排序

    ex:
    select 学号,姓名 from student where 成绩 > 60 order by 成绩 desc;
    select 学号,姓名 from student where 成绩 > 60 order by 成绩 asc;

    7.SQL类型

    • INTEGER
    • REAL
    • TEX

    8.多表联合查询

    • cross join---交叉连接

    select 学生信息.姓名 as 姓名, 学生课程.名称 as 课程 from 学生信息 cross join 学生课程;

    • inner join---内连接

    select 学生信息.姓名 as 姓名, 学生成绩.成绩 as 成绩 from 学生信息 inner join 学生成绩 on 学生信息.学号 = 学生成绩.学号;

    • left outer join---左连接

    select 学生信息.姓名 as 姓名, 学生成绩.成绩 as 成绩 from 学生信息 left outer join 学生成绩 on 学生信息.学号 = 学生成绩.学号;

    • 三表联合查询

    select 学生信息.姓名 as 姓名, 学生课程.名称 as 课程, 学生成绩.成绩 as 成绩 from 学生信息 left outer join 学生成绩 on 学生信息.学号 = 学生成绩.学号 left outer join 学生课程 on 学生成绩.课程编号 = 学生课程.编号 where 成绩 > 60 order by 成绩 desc;

    9.数据库编程

    • sqlite3_open

    int sqlite3_open(
    const char *filename,        /* Database filename (UTF-8) */
    sqlite3 **ppDb                   /* OUT: SQLite db handle */
    );
    功能:打开数据库获得操作数据库的句柄
    参数:
            filename:打开文件的路径
            ppDb:存放数据库句柄空间的首地址
    返回值:
    成功返回SQLITE_OK
    失败返回错误码,可以通过sqlite3_errmsg来获得其对应的英文

    • sqlite3_errmsg

    const char *sqlite3_errmsg(sqlite3*);
    功能:传入sqlite3的句柄返回句柄出错的英文字

    • sqlite3_close

    int sqlite3_close(sqlite3*);
    功能:关闭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 tocallback */
    char **errmsg                                              /* Error msg writtenhere */
    );
    功能:执行一条SQL语句
    参数:
            sqlite3*:数据库句柄
            sql:要执行的sql语句
            callback:只有select才会用到,执行找到匹配的数据后的操作
            对callback回调函数的传参
            errmsg:存放出错字符串空间的首地址
    返回值:
            成功返回SQLITE_OK
            失败返回错误

    • sqlite3_free

    void sqlite3_free(void*);
    功能:释放申请的空间

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    you-_ling

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值