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

MySQL 基础入门教程

参考视频地址:一小时MySQL教程 bilibili

SQL 基础

数据库分为关系型数据库和非关系型数据库

常见的关系型数据库:

  • MySQL、PostgreSQL、Oracle、SQL Server等。

非关系型数据库

  • MongoDB(文档型数据库)、Redis(键值型数据库)、Cassandra(列族数据库)、Neo4j(图形数据库)等。

在关系型数据库中,SQL(Structured Query Language) 语言 用于操作表中的数据,SQL 不区分大小写,但是一般来说,我们将关键字大写,表名、列名和其他名称小写。SQL 语言可以分为以下几类:

  1. DDL (Data Definition Language) 数据定义语言: CREATEDROPALTERTRUNCATE
  2. DML (Data Manipulation Language) 数据操作语言: INSERTUPDATEDELETECALL
  3. DQL (Data Query Language) 数据查询语言: SELECT
  4. DCL (Data Control Language) 数据控制语言: GRANTREVOKE
  • 数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件)
  • 表(table):某种特定类型数据的结构化清单
  • 模式(schema):关于数据库和表的布局及特性的信息
  • 列(column):表中的一个字段。所有表都是有一个或多个列组成的
  • 数据类型(datatype):每个表列都有相应的数据类型
  • 行(row):表中的一个记录
  • 主键(primary key):一列(或一组列),其值能够唯一区分表中的每个行

SQL 数据类型

一、整数类型

  • INT:用于存储整数数据(4个字节)。
  • SMALLINT:存储范围较小的整数(2个字节)。
  • TINYINT:存储范围更小的整数
  • BIGINT:用于存储非常大的整数(8个字节)。

二、浮点类型

  • FLOAT:用于存储单精度浮点数。
  • REAL:在某些数据库系统中,REAL是FLOAT的同义词,或用于表示另一种浮点类型。
  • DOUBLE:用于存储双精度浮点数,精度高于FLOAT。

三、字符数据类型

  • CHAR(n):固定长度字符数据,n表示字符数。
  • VARCHAR(n):可变长度字符数据,n表示最大字符数,节省存储空间。
  • TEXT:用于存储大量文本数据,长度通常超过VARCHAR的限制。

四、Unicode数据类型

  • NCHAR(n):固定长度Unicode字符数据,n表示字符数。
  • NVARCHAR(n):可变长度Unicode字符数据,n表示最大字符数。
  • NTEXT:用于存储大量Unicode文本数据。

五、日期和时间数据类型

  • DATE:仅存储日期。
  • TIME:仅存储时间。
  • DATETIME:存储日期和时间。
  • TIMESTAMP:存储时间戳,通常用于记录时间变更或事件。

六、数值类型

  • NUMERIC(p, s)DECIMAL(p, s):用于精确存储小数数据,p表示总位数,s表示小数点后位数。

七、货币数据类型

  • MONEY:用于存储货币数据,通常要求8个存储字节。
  • SMALLMONEY:用于存储较小范围的货币数据,通常要求4个存储字节。

八、二进制数据类型

  • BINARY(n):固定长度二进制数据,n表示字节数。
  • VARBINARY(n):可变长度二进制数据,n表示最大字节数。
  • BLOB(Binary Large Object):用于存储大量二进制数据,如图片、音频、视频文件等。

九、其他数据类型

  • BOOLBOOLEAN:用于存储逻辑真或假,值通常为TRUE或FALSE,1或0。
  • ENUM:枚举类型,用于存储一组预定义的值。
  • ARRAYSETJSON等集合类型:用于存储一组数据。

需要注意的是,不同的数据库管理系统(如MySQL、PostgreSQL、SQL Server等)可能支持的数据类型及其特性略有差异。因此,在选择数据类型时,应参考具体数据库系统的文档和指南。

创建数据库

显示当前所有数据库:SHOW DATABASES;

创建数据库:CREATE DATABASE [name];

删除数据库:DROP DATABASE [name];

使用数据库:USE DATABASE [name];

创建表

显示数据库内的表:SHOW TABLES;

显示列:SHOW COLUMNS FROM [tablename];

创建表:

CREATE TABLE player(id INT,name VARCHAR(10),level INT,exp INT,gold DECIMAL(10,2)
)

显示表的信息:DESC player 或者 DESCRIBE player

