数据库SQL

数据库&SQL

  • 数据库基本概念
    • 数据库DataBase
      • 定义
    • 数据库管理系统(DBMS)
      • 定义
      • 在JAVA项目中与数据库的结合
      • 数据库管理系统中常见的概念
        • 库与表的关系
  • SQL
    • 数据类型
      • 数字类型
      • 浮点类型
      • 字符类型
      • TEXT类型
      • 日期类型
    • SQL语言的分类
      • DDL:数据定义语言
          • 修改表结构的注意事项
      • DML:数据操作语言
      • DQL:数据查询语言
      • DCL:数据控制语言
      • TCL:事务控制语言
  • 约束

数据库基本概念

数据库DataBase

定义

保存一组数据的仓库就称为数据库
例如
编写一个用户管理系统,我们将用户输入的信息以User对象形式表示,并序列化后保存到某个.obj的文件中,用一个目录来保存所有的用户文件,这个目录也可以称为是一个"数据库".
只是对于文件的维护工作(新建文件,修改现有文件数据,删除文件数据)通过编码来实现.

数据库管理系统(DBMS)

定义

一套可独立运行的软件,用于维护磁盘上的数据.维护性高,性能好,可扩展性强.

常见的数据库
MySQL
MariaDB
ORACLE
DB2
SQLServer

在JAVA项目中与数据库的结合

在这里插入图片描述

数据库管理系统中常见的概念


是表的集合,将来不同的项目都可以创建一个库,用来保存该项目中所有的表

是数据的集合,一组具有相同数据的数据保存在一张表上
行:一条记录,具有表中所有字段的一条实际数据
列:字段,一条记录应当具有的相应属性
在这里插入图片描述

库与表的关系

不同的数据要保存在不同的表中,一个项目中所有的表应当存在一个数据库中.而DBMS可以同时管理多个库
DBMS安装后是以服务端的角色运行的,因此我们向操作数据库是以客户端的身份与数据库进行连接,并进行相关操作
在这里插入图片描述

请添加图片描述

SQL

Structured Query Language
SQL语言的特点:
关键字不缺分大小写

好的书写习惯:
关键字全大写,非关键字全小写
字符串内容是区分大小写的

数据类型

在数据库中设计一张表时,要为表中每个字段(列)单独指定数据类型以确保可以保存正确的数据

数字类型

整数类型

  • INT类型
    int类型占用4个字节,保存数字的范围±21
    INT(m):m表示整数的长度(位数),类型后面通常要指定长度,不指定时默认为11位.
  • BIGINT类型
    bigint类型占用8个字节

浮点类型

  • DOUBLE类型
    DOUBLE(M,N):定义DOUBLE类型时,要指明数字的长度和精度
    M:表述数字的长度(位数)
    N:表示小数点后的精度
    M包含N.
    DOUBLE(7,2):可以保存一个7位数字,其中2位数小数.最大值可以保存:99999.99

字符类型

定长字符串

  • CHAR类型
    CHAR类型是定长字符串类型
    CHAR(m): m是一个数字,表示长度,单位是字符。m最大值255
    CHAR类型在磁盘中开辟的空间是固定的,根据指定的长度来进行开辟。
    例如:使用UTF-8编码,长度为3,最多可以保存3个字符,此时无论该字段是否保存够了三个字符都要都开3个字符占用的字节空间。
    优点: 在磁盘上开辟的空间是确定的,固定长度带来了更好的检索性能
    缺点: 浪费磁盘空间

变长字符串

  • VARCHAR类型
    VARCHAR类型是边长字符串,实际占用磁盘空间的大小由数据决定
    VARCHAR(m): m是一个数字,表示长度,单位是字节,最大值为65535.
    实际占用的磁盘空间由数据决定
    例如:name VARCHAR(50)
    name字段保存的字符最多占用50个字节
    如果name保存字符串’张三’,'张三’在UTF-8编码中占6个字节,该字段值实际在磁盘上就占用6字节
    优点: 磁盘空间没有浪费
    缺点: 每条记录该字段长度不一致,会导致查询性能差一些

TEXT类型

TEXT(m): m是一个数字,表示长度,单位是字符,最大值65535

日期类型

