MySQL相关知识

一、什么是数据库?

数据库(Database,简称DB)概念: 长期存放在计算机内,有组织、可共享的大量数据的集合,是一个 数据“仓库”。

二、数据库的特点: 

1.结构化:数据在数据库中的存储可以依靠二维表结构来逻辑的存储数据,可以参考数据原有的依赖关系和结构关系去存储数据。

2.共享性:多个用户可以共同分享计算机数据 库中的数据资源,同一数据可以同 时被多人使用,从而实现了数据的 高效共享性。

3.独立性:存储在数据库的数据和应用程序之 间相互独立, 互不影响。数据在磁盘 上怎样存储由数据库管理而不依赖 于应用程序,这样当数据的物理存 储改变了,应用程序不用改变。

4.安全性:数据库在安全性的控制上也有很多 措施,比如访问数据库时对用户的 口令,用户的权限进行限制,再比 如对数据的存储进行限制。

三、数据库的作用:

       数据库的作用是: 存放、管理数据

四、数据库的分类

        数据库分为 ①关系型数据据②NoSQL数据库

五、常见的数据库有哪些?

关系型数据库:MySQL、ORACLE

NoSQL数据库:redis、mogongDB

五、为什么使用MySQL?

MySQL数据库的特点:①操作便捷、小巧但功能齐全②免费、开源的数据库③可运行于windows或linux系统。④操作方便,适合于中小型甚至大型网站应用

六、数据库结构

数据库(Database)文件的形式存放在磁盘上,即 对应于一个或多个物理文件。
数据表(Table)简称表,由一组数据记录组成, 数据库中的数据是以表为单位进 行组织的。一个表是一组相关的 按行排列的数据;每个表中都含 有相同类型的信息。

字段(Field)

也称域。表中的每一列称为一个 字段。每个字段都有相应的描述 信息。
记录(Record)表中的每一行称为一个记录,它 由若干个字段组成。实体
索引(Index)索引实际上是一种特殊类型的表, 其中含有关键字段的值和指向实 际记录位置的指针,可以提高访 问数据库的效率。
SQL语句结构化查询语句命令,用来从一 个或多个表中获取一组指定的记 录,或者对某个表执行指定的操 作。

七、SQL语句分类

        SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一 种数据库查询程序设计语言,用于存取数据以及查询更新管理关系数据库系统,同时也是数据库脚本文件的扩展名。

名词解释命令

DDL

(数据定义语言)

定义和管理数据对象, 如数据库,数据表等CREATE、DROP、ALTER

DML

(数据操作语言)

用于操作数据库对象中所包含的数据INSERT、UPDATE、DELETE

DQL

(数据查询语言)

用于查询数据库数据SELECT

DCL

(数据控制语言)

用来管理数据库的语言,包括管理权 限及数据更改GRANT、COMMIT、ROLLBACK

八、DDL语句操作数据库

创建数据库

CREATE DATABASE  [IF NOT EXISTS]  dbname

  • "[IF NOT EXISTS] " :内容可以省略
  • "dbname"  :需要创建的数据库名称
删除数据库

DROP DATEBASE [IF EXISTS] dbname

  • " [IF NOT EXISTS] " : 内容可以省略
  • "dbname"  :需要删除的数据库名称
查看数据库

SHOW DATABASES

  • 注意不要省略 “S
选择数据库

USE dbname

  • "dbname"  :需要创建的数据库名称

九、DDL创建数据表