修改表结构,使用 ALTER 语句:

  • 修改现有字段: ALTER TABLE player MODIFY COLUMN name VARCHAR(8);ALTER TABLE player MODIFY COLUMN level INT DEFAULT 1;

  • 增加字段:ALTER TABLE player ADD COLUMN last_login DATETIME;

  • 删除字段:ALTER TABLE player DROP COLUMN last_login;

删除表:DROP TABLE [table_name];

重命名表:RENAME TABLE [last_name] TO [current_name];

增删改查

查询关键字:SELECT

查询语句一般格式:SELECT [column_name] FROM [table_name] LIMIT [start_line_num, total_line_nums];

通配符*可以用于检索所有列:SELECT * FROM [table_name]

ORDER BY 子句用于对检索出的数据进行排序,DESC 用于降序排序,ASC 用于升序排序

SELECT 子句顺序:

  1. SELECT
  2. FROM
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. ORDERED BY
  7. LIMIT

增加关键字:INSERT

修改关键字:UPDATE

删除关键字:DELETE

数据导入导出

数据导出:mysqldump

数据导入:

过滤数据

WHERE 关键字:SELECT [column_name1] FROM [table_name] WHERE [column_name2] IS NULL AND [column_name3] <= 3;

分组数据

GROUP BY 子句和 HAVING 子句;

子查询

表关联

索引

视图

相关文章:

MySQL 基础入门教程

参考视频地址&#xff1a;一小时MySQL教程 bilibili SQL 基础 数据库分为关系型数据库和非关系型数据库 常见的关系型数据库&#xff1a; MySQL、PostgreSQL、Oracle、SQL Server等。 非关系型数据库&#xff1a; MongoDB&#xff08;文档型数据库&#xff09;、Redis&am…...

俏生元将传统膳食智慧融入现代生活,自然成分绽放健康光彩

近年来&#xff0c;当代女性健康食品市场正经历快速发展和显著变化。随着女性健康意识的提升&#xff0c;市场对专门针对女性健康的产品需求快速上升。女性消费者对健康的关注不再局限于表面&#xff0c;而是越来越注重内在健康和生活质量的提升。此外&#xff0c;中式养生文化…...

腾讯云推流播放相关

直播的在线人数是否有上限&#xff1f; 腾讯云直播默认不限制观看直播的在线人数&#xff0c;只要网络等条件允许都可以观看直播。如果用户配置了带宽限制&#xff0c;当观看人数过多、超出了限制带宽时新的用户无法观看&#xff0c;此情况下在线人数是有限制的。 如何使用播…...

UE5运行时动态加载场景角色动画任意搭配-相机及运镜(二)

通过《MMD模型及动作一键完美导入UE5》系列文章,我们可以把外部场景、角色、动画资产导入UE5,接下来我们将实现运行时动态加载这些资产,并任意组合搭配。 1、运行时播放相机动画 1、创建1个BlueprintActor,通过这个蓝图动态创建1个LevelSequence,并Play 2、将这个Bluep…...

@JsonAlias和@JSONField序列化和反序列化

com.fasterxml.jackson.annotation.JsonAlias("expressCode") com.alibaba.fastjson.annotation.JSONField(name "expressCode") 这两个注解分别属于不同的JSON序列化框架&#xff1a;Jackson 和 Fastjson&#xff0c;它们的用途是处理JSON字段的名称映射…...

k8s1.27部署ingress 1.11.2

k8s1.27部署ingress 1.11.2 要求&#xff1a; 1、使用主机网络。 2、多节点部署&#xff0c;以来标签&#xff1a;isingressistrue ingress1.11.2支持版本 官方参考链接&#xff1a; https://github.com/kubernetes/ingress-nginx/ 官网yaml https://raw.githubuserconten…...

【运维】自动化运维详解

目录 引言一、什么是自动化运维&#xff1f;二、自动化运维的优势三、自动化运维的关键组成部分详解3.1 监控与告警3.2 部署与配置管理3.3 备份与恢复3.4 安全管理 总结 引言 在当今信息技术飞速发展的时代&#xff0c;企业对IT基础设施的依赖日益增强&#xff0c;传统的人工运…...

线控底盘技术介绍

随着汽车工业的不断发展&#xff0c;传统的机械控制系统逐渐向电子控制系统转变。线控底盘&#xff08;Drive-by-Wire Chassis&#xff09;作为这一转变的重要组成部分&#xff0c;正在改变汽车的操控方式和驾驶体验。本文将全面介绍线控底盘的概念、组成、工作原理、优缺点、应…...

DOM对象