类型

  • DATE
    可以保存年,月,日
  • TIME
    可以保存时,分,秒
  • DATETIME
    可以保存年,月,日,时,分,秒
    格式必须为"yyyy-MM-dd hh:mm:ss"(M表示月,m表示分)
    插入数据时可以忽略时分秒,不指定时默认为0
    插入数据时不可以忽略年月日
  • TIMESTAMP
    时间戳,保存UTC时间,最多可以精确到毫秒

SQL语言的分类

DDL:数据定义语言

用于进行数据库对象的操作.数据库对象指:库,表,视图,索引,序列等
对数据库对象进行操作的语言:CREATE,ALTER,DROP

  • CREATE DATABASE 数据库名 [CHARSET=字符集]
    新建一个数据库
    指定字符集常用:UTF8,GBK

  • SHOW DATABASES
    查看已经创建的数据库

  • SHOW CREATE DATABASE 数据库名
    查看某个数据库创建时的信息

  • DROP DATABASE 数据库名
    删除数据库

  • USE 数据库名
    切换数据库
    注意:
    在DBMS下会为不同的项目创建不同的数据库,只有切换到某个数据库上,进行的相关操作才是针对该库的操作

  • CREATE TABLE 表名(
    字段1名字 类型[(长度)] [DEFAULT 默认值] [约束],
    字段2名字 类型[(长度)] [DEFAULT 默认值] [约束],

    )

    创建表

  • DESC 表名
    查看表结构

  • SHOW CREATE TABLE 表名
    查看表时创建的信息

  • SHOW TABLES
    查看当前数据库所有的表

  • RENAME TABLE 原表名 TO 新表名
    修改表名

  • DROP TABLE 表名
    删除表

  • ALTER TABLE 表名 ADD 字段名 类型[(长度)] [DEFAULT默认值] [约束]
    在一张表的末尾追加一个新的字段

  • ALTER TABLE 表名 ADD 字段名 类型 FIRST
    在表最开始处插入字段

  • ALTER TABLE 表名 ADD 字段名 类型 AFTER 表中某字段
    将新字段添加到表中指定字段的后面

  • ALTER TABLE 表名 DROP 字段名
    删除表中字段

  • ALTER TABLE 表名 CHANGE 原字段名 新字段名 类型[长度 默认值 约束]
    修改表中字段

修改表结构的注意事项

修改表结构最好是在表中没有数据的前提下进行

如果表中已经存在数据

  • 尽量不要修改字段类型,否则可能导致表中该字段原有的数据不符合新修改的类型而导致修改失败
  • 字段的长度尽量不要缩短,否则可能由于表中该字段的值已经超过了修改后的长度导致修改失败
  • 为字段添加新的约束时,要保证表中该字段原有的数据不违背该约束要求。
    请添加图片描述

DML:数据操作语言

对表中数据进行操作的语言.包含:增(INSERT)删(DELETE)改(UPDATE)

  • INSERT INTO 表名 (字段1,字段2,字段3,…) VALUES(值1,值2,值3,…)
    指定的值要与指定的字段一一对应,用于将值插入到表中作为一条记录
    INSERT语句中没有被指明的字段都是插入默认值。如果该字段没有明确指定默认值时,默认值为NULL
    注意事项:
    数据库中字符串的字面量使用单引号
    INSERT语句中VALUE子句中指定的值的顺序,个数,类型必须与前面指定的字段完全一致
    INSERT语句指定的字段的顺序,个数可以与该表不完全一样
    全列插入
    INSERT语句中不指定任何字段时,则为全列插入,此时要求VALUES子句中指定的值的顺序,个数,类型必须与表结构定义完全一致

  • INSERT INTO 表名 VALUES(值1,值2,…)
    全列插入

  • INSERT INTO 表名[(字段1,字段2,字段3…)] VALUES(值1,值2,值3),(第二组值),(第三组值),…
    批量插入

  • SELECT * FROM 表名
    查看指定表中的所有记录

  • UPDATE 表名 SET 字段1=新值1,字段2=新值2,… [WHERE 过滤条件]
    修改表数据

  • WHERE子句的基础条件
    WHERE子句中可以使用的基础条件判断:>, >=, <, <=, =, <>(判断不等于使用"<>“,有些数据库支持”!=")

  • DELETE FROM 表名 [WHERE 过滤条件]
    删除表中数据

  • DELETE FROM 表名
    清空表

请添加图片描述

DQL:数据查询语言

对表中数据进行查询的语言,SELECT语句

DCL:数据控制语言