语法:

        CREAT TABLE [ IF NOT EXISTS `表名`  (

                `字段名1`  字段类型 [ 属性 ] [ 索引 ] [ 注释],

                `字段名2`  字段类型 [ 属性 ] [ 索引 ] [ 注释],

                ... ...

                `字段名n`  字段类型 [ 属性 ] [ 索引 ] [ 注释]

[ 表类型 ] [ 表字符集 ];

  • “[]” 包含的内容可以省略;
  • “`” 当前符号为反引号,用于区别MySQL保留字与普通字符而引入的。

十、数据库表的字段类型 

        1.字符串类型
类型说明取值范围存储需求
char[(M)]固定长字符串,检索快但费空间, 0 <= M <= 255M字符char[(M)]
varchar[(M)]可变字符串 0 <= M <= 65535变长度varchar[(M)]
tinytext微型文本串16777215长度+3个字节tinytext
text文本串(4个G左右)4294967295长度+4个字节text
        2.数值类型
类型说明取值范围储存需求
tinyint非常小的数据有符值: -2 ^7 ~ 2^7-1,无符号值:0 ~ 28-11字节
smallint较小的数据有符值: -2 15 ~ 215 -1 ,无符号值: 0 ~ 216 -12字节
mediumint中等大小的数据有符值: -2 23 ~ 223 -1 ,无符号值: 0 ~ 224 -13字节
int标准整数有符值: -2^31 ~ 2^31-1,无符号值:0 ~ 2^32-14字节
bigint较大的整数有符值: -2^63 ~2^63-1,无符号值:0 ~2^64-18字节
float单精度浮点数±1.1754351e -384字节
double双精度浮点数±2.2250738585072014e -3088字节
Decimal(钱)字符串形式的浮点数点数 decimal(m, d) m个字节
        3.日期和时间类型
类型说明取值范围储存需求
DATEYYYY-MM-DD,日期格式1000-01-01~ 9999-12-31DATE
TIMEHh:mm:ss ,时间格式-838:59:59~838:59:59TIME
DATETIMEYY-MM-DD hh:mm:ss1000-01-01 00:00:00 至 9999-12-31 23:59:59DATETIME
TIMESTAMPYYYYMMDDhhmmss格式表示的时间戳197010101000000 ~2037年 的某个时刻TIMESTAMP
YEARYYYY格式的年份值1901~2155YEAR

设置当前 创建时间,或者是更新时间时给TIMESTAMP或者DATETIME字段 设置 DEFAULT CURRENT_TIMESTAMP 添加当前默认时间 

 NULL类型:

  •  理解为“没有值”或“未知值”;
  •  不要用NULL进行算术运算,结果仍为NULL;
  •  MySQL中,0或NULL都意味着为假,1为真。

十一、数据库表的字段注释

 CREATE TABLE [ IF NOT EXISTS ] `表名` (

                 `字段名1` 字段类型 [ 属性 ] [ 索引 ] [注释] ,

                `字段名2` 字段类型 [ 属性 ] [ 索引 ] [注释] ,

                … …

                `字段名n` 字段类型 [ 属性 ] [ 索引 ] [注释]

) [ 表类型 ] [ 表字符集 ] ;

注释:可以给字段增加注释,即给字段增加描述,方便后续修改和维护字段。

十一、数据库表的字段注释

查询创建的数据库结构: 
        方式一:
                describe 表名
或 
                desc 表名 
        方式二: 
                show create table 表名 

十二、数据库存储引擎

查看当前数据库支持的存储引擎: show engines;

查询结果显示,MySQL 8支持9种存储引擎,分别为MEMORY、MRG_ MYISAMCSV FEDERATED PERFORMANCE_ SCHEMA MyISAMInnoDB 、BLACKHOLE 和ARCHIVE

  • Engine参数 表示存储引擎名称。
  • Support参 数表示MySQL数据库管理系统是否支持该存储引擎: YES表示支持,NO表示不支持。
  • DEFAULT表示系统默认支持的存储引擎。
  • Comment 参数表示对存储引擎的评论。
  • Transactions参数表示存储引擎是否支持事务: YES表示支持,NO表示不支持。
  • XA参数表示存储引擎所支持的分布式是否符合XA规范: YES表示支持,NO表示不支持。代表着该存储引擎是否支持分布式事务。
  • Savepoints参 数表示存储引擎是否支持事务处理的保存点: YES表示支持,NO表示不支持。也就是说,该存储引擎是否支持部分事务回滚。
     

十四、 数据库存储引擎-MyISAM 和InnoDB区别

对比项MyISAMInnoDB
外键不支持支持
事务不支持

支持

行表锁表锁,即使操作一条记录也会锁住整个表,不适合高并发操作行锁,操作时只锁某一行,不对其它行有 影响,适合高并发操作
缓存只缓存索引,不缓存真实数据不仅缓存索引还要缓存真实数据,对内存 要求较高,而且内存大小对性能有决定性 的影响
默认安装Y
默认使用NY
关注点性能:节省资源、消耗少、简单业务事务:并发写,事务、更大资源

两种存储引擎各有特点,当然你也可以在MySQL中,针对不同的数据表,可以选择不同的存储引擎

十五、修改和删除数据表

修改表名ALTER【ɔːltə(r)】 TABLE 旧表 名 RENAME AS 新表名
修改字段ALTER TABLE 表名 MODIFY 【mɒdɪfaɪ】 字段名 列类型 [ 属性 ] ALTER TABLE 表名 CHANGE 旧字段 名 新字段名 列类型 [ 属性 ]
删除字段ALTER TABLE 表名 DROP 字 段名
添加字段ALTER TABLE 表名 ADD 字段 名 列类型 [ 属性 ]
删除表DROP TABLE [ IF EXISTS ] 表名

后续更新中......

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

如何在Ubuntu上安装并启动SSH服务(Windows连接)

在日常的开发和管理工作中&#xff0c;通过SSH&#xff08;Secure Shell&#xff09;连接到远程服务器是一个非常常见的需求。如果你在尝试通过SSH连接到你的Ubuntu系统时遇到了问题&#xff0c;可能是因为SSH服务未安装或未正确配置。本文将介绍如何在Ubuntu上安装并启动SSH服…

GitHub私有派生仓库(fork仓库) | 派生仓库改为私有

GitHub私有派生仓库 前言解决方案 前言 在GitHub上Fork的派生仓库默认为公有仓库&#xff0c;且无法修改为私有仓库。 若想创建私有的派生仓库&#xff0c;可通过GitHub的导入仓库功能实现&#xff0c;具体步骤请参见下文解决方案。 解决方案 打开GitHub页面&#xff0c;在个…

C#医学影像管理系统源码 PACS系统源码带三维重建,全院级数字医学影像系统

C#医学影像管理系统源码 医学影像存储与传输系统源码 PACS系统源码带三维重建&#xff0c;三甲以下医院都能满足。 PACS系统模块组成 &#xff1a; 工作站&#xff1a; 分诊工作站、超声工作站、放射工作站、内镜工作站、病理工作站。 基本信息维护&#xff1a; 输入模板、输入…

Token Labeling(NeurIPS 2021, ByteDance)论文解读

paper&#xff1a;All Tokens Matter: Token Labeling for Training Better Vision Transformers official implementation&#xff1a;https://github.com/zihangJiang/TokenLabeling 出发点 ViTs的局限性&#xff1a;尽管ViTs在捕捉长距离依赖方面表现出色&#xff0c; 但…

windows程序设计基础--学习记录

一、Windows程序的Hello world #include<windows.h>int WINAPI WinMain(HINSTANCE hInstance, //程序实例句柄HINSTANCE hPreHinstance, //上一个程序的实例句柄&#xff08;被遗弃&#xff0c;参数始终为NULL&#xff09;LPSTR lpCmdeLine, //命令行参数int nCmdeSh…

Jangow

关于靶场环境配置&#xff0c;确实这个靶场存在很大的问题&#xff0c;不仅仅是网络的配置问题&#xff0c;更重要的是明知道如何修改网络环境配置&#xff0c;但是键盘存在很大的问题。许多字符输入不一致。 Vulnhub靶场&#xff0c;Jangow靶机环境找不到ip解决方法。_jangow…

vue3运行若依前后台项目步骤(2024-07-19)

环境配置 1、jdk > 1.8 (我的1.8&#xff09; 2、mysql >5.7 (我的5.8&#xff09; 3、navicat (数据库管理器&#xff0c;连接mysql使用 ,我的是15) 4、mysql&#xff08;数据库&#xff0c;我的5.0&#xff09; 4、npm (我的是18.20.0) 5、idea编辑器,webtorm &#x…

API接口防刷实现(重复调用)

API接口 - 限制重复调用&#xff08;防刷&#xff09; 环境代码实现实现方式定义注解注解应用 环境 JDK 8 SpringBoot 代码实现 实现方式 定义注解&#xff0c;通过切面的方式&#xff0c;检测重复调用。 定义注解 import cn.nhd.fsl.entity.system.Prevent; import cn.nhd…

打造超酷的 React 迷你日历组件,只需几步!

你好&#xff0c;我是小白Coding日志&#xff0c;一个热爱技术的程序员。在这里&#xff0c;我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客&#xff0c;一起在技术的世界里探索前行吧&#xff01; 前言 现在市面…

基于Linux的USB-wifi配置流程

目录 内核配置 配置 CFG80211 配置usb 配置 Netlink 配置DHCP 工作流程 1.连接到无线网络 2.设置网络接口&#xff1a; 3.验证连接&#xff1a; 4. 接收数据&#xff1a; 最近daisy一直忙活这个linux的wifi驱动和bluze蓝牙驱动&#xff0c;相比较蓝牙&#xff0c;WiFi的驱动和内…

面对垃圾邮件的骚扰,U-Mail邮件安全网关来帮你

在近几年的时间里&#xff0c;企业面临垃圾邮件的威胁成指数级增长&#xff0c;据第三方统计&#xff0c;垃圾邮件占电子邮件总通讯量的60%以上。与此同时&#xff0c;垃圾邮件的类型以及发送手段也愈加复杂化、多样化&#xff0c;电子邮件也一跃成为病毒或恶意软件的主要传播渠…

金蝶官宣:法大大电子签章“星空旗舰版”来了!

融合了数字签名、实名认证、AI、区块链、大数据等能力的法大大电子签章“星空旗舰版”来了&#xff01;通过与金蝶云星空旗舰版的集成产品打造&#xff0c;法大大携手金蝶共同面向客户提供高质量的产品综合解决方案服务。以下内容转载自金蝶云生态&#xff1a; 产品与解决方案 …

kkfileView

目录 一、基本特性 二、安装与部署 三、项目接入使用 四、项目地址与文档 五、应用场景 六、前端使用 kkFileView是一个基于Spring Boot框架构建的文件文档在线预览解决方案&#xff0c;它提供了广泛的文件类型支持、易部署性、跨平台服务、二次开发友好等多种特性。以下是对…

Nginx(详解)

1. 什么是Nginx&#xff1f; Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器&#xff0c;在BSD-like 协议下发行。其特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上nginx的并发能力在同类型的网页服务器中表…

“点点通“餐饮点餐小程序-计算机毕业设计源码11264

"点点通"餐饮点餐小程序 XXX专业XX级XX班&#xff1a;XXX 指导教师&#xff1a;XXX 摘要 随着中国经济的飞速增长&#xff0c;消费者的智能化水平不断提高&#xff0c;许多智能手机和相关的软件正在得到更多的关注和支持。其中&#xff0c;微信的餐饮点餐小程序更…

C#知识|账号管理系统-账号信息管理界面[1]:账号分类选择框、Panel面板设置

哈喽,你好啊,我是雷工! 前一节实现了多条件查询后端代码的编写, 接下来继续学习账号信息管理界面的功能编写,本节主要记录账号分类选择框和Panel的设置, 以下为学习笔记。 01 功能说明 本节实现以下功能: ①:账号分类选择框只能选择,无法自由输入; ②:账号分类框默认…

11款常用的Python虚拟环境管理器,最受推崇的居然是最后一个

文章目录 1. venv2. virtualenv3. Pipenv4. pyenv5. Conda6. Poetry7. PDM8. Huak9. Pixi10. Rye11. uv《Python从入门到精通&#xff08;第3版&#xff09;&#xff08;软件开发视频大讲堂&#xff09;》编辑推荐内容简介作者简介目录 以下文章来源于Python学研大本营 &#x…

Elasticsearch:如何选择向量数据库?

作者&#xff1a;来自 Elastic Elastic Platform Team 向量数据库领域是一个快速发展的领域&#xff0c;它正在改变我们管理和搜索数据的方式。与传统数据库不同&#xff0c;向量数据库以向量的形式存储和管理数据。这种独特的方法可以实现更精确、更相关的搜索&#xff0c;并允…

ROS2从入门到精通2-3:详解机器人3D物理仿真Gazebo与案例分析

目录 0 专栏介绍1 什么是Gazebo?2 Gazebo架构2.1 Gazebo前后端2.2 Gazebo文件格式2.3 Gazebo环境变量3 Gazebo安装与基本界面4 搭建自己的地图4.1 编辑地图4.2 保存地图4.3 加载地图5 常见问题0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有…

Java面试八股之Redis怎么实现消息队列

Redis怎么实现消息队列 Redis实现消息队列主要依赖于其内置的数据结构&#xff0c;如List、Pub/Sub&#xff08;发布/订阅&#xff09;和Stream。下面将分别介绍这三种方式及其特点&#xff1a; 1. List实现消息队列 Redis的List是一个双向链表&#xff0c;支持快速的头部和…