Linux软件编程-----数据库

目录

1.数据库:

    1.概念:

    2.类型:

        1.关系型数据库 

            1.Oracle 

            2.MySQL 

                           3.sqlserver

            4.sqlite 

        2.非关系型数据库

            1.Redis  

    3.SQL语言 

    4.安装sqlite数据库 

    5.sqlite3命令:

    6.SQL语句:

        1.create table 

        2.insert into

        3.select  

        4.delete from 

        5.update

        6.drop table

    7.数据库文件格式:

         8.内键:

    9.与外部关联的键值

    10.多表联合查询

       1.cross join:

​编辑

       2.inner join:

        3.outer join

 2.数据库编程: 

    1.安装sqlite3库文件

    2.sqlite3函数接口:

        1.sqlite3_open 

        2.sqlite3_exec 

        3.sqlite3_close  

3.sqlite3数据库操作效率:

     1.事务机制:

2.关闭数据库中写同步机制:

3.使用预处理SQL语句机制实现提升数据库效率

3.关于程序加载时间的计时器

        1.程序的加载时间

        2.cpu的处理时间

4.进度条


1.数据库:


    1.概念:


        文件:存放数据,掉电数据不会丢失,软件的配置及想要持续保存的数据放入文件中
        大批量数据存储和管理时使用数据库 

    2.类型:


        1.关系型数据库 


            1.Oracle 


              DB2

            2.MySQL 


              开源 


               
            3.sqlserver
            4.sqlite 


              小型数据库  

        2.非关系型数据库


            1.Redis  

    3.SQL语言 


        数据库支持的编程语言,主要对表完成:增、删、改、查相关功能

    4.安装sqlite数据库 


        1.虚拟机能够上网
        2.配置apt-get工具集
        3.安装sqlite数据库 
          sudo  apt-get  install  sqlite3   

    5.sqlite3命令:

    6.SQL语句

             ...:表示上一条语句还没有结束,要用“  ;”来结束。

        .quit :退出。

        .database:路径。

        .table:查看文件名。

        .schema:看表创建的类型。

        "  " 和 '  ' 都可以引用字符串。

        .header on :显示列表的名

        .mode column:显示的格式变为column


        1.create table 


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

        2.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);

        3.select  


        查看表  
        使用形式: 
            select 列1,列2,... from 表名称 where 匹配条件 order by 列名称 asc/desc;
        示例:
            select * from 表名称;      :查看表的所有内容
            select 姓名,成绩 from student;        :查看student表的姓名和成绩。
            select 姓名,成绩 from student where 姓名 like "%张%";       :查看带张字的姓名的成绩
            select 姓名,成绩 from student order by 成绩 desc;        :查看成绩以降序的方式
            select 姓名 from student where 成绩 > 85 order by 成绩 desc;        :成绩大于85,并且以降序的方式排列

        4.delete from 


        删除表

        删除的是一整行,不是一行中的某个值
        使用形式:
            delete from student where 匹配条件; 
        示例:
         delete from student where 姓名 like "%张%"; 

        5.update

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

        6.drop table


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

        加入在刚开始的时候没有splite3 后面没有加文件,那就默认保存在main:下,但是没有保存。这个时候用。backup + 文件名.db 来把创建的表保存下来。

        用select产生的新的表格要保存下来的话,要在select之前输入保存的指令,.output 文件名。

        

    7.数据库文件格式:


        数据库文件  ->  表 -> 列1  列2 列3 
        filename.db       


     
    8.内键:


        1.一般为整形
        2.区分一张表中不同的数据(内键的值不允许重复)


    9.与外部关联的键值


        与外部表关联的键值 

        学生信息表
        成绩表
        课程表

    10.多表联合查询


       1.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 "语文";


       2.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 i

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值