是对数据库进行管理的,通常比如创建用户,分配权限等.(DBA重点学习)

TCL:事务控制语言

包含:COMMIT(提交),ROLLBACK(回滚)

约束

我们可以对表施加约束条件,这样一来只有满足约束要求的操作才可以进行,否则会被数据库拒绝

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

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

相关文章

uni-app:js实现数组中的相关处理-数组复制

一、slice方法-浅拷贝 使用分析 创建一个原数组的浅拷贝&#xff0c;对新数组的修改不会影响到原数组slice() 方法创建了一个原数组的浅拷贝&#xff0c;这意味着新数组和原数组中的对象引用是相同的。因此&#xff0c;当你修改新数组中的对象时&#xff0c;原数组中相应位置的…

PDF Expert for mac(苹果电脑专业pdf编辑器)兼容12系统

PDF Expert是macOS平台上的一款优秀的PDF阅读和编辑工具&#xff0c;由Readdle公司开发。它不仅拥有方便、易用的界面&#xff0c;还具备诸多功能&#xff0c;比如编辑PDF文件、添加批注、填写表格、签署文件、合并文档等。安装:PDF Expert for Mac(PDF编辑阅读转换器)v3.5.2中…

HT6819 3.3W 防削顶低EMI立体声 D类音频功率放大器

HT6819的防削顶失真功能可检测并抑Z由于音乐、语Y信号幅度过大或电池电压下降所引起的输出削顶失真&#xff08;破音&#xff09;&#xff0c;显著提高音质&#xff0c;创造舒适的听音享受&#xff0c;并保护扬声器免受过载损坏。通过在ACRC端外接不同电阻电容值,可灵活设置放大…

C++引用和指针的区别

C引用和指针的区别 引用是一种更加安全的指针 1、引用必须初始化&#xff0c;指针可以不初始化&#xff1b; 2、由下图可以看出&#xff0c;定义一个指针和引用在汇编阶段是一模一样的&#xff1b; 通过引用变量修改所引用的内存的值和通过指针解引用修改指针指向内存的值&…

CAS200 CLS216 基于图形用户界面的快速应用程序开发

CAS200 CLS216 基于图形用户界面的快速应用程序开发 最新的Sapera Vision软件套件包括萨佩拉加工和新的星形胶质细胞铥人工智能(AI)的图形应用。该软件套件提供经过现场验证的图像处理和人工智能功能&#xff0c;用于设计、开发和部署高性能机器视觉应用。 这个最新版本的Sape…

chrome driver下载、selenium安装及报错解决

目录 一、Chrome驱动下载 1.查看Chrome版本 2.下载驱动 3.驱动的路径 无法运行驱动 二、selenium的安装与使用 1.安装selenium 2.使用selenium 参考 一、Chrome驱动下载 1.查看Chrome版本 打开Chrome浏览器&#xff0c;点击右上角的三个点&#xff0c;再点击设置。 …

07-MySQL-进阶-锁InnoDB引擎MySQL管理

涉及资料 链接&#xff1a;https://pan.baidu.com/s/1M1oXN_pH3RGADx90ZFbfLQ?pwdCoke 提取码&#xff1a;Coke 一、锁 ①&#xff1a;概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传统的计算资源&#xff08;CPU、RAM、I/O&#xf…

详解机器学习最优化算法

前言 对于几乎所有机器学习算法&#xff0c;无论是有监督学习、无监督学习&#xff0c;还是强化学习&#xff0c;最后一般都归结为求解最优化问题。因此&#xff0c;最优化方法在机器学习算法的推导与实现中占据中心地位。在这篇文章中&#xff0c;小编将对机器学习中所使用的…

SpringCloud——服务注册——Eureka

1.Eureka概述 2.Eureka架构&#xff1a; Eureka中80服务要实现对8001和8002服务访问的负载均衡&#xff0c;需要在80服务的RestTemplate上面加LoadBalanced注解&#xff0c;默认采用的是轮询的策略。 3.Eureka自我保护 当一个EurekaClient注册进EurekaServer&#xff0c;Eurek…

Pycharm-community-2021版安装和配置

一、下载Pycharm-community-2021 1.从官网下载pycharm-community Pycharm 版本官网 二、安装PyCharm 1.打开下载完成的安装包&#xff0c;点击Next 2.安装PyCharm到其他位置,点击Next 3.一定把更新PATH变量勾上,可以创建桌面快捷方式&#xff0c;创建关联&#xff0c;最后…

