数据库基础知识---------------------------(1)

数据库分类

关系型数据库 以表格方式存储数据

例子:   MySQL、Oracle、DB2、SQLserver等

特点:  SQL结构程度较高、安全性高、查询效率较低

非关系型数据库 以键值方式存储数据

例子:   Redis、Hbase、MongoDB等

特点:   查询效率高、安全性不高

数据类型

整数   int

小数   double

字符串  varchar()

时间日期  date   datetime

其他  图片音频存放路径

SQL语句的分类

DDL 数据定义语言

创建库

        create database if not exists 库名 charset utf8;

删除库

        drop database 库名;

查看库

        show databases  显示所有的库

        select database() 显示正在使用的库  

        show create database 库名 显示创建该库的语句

创建表

        create table if not exists 表名(
         字段名 类型 约束,
         ...... ..... ....
        );

查看表

        show tables 查看有哪些表

        show create table 表名  查看数据表的创建语句

        desc 表名   查看表结构

删除表 

        drop table  表名

        truncate table 表名 清空数据 有自动增加字段可以重置为0

        delete 不会重置且效率低

修改表(列操作)

给表添加一列 

        alter table 表名 add 字段名 类型 first/after 其他字段名

修改列

        alter table 表名 modify 要修改的字段名 类型 约束

修改列名

        alter table 表名 change 旧字段名 新字段名 类型 约束

删除列

        alter table 表名 drop 列名

修改表名

        rename table 表名 to 新表名

DML 数据操作语言

插入数据

        insert into 表名(字段名1,字段名2,...) values (值1,值2...)

修改数据

        update 表名 set 字段名1 = 值,字段名2 = 值... where 条件

删除数据

        delete from 表名 where 条件

DQL 数据查询语言

查询分类

去重  select distinct 字段名 from 表名

比较查询  >,<,>=,<=,<>,!=

范围查询

        select * from 表名 where 字段名 in (范围值)

        select * from 表名 where 字段名 between A and B

逻辑查询 and / or / not

模糊查询 

        select * from 表名 where 字段名 like '%字%'   %通配符表示占0-n个位置

        select * from 表名 where 字段名 like  ‘_’  _通配符表示占一个位置

非空查询 is null / is not null

排序查询 

        select * from 表名 where 条件 order by 字段名 [asc|desc];

聚合查询  聚合函数会忽略空值计算

        select 函数(...) from 表名 [where 条件];    -- count\max\min\avg\sum

分页查询

        select 字段名1,字段名2,... from 表名 limit M, N;

        M 表示从第几个索引开始,默认为0  
        计算:(当前页码-1 )*每页显示的数据

        N 表示查询多少个数据

分组查询

        select 字段名1,字段名2,... from 表名 group by 分组字段名 [having 分组条件];

        select 字段名1,字段名2,聚合函数(...) from 表名 group by 分组字段名;

查询顺序

                select 
                           字段名,聚合函数 as 别名
                from 
                           表名1 join 表名2 on 关联条件 
                where
                           条件
                group by
                             分组字段名 、sum(聚合函数)
                having 
                              过滤条件
                order by
                              字段名
                limit   m, n;

  1. FROM:首先执行FROM子句,确定要从哪些表中检索数据。

  2. ON:接着执行ON子句,用于表之间的连接条件。

  3. JOIN:然后是JOIN操作,根据ON子句的条件合并表。

  4. WHERE:之后是WHERE子句,用于对结果集进行过滤。

  5. GROUP BY:GROUP BY子句用于将结果集分组,通常与聚合函数(如SUM, AVG)一起使用。

  6. HAVING:HAVING子句用于筛选分组后的结果集。

  7. SELECT:SELECT子句用于选择从结果集中返回哪些列。

  8. DISTINCT:DISTINCT用于去除重复的行。

  9. ORDER BY:ORDER BY子句用于对结果集进行排序。

  10. LIMIT:最后,LIMIT子句用于限制返回的结果数量。

DCL 数据控制语言

SQL约束

一般在创建数据表时进行设定,且可以同时对字段设定多个SQL约束

主键 primary key

        添加主键约束 

        alter table 表名 add primary key(字段名)

        删除主键约束

        alter table 表名 drop primary key

非空 not null

唯一 unique

默认值 default

外键 foreign key

※※MYSQL常见引擎   引擎起到一个启动器的作用

