首页 > 数据库 >数据库基础

数据库基础

时间:2024-12-25 18:44:41浏览次数:4  
标签:数据库 基础 字段名 emp 表名 where select

1、数据库概念

一个存储数据的地方

  1. 数据按照分类存储到不同的表

    1. 简单的电子表格
  2. 非常高效快速查询其中的数据

2、为什么学习数据库

  1. 关注页面操作,还需要检查数据库中的数据是否正确

  2. 出现bug时,能够定位到问题原因

  3. 造数据,修改数据-测试环境

3、数据库类型

关系型数据库

  • mysql、Oracle、SQL server......

  • 特点

    • 数据行

    • 数据列(字段)

    • 数据表(数据行的集合)

    • 数据库(数据表的集合)

4、MySQL的安装

5、SQL

在数据库进行操作的语言

关系型数据库都支持使用sql语言进行操作

DDL(数据定义)

进行数据库表的管理

  • 查看有哪些数据库

    • show databases;
  • 查看数据库

    • Show tables;
  • 使用某个指定的数据库

    • Use 数据库的名;

    • 例如:Use test1;

  • 创建数据库

    • Create database 数据库名;

    • 例如:Create database test3;

  • 创建表

    • create table 表名(字段名 类型 约束,字段名 类型 约束);

    • 创建某个数据库下的表

      • create table 数据库名.表名(字段名 类型 约束,字段名 类型 约束);

DQL(数据查询)

  • 数据进行查询

    • Select * from 表名;
  • 指定字段进行查询

    • select 字段名1,字段名2 from 表名;
  • 取全部

    • *
  • 取别名

    • select 字段名1 as 别名1, 字段名2 as 别名2 from 表名;
  • as也可以省略掉

    • select 字段名1 别名1, 字段名2 别名2 from 表名;
  • 条件查询

    • Where

    • select * from 表名 where 查询内容;

  • 运算符

    • 比较运算符

      • 大于>

      • 小于<

      • 大于等于>=

      • 小于等于<=

      • 等于=

      • 不等于!=

    • NULL值

      • is not NULL

        • 查询字段不等于空的内容

        • select * from 表名 where 字段 is not NULL;

      • is NULL

        • 查询字段为空的内容

        • 例如:select * from 表名 where 字段 is NULL;

    • 范围查找

      • 查找某个区间的值

        • between 值1 and 值2

        • 例如:select * from 表名 where 字段 between 1 and 3;

      • 查找不包含在此区间的值

        • not between 值1 and 值2

        • 例如:select * from 表名 where 字段 not between 1 and 3;

      • 集合范围

        • in(值1,值2,值3)
      • 不在该集合范围内

        • not in(值1,值2,值3)
    • 逻辑运算符

      • and

        • 并且

        • 例如:select * from product where pid in(4,8,3) and num>= 10;

      • or

        • 或者

        • select * from product where pid = 1 or num>= 10;

    • 模糊查询

      • 查询以x结尾的内容

        • like '%x'

        • 例如:select * from product where pname like '%S';

      • 查询以x为开头的内容

        • like 'x%'

        • 例如:select * from product where pname like '华%';

      • 查询包含x的内容

        • like '%x%'

        • 例如:select * from product where pname like '%O%';

    • 排序

      • 正序

        • order by asc

        • 例如:select * from product order by asc;

      • 倒序

        • order by dasc

        • 例如:select * from product order by dasc;

    • 函数

      • max()最大值

        • select max(字段) from 表名;
      • min()最小值

        • select mix(字段) from 表名;
      • avg()平均值

        • select avg(字段) from 表名;
      • sum()求和

        • select sum(字段) from 表名;
      • count()多少条数据

        • *查询时,有空值也算做一行

          • select count(*) from 表名;
        • 具体的某个字段count,有null的这一行,会过了不进行计算

          • select count(字段) from 表名;
      • version()版本号

        • select version()
    • 分组

      • group by

        • 配合函数使用

        • 例如 :select classid,sex,count(sex) from student group by sex,classid

      • having

        • 分组后条件查询

        • 例如:select classid,avg(score) a from student where score >60 group by classid having a>=80;

  • 多表查询

    • SQL join

      • 内关联

        • 内连接,取交集,A表和B表有交集的数据我才要

        • SELECT * from A表名 inner join (sql语法) B表名 ON A.key=B.key;

        • A.key=B.key连接字段;

        • 语法示例:SELECT * from dept inner join emp ON dept.dno = emp.deptno;

      • 左关联

        • 左连接,a表存在的数据

        • left join

        • 语法示例:SELECT * from dept left join emp ON dept.dno = emp.deptno;

        • a表里面存在的内容,b表不存在的内容

          • select* from A left join B on dept.key=emp.key B的外键 is null;

          • 语法示例:select *from dept RIGHT join emp on dept.dno = emp.deptno where emp.deptno is null:

      • 右关联

        • 右连接,只要B表存在的数据,我都要

        • right join

        • 语法示例:SELECT * from dept right join emp ON dept.dno=emp.deptno;

        • b表里面存在的内容,a表不存在的内容

          • select * from A right join B on dept.key=emp.key B的外键is null;

          • 语法示例:select * from dept RlGHT join emp on dept.dno=emp.deptno where emp.deptno is null;

