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

数据库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.lryc.cn/news/222377.html

相关文章:

  • C语言实现给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
  • 101 对称二叉树
  • 安全测试,接口返回内容遍历~
  • 【GIS】地理坐标系与投影坐标系的区别
  • 太细了:美团一面连环夺命20问,搞定就60W起
  • 休眠和睡眠有哪些区别?如何让电脑一键休眠?
  • Kibana使用Timelion根据时间序列展示数据
  • 基础:JavaScript的怪癖之一:提升(Hoisting)
  • 前端特殊字符转码
  • Python开发运维:Python3.7安装Django3.2
  • B站双11,联手天猫暴涨2亿消费新势力
  • 如何选择SVM中最佳的【核函数】
  • RT-Thread的构建与配置系统
  • 合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(一)
  • Git的简介以及基本使用
  • django安装数据库
  • springboot--外部环境配置
  • 『MySQL快速上手』-④-表的操作
  • 2023年10月Web3行业月度发展报告区块链篇 |陀螺研究院
  • 【TES745D】青翼自研基于复旦微的FMQL45T900全国产化ARM核心模块(100%国产化)
  • 初次给外贸客户发邮件范文
  • C语言中的多种形式的循环结构
  • 7天入门python系列之第二天python 基础语法
  • 【星海出品】flask 与docker
  • Oracle的to_date()函数解决sql语句日期格式问题
  • Vue实现面经基础版案例(路由+组件缓存)
  • uniapp打开外部链接方式
  • SecureCRT安装、注册教程
  • 音乐免费下载mp3格式+音频格式转换+剪辑音频+合并音频教程
  • 腾讯云16核服务器配置有哪些?CPU型号处理器主频性能