InnoDB:支持事务处理 支持外键 支持崩溃恢复处理和并发控制

MyISAM:插入数据快,空间和内存使用比较低   以查询插入为主,基本上可以用这个引擎来创建表

Memory: 所有的数据都在内存中,数据的处理速度快,但是安全性不高

archive : 只支持select 和 insert语句,而且不支持索引。常应用于日志记录和聚合分析方面

外键 foreign key

  • 约束两张表
  • 在从表中约束 本表中关联字段非主键 和主表中的主键
  • foreign key (字段名) references 另外表名(主键列名)
  • alter table 表A add constraint xxxfk foreign key (外键字段名) references 另外表名(主键字段名);(了解)

关系:

  • 一对一
    • 就是在数据表A中的一条数据,在数据表B中都有一个与之对应的结果
    • 1.主键对主键
    • 2.在任意一张中建立外键连接另一个表的主键.外键必须加唯一约束.
  • 一对多
    • 在【多】的一方有个字段,作为外键字段指向【一】的一方的主键字段。
  • 多对多
    • 通常需要创建第三张表(综合表),并作为中间表,且该表至少有两个字段(都是外键),分别作为外键字段指向各自一方的主键。
    • 就是将一个多对多关系拆分成:两个一对多关系的数据表

多表查询

交叉连接查询

  • 笛卡尔积 两个表并集
  • select 字段名 from A表名, B表名;
  • select 字段名 from A表名 cross join B表名;

内连接查询 两个集合交集

  • 隐式内连接
    • select 字段名 from A表名, B表名 where 条件;
  • 显式内连接
    • select 字段名 from A表名 别名 [inner] join B表名 别名 on 条件 [where 查询条件];

外连接查询

如果根据条件查询,当表数据不存在时,则会使用null值来填充

  • 左外连接 以左表为主并根据条件来查询右表数据
    • select 字段名 from A表名 别名 left [outer] join B表名 别名 on 条件;
  • 右外连接 以右表为主并根据条件来查询左表数据
    • select 字段名 from A表名 别名 right [outer] join B表名 别名 on 条件;

自连接查询

  • select *|字段名1,字段名2,... from A表名 a join B表名 b on a.字段名 = b.字段名 [where 条件];
  • 在进行连接查询操作时,必须为数据表定义别名
  • 自连接查询常用于省市的多级关联处理  又或者员工上级的多级关联

子查询

语法  可以来源于一个子查询 也可以条件是一个子查询的字段

  • select *|字段名1,字段名2,.. from 表名 where 字段名 = (另外select语句的结果);
  • select *|字段名1,字段名2,.. from 表名 where 字段名 in (另外select语句的结果);
  • select *|别名.字段名1,别名.字段名2,.. from (select * from 表名 ) 别名

常用函数

字符函数

  • length(str)  字符串求占用空间长度
  • concat(str1,str2...) 连接字符串
  • upper(str)、lower(str)函数   转大小写
  • substr(str,start,len)函数   从指定位置截取指定长度的字符串
  • instr(str,要查找的子串)函数   判断是否存在 返回 索引值 或者 0
  • trim(str)函数  去除两端空格
  • lpad(str,len,填充字符)、rpad(str,len,填充字符)函数  左右两边指定个数填充.
  • replace(str,子串,另一个字符串)函数  字符串替换

数学函数

  • ①round(x,保留位数)函数: 四舍五入保留小数位.
  • ②ceil(x)函数        :天花板函数
  • ③floor(x)函数       :地板函数
  • ④truncate(x,D)函数  : 按照D的值截取小数部分.
  • ⑤mod(被除数,除数)函数 : 求余数
  • ⑥pow(x,D)函数       : x的D次方

时间与日期

  • ②now()函数                          :当前日期和时间
  • ③curdate()函数                      :当前日期
  • ④curtime()函数                      :当前时间
  • ⑤year、month、day、hour、minute、second获取日期和时间中的年、月、日、时、分、秒
  • ⑥weekofyear()函数                   :一年的第几周
  • ⑦ quarter()函数                     :一年中的季度
  • ⑧ str_to_date()函数                 :字符串转时间类型
  • ⑨date_format()函数                  :格式化时间字符串
  • ⑩date_add(日期,interval num 时间)函数 :添加日期   还有一个date_sub同理
  • ⑪last_day()函数                      :月度最后一天
  • ⑫datediff(end_date,start_date)函数   : 时间差
  • ⑬timestampdiff(unit,start_date,end_date)函数计算两个时间返回的年/月/天数;

