当前位置: 首页 > news >正文

数据库的学习

数据库软件:
关系型数据库:Mysql           Oracle        SqlServer         Sqlite
非关系型数据库:Redis       NoSQL

1.数组,链表,文件,数据库

数组,链表:内存存放数据的方式(代码运行结束,关机数据丢失)
文件,数据库:外存存放数据的方式(代码运行结束,关机数据不会丢失)

文件:数据量很小,处理效率很低}
数据库:数据量很大 , 处理数据(增删改查)效率高

2.安装sqlite数据库:

    1.让虚拟机能够上网
    2.apt-get工具集配置好
    3.sudo apt-get install sqlite3 
    4.启动sqlite3 
        sqlite3 
    5.输入.quit退出

3.SQL命令:

    1. .headers on/off 打开/关闭 数据库中列名称
    2. .mode csv/column/html/insert/line/list/tabs/tcl 
    3. .schema 表名称   查看表名称对应的表的格式(有哪几列?每一列类型?)
    4. .width 宽度      设置显示时的数据宽度 
    5..tables          查看数据库文件中的所有表
 

4.SQL语言(所有的数据库都支持这种语言)

据的:增、删、改、查

    1.使用sqlite3打开数据库文件 
      sqlite3 数据库文件名
      sqlite3 ./student.db 


    2.创建表 
      create table 
      
      示例:
        sqlite> create table student (id integer, name varchar(255), sex varchar(32), age integer, score integer);

    3.插入数据
      insert into 

      示例:
        sqlite> insert into student values (1001, "张三", "男", 19, 80);
        sqlite> insert into student (id, name, score) values (1002, "李四", 100);
        sqlite> insert into student values (1002, "王二", "女", 18, NULL);

4.查找数据
      select 

      select * from 加 名字   ---  查看名字列表所有内容
      select * from 列表名 where 指定列表 = "指定内容  and  指定列表 = “指定内容"    ---   筛选内容打印
      select *from 列表名 where 指定列 like “%大致内容%”  ---  查看包含指定内容的列

      示例:
        sqlite> select * from student;
        sqlite> select name, score from student;

    5.内容匹配
      where 

      示例:
        sqlite> select * from student where name like "%张%";

.mode column    ---   让内容对齐
.headers on    ---  显示表头
.width   ---  设置每个内容的宽度

6.主键:
        key:键值 
        内键:在表中唯一标识一条数据称为内键
        外键:与外部表进行标识的数据称为外键 
示例:creat tables 列表名 (id integer primary key asc) ---  以不能重复命名的方式进行自增

 7.删除
        delete from 

        示例:
            delete from student where name="李四";

8.修改
        update 

        示例:
            update student set sex="男",age=19 where name="王二";

9.排序
        order by 

        示例:
            select * from order_manager order by ordertime desc;

多表联合查询:
    1.交叉连接
        cross join 

        示例:
        sqlite> select student.name as 学生姓名, lesson.name as 课程名
        ...> from student cross join lesson;
    2.内连接
        inner join 

        示例:
        sqlite> select score.id as 成绩编号, student.name as 学生姓名, score.score as 成绩
        ...> from score inner join student on score.stuid=student.id;
    3.外连接
        outer join 

        示例:
        sqlite> select score.id as 成绩编号, student.name as 学生姓名, score.score as 成绩
        ...> from student left outer join score on score.stuid=student.id;


    示例:
        sqlite> select score.id as 成绩编号, student.name as 学生姓名, score.score as 成绩
        ...> from student left outer join score on score.stuid=student.id
        ...> where name="张三"
        ...> order by 成绩 desc;
 

http://www.lryc.cn/news/318588.html

相关文章:

  • matlab去除图片上的噪声
  • C++超详细知识点(五):类的友元函数和友元类
  • SOC设计:关于reset的细节
  • 支小蜜AI校园防欺凌系统可以使用在宿舍吗?
  • 外卖平台订餐流程架构的实践
  • [AIGC] Spring Boot中的切面编程和实例演示
  • 各个类型和Json类型的相互转换
  • C语言:操作符详解(下)
  • 电商场景下 ES 搜索引擎的稳定性治理实践
  • jdk8与jdk17的区别。springboot2.x与springboot3.x的区别
  • Pytest测试中的临时目录与文件管理!
  • arduino 编程esp8266
  • 基于springboot实现数据资产管理系统项目【项目源码+论文说明】计算机毕业设计
  • 在Java中如何将十进制转换为二进制,八进制,十六进制以及它们之间的互相转换
  • AK/SK加密认证
  • 前端实现websocket通信讲解(vue2框架)
  • 解决ffmpeg播放摄像头延时的问题(项目案例使用有效)
  • Android 音频系统
  • Java必须掌握的二叉堆知识点(含面试大厂题含源码)
  • [Java、Android面试]_03_java内存管理:虚拟内存、堆、垃圾回收
  • PTA题解 --- 求整数段和(C语言)
  • virsh管理虚拟机的命令行工具
  • 数据集成平台选型建议
  • Centos8安装Docker,使用阿里云源
  • FFmpeg概念和简单使用
  • OJ_最长公共子序列
  • SpringBoot拦截器获取token用户对象优雅地传递到Controller层
  • 从零开始学HCIA之SDN03
  • C语言深度理解之——结构体内存对齐
  • LeetCode 热题 100 | 回溯(二)