DOM概述 官方定义&#xff1a; DOM是W3C制定的一个规范(标准)&#xff0c;(Document Object Model&#xff0c;文档对象模型)&#xff0c;是提供了访问和操作网页中各元素的方法&#xff0c;让程序可以动态的修改或改变网页元素的内容、样式、结构。 DOM是W3C制定的一个规范…...

[SQL] 数据库图形化安装和使用

一 安装 1.1 图形化安装 下载DataGrip安装包 点击此处一直下一步即可。点击免费使用。 进去界面后,选择新建一个项目 点击加号&#xff0c;创建一个Mysql连接。输入Mysql的连接信息。点击DownLoad下载Mysql的驱动 接下来点击创建的mysq项目中后面的三个点&#xff0c;选择…...

springboot 前后端处理日志

为了实现一个高效且合理的日志记录方案&#xff0c;我们需要在系统架构层面进行细致规划。在某些情况下&#xff0c;一个前端页面可能会调用多个辅助接口来完成整个业务流程&#xff0c;而并非所有这些接口的交互都需要被记录到日志中。为了避免不必要的日志开销&#xff0c;并…...

C++11 简单手撕多线程编程

如何使用线程库 std::thread 创建线程 thread1.join(); 阻塞主线程 thread1.detach(); 线程分离 #include<iostream> #include<thread>void helloworld(std::string msg) {for (int i 0; i < 10000; i){std::cout << i << std::endl;}//std::cou…...

刷c语言练习题7(牛客网)

1、函数fun的声明为int fun(int *p[4]),以下哪个变量可以作为fun的合法参数&#xff08;&#xff09; A、int a[4][4]; B、int **a; C、int **a[4] D、int (*a)[4]; 答案&#xff1a;B 解析&#xff1a;如果是fun的合法参数&#xff0c;那么其类型应该与定义函数fun中的参数类型…...

Web Worker和WebSocket

Web Worker和WebSocket协议都是Web开发中用于处理多线程和实时通信的技术&#xff0c;但它们的应用场景和工作原理有所不同。 Web Worker Web Worker是HTML5引入的一项技术&#xff0c;它允许JavaScript代码在后台线程中运行&#xff0c;从而实现真正的多线程处理。Web Worke…...

【LeetCode】动态规划—712. 两个字符串的最小ASCII删除和(附完整Python/C++代码)

动态规划—712. 两个字符串的最小ASCII删除和 前言题目描述基本思路1. 问题定义2. 理解问题和递推关系3. 解决方法3.1 动态规划方法3.2 空间优化的动态规划 4. 进一步优化5. 小总结 代码实现PythonPython3代码实现Python 代码解释 CC代码实现C 代码解释 总结: 前言 在字符串处…...

wordpress Contact Form 7插件提交留言时发生错误可能的原因

WordPress Contact Form 7 插件提交留言时发生错误可能有以下几种原因&#xff0c;并提供相应的解决方案&#xff1a; 1. 表单字段验证失败 原因&#xff1a; 用户输入的数据未通过表单字段的验证规则。 解决方案&#xff1a; – 检查表单字段的验证规则是否设置正确。 –…...

uibot发送邮件:自动化邮件发送教程详解!

uibot发送邮件的操作指南&#xff1f;uibot发送邮件的两种方式&#xff1f; 在现代办公环境中&#xff0c;自动化流程的引入极大地提高了工作效率。uibot发送邮件功能成为了许多企业和个人实现邮件自动化发送的首选工具。AokSend将详细介绍如何使用uibot发送邮件。 uibot发送…...

【PostgreSQL】PG数据库表“膨胀”粗浅学习

文章目录 1 为什么需要关注表膨胀&#xff1f;2 如何确定是否发生了表膨胀&#xff1f;2.1 通过查询表的死亡元组占比情况来判断膨胀率2.1.1 指定数据库和表名2.1.2 查询数据库里面所有表的膨胀情况 3 膨胀的原理3.1 什么是膨胀&#xff1f;膨胀率&#xff1f;3.2 哪些数据库元…...

力扣(leetcode)每日一题 871 最低加油次数 | 贪心

871. 最低加油次数 题干 汽车从起点出发驶向目的地&#xff0c;该目的地位于出发位置东面 target 英里处。 沿途有加油站&#xff0c;用数组 stations 表示。其中 stations[i] [positioni, fueli] 表示第 i 个加油站位于出发位置东面 positioni 英里处&#xff0c;并且有 f…...

ppt压缩文件怎么压缩?压缩PPT文件的多种压缩方法