流程操作

  • if(expr,v1,v2)函数   : 判断数据给出返回值
  • ifnull()函数         : 判断空给出返回值
  • nullif(expr1,expr2)  : 相同返回null 不同保留表达式1的原值.
  • case…when函数用法     : 多条件判断给出返回值.

   

 case…when函数用法     : 多条件判断给出返回值.#区间范围的判断.CaseWhen condition1 Then result1When condition2 Then result2...Else result_nEnd--------------------------------------固定值的判断.case 列名when 值 then 值when 值 then 值....else 值end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/53742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(不用互三)AI绘画工具大比拼:Midjourney VS Stable Diffusion该如何选择?

文章目录 &#x1f4af;如何选择合适的AI绘画工具根据个人需求选择1. 您喜欢什么风格的绘画&#xff1f;2. 您想要创作什么主题的内容&#xff1f;3. 您对绘画工具的使用经验如何&#xff1f; 比较工具特点1. 工具的易用性和功能性如何&#xff1f;易用性&#xff1a;功能性&am…

Qt_自定义信号

目录 1、自定义信号的规定 2、创建自定义信号 3、带参数的信号与槽 4、一个信号连接多个槽 5、信号与槽的断开 结语 前言&#xff1a; 虽然Qt已经内置了大量的信号&#xff0c;并且这些信号能够满足大部分的开发场景&#xff0c;但是Qt仍然允许开发者自定义信号&#…