DML(数据操作)

  • 修改

    • update 数据库名.表名 set 字段名=要修改的内容 where 条件;

    • 例如:UPDATE 'test1'.'info_test01' SET 'name'='张二' WHERE id=1;

  • 添加

    • INSERT INTO '表名' (字段1,字段2,字段3)

      VALUES (字段1值,字段2值,字段3值);

    • 例如:

      INSERT INTO 'info_test01' ('id','name','gw')

      VALUES (2,'张三','测试');

  • 删除

    • 删除指定的某个数据

      • delete from 表名 where 字段 = 值;

      • 例如:delete from 'info_test01' where id = '4';

    • 删除整张表的信息

      • delete from 表名;

TPL(事务处理)

对事务进行处理

  • 处理操作量大,复杂度高的数据。

  • 通过事务的整体保证数据的一致性

  • 事务控制语句

    • 开始事务

      • begin;
    • 提交事务

      • commit;
    • 回滚事务

      • rollback;

6、Navicat

  • 连接MySQL

  • 使用navicat建表

7、数据库表的字段

  • 名称

    • 序号、名字、年龄,通常以英文+数字或者纯英文的方式命名
  • 类型

    • 数据类型

      • 整数

      • 字符串

      • 时间类型

  • 长度

    • 定义的长度,输入内容需遵守定义长度的规则

    • varchar默认是255

    • int默认是0

  • 不是NULL

    • 必填项,勾选不能为空
  • 键(key)

    • 唯一的,不可以重复
  • 注释

    • 描述
  • 自动递增

    • 自动的填充数值

8、外键

  • 主键

    • 能够确定一条记录的唯一标识,不能重复,不为空

      • 例如:身份证号、工号、学号等
  • 外键

    • 用于与另一张表关联,能确定另一张表记录的字段,用于保持数据的一致性

    • 表的外键是另一个表的主键

9、索引

索引是一种数据结构,可以提高查询性能,降低查询时间的复杂度

占用空间,增删改表会降低效率

  • 查看索引

    • show index from 表名;
  • 创建索引的sql

    • create index 索引名字(index_字段名)on 表名(字段);

    • 语法案例:CREATE INDEX index_ename on emp(ename);

  • 索引原则

    • where后面用的比较多字段,都可以加索引

    • join的字段 加索引

标签:数据库,基础,字段名,emp,表名,where,select
From: https://www.cnblogs.com/lccccccde2b/p/18631222

相关文章

  • 【THM】Wireshark The Basics(Wireshark基础-更新版)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/wiresharkthebasics通过学习相关知识点:了解Wireshark的基础知识以及如何分析协议和PCAP文件。简介Wireshark是一款开源、跨平台的网络数据包分析工具,能够嗅探和调查实时流量并检查数据包捕获(PCAP)文件,它通常被用......
  • Redis基础
    键值(key-value)存储系统结构数据库/redis非关系数据库redis的应用场景缓存、消息队列、会话存储的场景1、redis的优点极高的性能,适合处理高并发请求的数据丰富的数据类型字符串、列表、集合、哈希等能够保证数据的完整性和一致性可以设置数据的过期......
  • Linux操作系统基础
    1、linux是什么linux是unix操作系统支持多任务、多线程、多cpu的操作系统2、linux是命令行的操作系统windows系统是图形化界面的操作系统windows和linux区别windows是收费的,linux是免费的windows经常有安全补丁,linux就没有,linux更安全3、linux优点......
  • 接口测试基础
    1、接口的组成模块与模块之间数据交互的通道请求接口地址:RequestURL接口类型getget所有的请求数据都在url里面,特别长请求数据是暴露在url中,不安全开发一般用get实现查询类的接口postpost的类型请求数据是隐藏的数据长度是没有限制的开发......
  • WEB安全基础入门小知识
    今天给大家科普科普信息安全的一些基础入门小知识: 常见的服务器脚本有哪些?----1:Asp  aspx  [windows]  2:PHP[全平台]3: JSP[全平台]  [JAVA]4: python[全平台]  PS:后端语言是对服务器行为的编程,被称为服务器端脚本和服务器脚本。后端语言......
  • manage项目引入axios,并完成axios基础配置
    1、npminstallaxios引入axios2、src下新建http.ts,可根据项目实际情况配置importaxiosfrom'axios';consthttp=axios.create({baseURL:'http://localhost:8080',//基础URL可以根据你的情况自行修改timeout:10000,//请求超时时间//其他配置...});//请求拦......
  • 使用python脚本,批量修改mysql数据库表字段名称
    前提:搭建python相关环境目的:将驼峰式命名或混合大小写的字段名转换为下划线分隔的小写字段名。例如:UserName->user_name,userName->user_name一、新建脚本update_table_column_names.pyimportpymysqlimportreimportsysdefto_snake_case(name):s1......
  • Next.js 14 基础入门:从项目搭建到核心概念
    Next.js14带来了许多激动人心的新特性,包括局部渲染、ServerActions增强等。作为一名前端开发者,我最近在项目中升级到了Next.js14,今天就来分享一下从项目搭建到实际应用的完整过程。项目初始化首先,让我们创建一个全新的Next.js14项目:#使用create-next-app创建项目n......
  • 数据库连接池----DBUtils的使用
      DBUtils是一个用于管理数据库连接池的Python库,它提供了连接池的管理,可以避免每次进行数据库操作时都重新建立连接。通过DBUtils,你可以更高效地管理数据库连接,尤其在高并发的情况下,能够有效减少创建和销毁连接的开销。DBUtils支持多种数据库驱动,包括MySQL、Postgre......
  • Java基础2
    面向对象基础面向对象和面向过程的区别面向过程编程(Procedural-OrientedProgramming,POP)和面向对象编程(Object-OrientedProgramming,OOP)是两种常见的编程范式,两者的主要区别在于解决问题的方式不同:面向过程编程(POP):面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执......