ppt压缩文件怎么压缩&#xff1f;当文件体积过大时&#xff0c;分享和传输就会变得困难。许多电子邮件服务对附件的大小有限制&#xff0c;而在网络环境不佳时&#xff0c;上传和下载大文件可能耗时较长。此外&#xff0c;在不同设备上播放时&#xff0c;较大的PPT文件还可能导…...

2024.10月11日--- SpringMVC拦截器

拦截器 1 回顾过滤器&#xff1a; Servlet规范中的三大接口&#xff1a;Servlet接口&#xff0c;Filter接口、Listener接口。 过滤器接口&#xff0c;是Servlet2.3版本以来&#xff0c;定义的一种小型的&#xff0c;可插拔的Web组件&#xff0c;可以用来拦截和处理Servlet容…...

uniapp 锁屏显示插件 Ba-LockShow(可让vue直接具备锁屏显示能力)

简介 Ba-LockShow 是一款可以直接使uniapp的vue界面在锁屏页展示的插件。 支持使vue直接具备锁屏显示能力支持设置锁屏显示和不显示支持唤醒屏幕 截图展示&#xff08;仅参考&#xff09; 支持定制、本地包、源码等&#xff0c;有建议和需要&#xff0c;请点击文章结尾“Unia…...

CSS计数器

CSS 中的计数器类似于变量&#xff0c;可以实现简单的计数功能&#xff0c;并将结果显示在页面上&#xff0c;在早期的网站上应用比较广泛。要实现计数器需要用到以下几个属性&#xff1a; counter-reset&#xff1a;创建或者重置计数器&#xff1b;counter-increment&#xf…...

嵌入式Linux:信号集

目录 1、信号集初始化 2、向信号集中添加或删除信号 3、测试信号是否在信号集中 在 Linux 系统中&#xff0c;处理多个信号时常用到一种数据结构&#xff1a;信号集&#xff08;sigset_t&#xff09;。信号集允许我们将多个信号组织在一起&#xff0c;以便在系统调用中传递和…...

Linux 外设驱动 应用 1 IO口输出

从这里开始外设驱动介绍&#xff0c;这里使用的IMX8的芯片作为驱动介绍 开发流程&#xff1a; 修改设备树&#xff0c;配置 GPIO1_IO07 为 GPIO 输出。使用 sysfs 接口或编写驱动程序控制 GPIO 引脚。编译并测试。 这里假设设备树&#xff0c;已经配置好了。不在论述这个问题…...

基于SpringBoot+Vue+MySQL的留守儿童爱心网站

系统展示 用户前台界面 管理员后台界面 系统背景 随着现代社会的发展&#xff0c;留守儿童问题日益受到关注。传统的纸质管理方式已经无法满足现代人们对留守儿童爱心信息的需求。为了提高留守儿童爱心信息的管理效率&#xff0c;增加用户信息的安全性&#xff0c;并方便及时反…...

调用第三方接口

目录 一、分析给出的接口文档 二、请求体格式之间的区别 三、示例代码 一、分析给出的接口文档 一般的接口文档包括以下几大部分&#xff1a; 1、请求URL&#xff1a;http://{ip}:{port}/api/ec/dev/message/sendCustomMessageSingle 2、请求方式&#xff1a;POST、GET等 3、…...

JAVA 多线程入门例子:CountDownLatch

首先确定线程数量。如果数据集合的大小小于50&#xff0c;就只使用一个线程&#xff1b;否则使用5个线程。计算每个线程平均处理的数据数量sizePerThread以及余数remainder。在划分数据子集合时&#xff0c;对于每个线程的处理范围进行计算。如果有余数&#xff0c;就将余数依次…...

k8s jenkins 动态创建slave

k8s jenkins 动态创建slave 简述使用jenkins动态slave的优势&#xff1a;配置jenkins动态slave配置 Pod Template配置容器模板挂载卷 测试 简述 持续构建与发布是我们日常工作中必不可少的一个步骤&#xff0c;目前大多公司都采用 Jenkins 集群来搭建符合需求的 CI/CD 流程&am…...

MVS海康工业相机达不到标称最大帧率

文章目录 一、相机参数设置1、取消相机帧率限制2、修改相机图像格式3、调整相机曝光时间4、检查相机数据包大小&#xff08;网口相机特有参数&#xff09;5、 恢复相机默认参数6、 相机 ADC 输出位深调整 二、系统环境设置1、 网口相机设置2、 USB 相机设置 一、相机参数设置 …...