基于vue框架的宠物寄养系统3d388(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,宠物信息,宠物分类,寄养店,宠物寄养,宠物领养,家庭环境,用户宠物 开题报告内容 基于Vue框架的宠物寄养系统开题报告 一、引言 随着人们生活水平的提高和宠物文化的普及&#xff0c;宠物已成为许多家庭不可或缺的一员。因此&…

实战案例(5)防火墙通过跨三层MAC识别功能控制三层核心下面的终端

如果网关是在核心设备上面&#xff0c;还能用MAC地址进行控制吗&#xff1f; 办公区域的网段都在三层上面&#xff0c;防火墙还能基于MAC来控制吗&#xff1f; 采用正常配置模式的步骤与思路 &#xff08;1&#xff09;配置思路与上面一样 &#xff08;2&#xff09;与上面区…

万象奥科参展“2024 STM32全国巡回研讨会”—深圳站、广州站

9月3日-9月5日&#xff0c;万象奥科参展“2024 STM32全国巡回研讨会”— 深圳站、广州站。此次STM32研讨会将会走进全国11个城市&#xff0c;展示STM32在智能工业、无线连接、边缘人工智能、安全、图形用户界面等领域的产品解决方案及多样化应用实例&#xff0c;深入解读最新的…

Linux系统部署SmartKG(知识图谱安装)

基本要求 #docker需要高版本 Docker version 20.10.14, build a224086docker 20.10.14离线安装 SmartKG官网 官方详细文档 下载部署包 SmartKG官网 准备部署 #上传到服务器 [roottest-server01 opt]# ll SmartKG-master.zip -rw-r--r-- 1 root root 79708691 Sep 11 17:4…

c++基类和派生类对象的赋值转换——赋值兼容规则

1.引出 如下场景&#xff1a; 由于b是double类型&#xff0c;所以赋值给int类型的引用前&#xff0c;要先进行隐式类型转换&#xff0c;这中间会生成临时对象&#xff0c;类是对象具有常性&#xff0c;所以int&之前应该加上const。 但是下面的场景&#xff1a; 没有出现报…

亚马逊测评自建团队与工作室的五大优势亮点,打造高权重评价系统

亚马逊上的产品评价&#xff0c;其实就是为了让买家们说出他们的真实想法&#xff0c;这样卖家就能知道怎么把东西做得更好&#xff0c;让买家更满意&#xff0c;还能让卖东西的招数更给力。效果有以下几点&#xff1a; 1. 商品更靠谱&#xff1a;买家说好&#xff0c;大家就更…

基于SSM的校园志愿者管理系统的设计与实现---附源码76245

摘 要 本文基于SSM框架&#xff0c;设计并实现了一套校园志愿者管理系统&#xff0c;旨在提高校园志愿服务管理的效率和质量。系统主要包括管理员、志愿者和活动发布者三大角色&#xff0c;涵盖了志愿者管理、活动管理、公告管理等功能模块&#xff0c;采用了MySQL作为数据库&…

【计算机组成原理】详细解读带符号整数在计算机中的运算

有符号整数的运算 导读一、补码的优势二、补码的加法运算三、补码的减法运算四、原码、反码、补码的特性结语 导读 大家好&#xff0c;很高兴又和大家见面啦&#xff01;&#xff01;&#xff01; 经过前面的介绍&#xff0c;我们已经初步认识了有符号整数的三种表示形式&…

NPU 与 GPU 相比,有什么差别?| 技术速览

编者按&#xff1a; 随着2024年被业界誉为“AI PC元年”&#xff0c;各大笔记本电脑厂商纷纷推出搭载NPU的全新AI PC&#xff0c;而在介绍产品性能时&#xff0c;“NPU”一词频频被提及。但NPU和我们所熟知的GPU之间的区别究竟是什么&#xff1f; 我们今天为大家分享的这篇文章…

电水壶自复位热断循环测试合规性

在家用电器安全标准中,电水壶的安全性尤为重要,尤其是涉及热保护装置的部分。电水壶在日常使用中频繁接触高温水,极端情况下,温度可能异常升高。因此,为了确保用户的安全,热保护装置必须可靠工作。本文将探讨自复位热断路器(TCO)在电水壶中的作用,以及在100次循环测试…

如何在 Selenium 中获取网络调用请求?

引言 捕获网络请求对于理解网站的工作方式以及传输的数据至关重要。Selenium 作为一种 Web 自动化工具,可以用于捕获网络请求。本文将讨论如何使用 Selenium 在 Java 中捕获网络请求并从网站检索数据。 我们可以使用浏览器开发者工具轻松捕获网络请求或日志。大多数现代 Web…

creating chat agent with langchain and openai getting no attribute error

题意&#xff1a; 使用 LangChain 和 OpenAI 创建聊天代理时遇到“没有属性错误”&#xff08;Getting "no attribute" error when creating a chat agent with LangChain and OpenAI&#xff09; 问题背景&#xff1a; Im trying to test a chat agent using the …

房产销售系统|基于java和vue的房产销售系统(源码+数据库+文档)

房产销售|房地产|卖房系统 目录 基于java和vue的房产销售系统 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师&#xff0c;…

95分App全程正品保障,赋能闲置消费新风尚

在当今快节奏、高消费的时代&#xff0c;闲置经济正以前所未有的速度崛起&#xff0c;成为新一代消费者的新宠。越来越多的年轻人开始拥抱闲置商品&#xff0c;将“断舍离”与“物尽其用”的理念融入日常生活&#xff0c;催生了闲置交易市场的空前繁荣。曾几何时&#xff0c;购…

【iOS】UIViewController的生命周期

UIViewController的生命周期 文章目录 UIViewController的生命周期前言UIViewController的一个结构UIViewController的函数的执行顺序运行代码viewWillAppear && viewDidAppear多个视图控制器跳转时的生命周期pushpresent 小结 前言 之前对于有关于UIViewControlller的…

补:在Spring Boot 当中使用 Thymeleaf 视图解析器

补&#xff1a;在Spring Boot 当中使用 Thymeleaf 视图解析器 想要在 Spring Boot 当中使用 Thymeleaf 视图&#xff0c;就需要导入相关的 jar 依赖。在 pom.xml 文件中配置 。 <!-- 引入 thymeleaf-start ,项目会自动完成配置&#xff0c;--><dependency>…

网络操作系统项目

部署与管理Active Directory 项目基础知识 活动目录是一种由微软开发的网络服务&#xff0c;用于在网络环境中管理和组织用户、计算机和其他网络资源。它是基于目录服务的概念&#xff0c;类似于电话号码簿。 活动目录主要用于集中管理网络中的用户帐户、组织单位、计算机、打…

统一建模语言UML之类图(Class Diagram)(表示|关系|举例)

文章目录 1.UML2.Class Diagram2.1 类图的表示2.2 类间的关系2.2.1 关联2.2.2 聚合2.2.3 组合2.2.4 泛化&#xff08;继承&#xff09;2.2.5 实现&#xff08;接口实现&#xff09;2.2.6 依赖 2.3 类图的作用 参考&#xff1a;Class Diagram | Unified Modeling Language (UML)…