卓越进行时 | 赛宁助力职业院校实践“岗课赛证训创”育人模式

11月7日&#xff0c;赛宁网安邀请南京城市职业学院网络安全学科师生走进网络安全卓越中心&#xff0c;为大一新生提供“职业导学” 和“岗位认知”的综合性实践课程&#xff0c;帮助学生提升对于网络安全专业和未来职业的认知水平&#xff0c;进一步深化校企合作人才培养的持续…

基于SSM的高校疫情防控出入信息管理系统(有报告)。Javaee项目。

演示视频&#xff1a; 基于SSM的高校疫情防控出入信息管理系统&#xff08;有报告&#xff09;。Javaee项目。 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 项目介绍&#xff1a; 采…

CodeWhisperer--轻松使用一个超级强大的工具!

CodeWhisperer 简介 CodeWhisperer 是亚⻢逊出品的一款基于机器学习的通用代码生成器&#xff0c;可实时提供代码建议。 CodeWhisperer 有以下几个主要用途&#xff1a; 解决编程问题&#xff0c;提供代码建议&#xff0c;学习编程知识等等&#xff0c;并且 CodeWhisperer 会…

MySQL(7):单行函数

不同DBMS函数的差异 内置函数&#xff1a; 系统内置的通用函数。 自定义函数&#xff1a; 根据自己的需要编写的函数。 大多数 DBMS 使用&#xff08;||&#xff09;或者&#xff08;&#xff09;来做拼接符&#xff0c;而在 MySQL 中的字符串拼接函数为concat()。 大部分 D…

【java】【MyBatisPlus】【四】【完】MyBatisPlus一些实战总结(枚举、翻页、sql、组合条件、自增主键、逻辑删除)

目录 一、枚举 1、数据库type字段是Integer 类型枚举 2、创建一个该字段的枚举类 TypeEnum 3、修改实体类 4、配置文件新增mybatis-plus的配置 5、检验&#xff1a; 5.1 查询显示 5.3 库里验证 二、自增主键不是id字段处理 三、逻辑删除字段不是delete字段处理 1、实…

Android - 编译 openssl 踩坑之路

一、简述 如果你想快速在项目中使用上 openssl,可以使用网上其他开发者提供好的预编译库: OpenSSL(All):https://builds.viaduck.org/prebuilts/openssl/OpenSSL(3.1.*) :https://github.com/217heidai/openssl_for_android以上的预编译库可能最低只支持 API 21(即 Andro…

基于Kinect 动捕XR直播解决方案 - 技术实现篇

一 安装与部署 1. 安装与部署Kinect-v2设备: 安装硬件: Kinect-v2设备带线一台; Kinect-v2 原装适配器适配器组合件设备一台; Kinect-v2 USB 3.0 WIndows PC 一天&#xff0c;原主板支持USB3.0接口; Windows PC 系统 Win10( Win 10 Version 21H2更新, 基于x64系统), 特别…

必看:一组WhatsApp2023年数据合集,助你深入洞察WS营销

作为一款遍布全球的超级应用&#xff0c;WhatsApp以高人气、广覆盖和高效便利收获了几十亿用户&#xff0c;也无数次连接了用户与企业。对于WhatsApp运营布局&#xff0c;客观数据能为企业提供多方面的依据和判断。本文将从多个维度展示WhatsApp2023年数据&#xff0c;希望能为…

Spring Boot 统一处理功能

目录 1.用户登陆权限验证 1.1 每个方法验证 1.2 Spring AOP 用户统一登陆验证 1.3 拦截器 1.3.1 自定义拦截器 1.3.2 将自定义拦截器配置到系统设置中&#xff0c;并且设置拦截规则 1.3.3 排除所有的静态资源 1.4 登录拦截器&#xff08;练习&#xff09; 1.5 拦截器原…

全网短视频平台视频下载神器软件,可以下载网页上的视频、音频、直播、回放、课程 【视频下载脚本+教程】

软件介绍&#xff1a; 这是一款可以下载全网大多数平台视频的软件&#xff0c;可以帮助用户轻松下载网页上的视频、直播、回放、课程等&#xff0c;也可以支持下载MP3音乐文件、图片。 目前支持的平台有&#xff1a;淘宝、抖音、快手、哔哩哔哩、虎牙、斗鱼、京东、京喜、小红…