MySQL—— 基础语法大全

MySQL—— 基础

    • 一、MySQL概述
      • 1.1 、数据库相关概念
      • 1.2 、MySQL 客户端连接
      • 1.3 、数据模型
    • 二、SQL
      • 2.1、SQL通用语法
      • 2.2、SQL分类
      • 2.3、DDL
      • 2.4、DML
      • 2.5、DQL
      • 2.6、DCL
    • 三、函数
    • 四、约束
    • 五、多表查询
    • 六、事务

一、MySQL概述

1.1 、数据库相关概念

数据库、数据库管理系统、SQL:
在这里插入图片描述
目前主流的关系型数据库管理系统的市场占有率排名如下:

在这里插入图片描述

  • Oracle:大型的收费数据库,Oracle公司产品,价格昂贵。
  • MySQL:开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司。
    目前Oracle推出了收费版本的 MySQL,也提供了免费的社区版本。
  • SQL Server:Microsoft 公司推出的收费的中型数据库,C#、.net等语言常用。
  • PostgreSQL:开源免费的中小型数据库。
  • DB2:IBM公司的大型收费数据库产品。
  • SQLLite:嵌入式的微型数据库。Android内置的数据库采用的就是该数据库。
  • MariaDB:开源免费的中小型数据库。是MySQL数据库的另外一个分支、另外一个衍生产品,与MySQL数据库有很好的兼容性。

而不论我们使用的是上面的哪一个关系型数据库,最终在操作时,都是使用 SQL 语言来进行统一操作,因为 SQL 语言,是操作关系型数据库的 统一标准。所以即使我们现在学习的是MySQL,假如我们以后到了公司,使用的是别的关系型数据库,如:OracleDB2SQLServer,也完全不用担心,因为操作的方式都是一致的。

MySQL下载,请参考其他教程!

⭐️ MySQL启动和停止

net start mysql80
net stop mysql80

在这里插入图片描述

1.2 、MySQL 客户端连接

  • 方式一:使用 MySQL 提供的客户端命令行工具

在这里插入图片描述

  • 方式二:使用系统自带的命令行工具执行指令
mysql [-h 127.0.0.1] [-P 3306] -u root -p

参数:

  • -h : MySQL服务所在的主机 IP
  • -P : MySQL服务端口号,默认3306
  • -u : MySQL数据库用户名
  • -p : MySQL数据厍用户名对应的密码

[] 内为可选参数,如果需要连接 远程的 MySQL,需要加上这两个参数来指定远程主机IP、端口,如果连接本地的MySQL,则无需指定这两个参数。

在这里插入图片描述

注意: 使用这种方式进行连接时,需要安装完毕后配置PATH环境变量

1.3 、数据模型

⭐️ 1)、关系型数据库(RDBMS

  • 概念:建立在关系模型基础上,由多张相互连接的 二维表 组成的数据库。
  • 而所谓 二维表,指的是由行和列组成的表,如下图(就类似于Excel表格数据,有表头、有列、有行,还可以通过一列关联另外一个表格中的某一列数据)。
  • 我们之前提到的 MySQLOracleDB2SQLServer 这些都是属于关系型数据库,里面都是基于二维表存储数据的。
  • 简单说,基于二维表存储数据的数据库就成为 关系型数据库,不是基于二维表存储数据的数据库,就是 非关系型数据库

在这里插入图片描述
特点:

  • A. 使用表存储数据,格式统一,便于维护。
  • B. 使用 SQL语言操作,标准统一,使用方便。

⭐️ 2)、数据模型

  • MySQL是关系型数据库,是基于 二维表 进行数据存储的,具体的结构图下:

在这里插入图片描述

  • 我们可以通过MySQL客户端连接 数据库管理系统 DBMS,然后通过DBMS操作数据库。
  • 可以使用SQL语句,通过 数据库管理系统 操作数据库,以及操作数据库中的表结构及数据。
  • 一个数据库服务器中可以创建多个数据库,一个数据库中也可以包含多张表,而一张表中又可以包
    含多行记录。

二、SQL

全称 Structured Query Language结构化查询语言。操作关系型数据库的编程语言,定义了
一套操作关系型数据库统一标准 。

2.1、SQL通用语法

在学习具体的SQL语句之前,先来了解一下SQL语言的同于语法。

  • SQL语句可以 单行多行 书写,以 分号 结尾。
  • SQL语句可以使用 空格/缩进 来增强语句的可读性。
  • MySQL数据库的SQL语句 不区分大小写关键字建议使用大写
  • 注释:
    • 单行注释-- 注释内容# 注释内容
    • 多行注释/* 注释内容 */

2.2、SQL分类

SQL语句,根据其功能,主要分为四类:DDLDMLDQLDCL

在这里插入图片描述

2.3、DDL

⭐️ DDL — 数据库操作

1)、查询所有数据库

show databases ;

在这里插入图片描述
2)、查询当前数据库

select database() ;

3)、创建数据库

create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序规则 ] ;
  • [] 内的是可选项。
  • 字符集例如:utf8mb4;不建议使用 utf8, 其长度为3个字节,而 utf8mb4 长度是4个字节。
  • 在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。(可以通过 if not exists 参数来解决这个问题,数据库不存在, 则创建该数据库,如果存在,则不创建。)

举个栗子:

create database if not exists rmzh default charset utf8mb4 ;

在这里插入图片描述
4)、删除数据库

drop database [ if exists ] 数据库名 ;

在这里插入图片描述

  • 如果删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除。

5)、切换数据库

use 数据库名 ;
  • 我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。
    比如,切换到 rmzh 数据,执行如下SQL:
use rmzh ;

数据库操作 快速食用:

# 1)、查询所有数据库
show databases ;
# 2)、查询当前数据库
select database() ;
# 3)、创建数据库
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序规则 ] ;
# 4)、删除数据库
drop database [ if exists ] 数据库名 ;
# 5)、切换数据库
use 数据库名 ;

⭐️ DDL — 表操作

1)、表操作-查询创建

  1. 查询当前数据库所有表
show tables;
  1. 查看指定表结构
desc 表名 ;

通过这条指令,我们可以查看到指定表的字段,字段的类型、是否可以为 NULL,是否存在默认值等信息。

  1. 查询指定表的建表语句
show create table 表名 ;

通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询到,因为这部分是数据库的默认值,如:存储引擎、字符集等。

  1. 创建表结构
CREATE TABLE 表名(字段1 字段1类型 [COMMENT 字段1注释 ],字段2 字段2类型 [COMMENT 字段2注释 ],字段3 字段3类型 [COMMENT 字段3注释 ],......字段n 字段n类型 [COMMENT 字段n注释 ]
) [ COMMENT 表注释 ] ;

注意: [...]内为可选参数,最后一个字段后面没有逗号。

2)、表操作-数据类型

  • 在上述的建表语句中,我们在指定字段的数据类型时,用到了 intvarchar,那么在MySQL中除了以上的数据类型,还有哪些常见的数据类型呢? 接下来,我们就来详细介绍一下MySQL的数据类型。
  • MySQL中的数据类型有很多,主要分为三类:数值类型字符串类型日期时间类型
  1. 数值类型
    在这里插入图片描述
    在这里插入图片描述

  2. 字符串类型
    在这里插入图片描述

charvarchar 都可以描述字符串:

  • char 是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。
  • varchar变长字符串,指定的长度为最大占用长度 。

相对来说,char的性能会更高些。

  1. 日期时间类型

    3)、表操作-修改
  2. 添加字段
ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 1 注释 ] [ 约束 ];
  1. 修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);
  1. 修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 1 注释 ]
  1. 删除字段
ALTER TABLE 表名 DROP 字段名;
  1. 修改表名
ALTER TABLE 表名 RENAME TO 新表名;

4)、表操作-删除

  1. 删除表
DROP TABLE [ IF EXISTS ] 表名;

可选项 IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不
加该参数项,删除一张不存在的表,执行将会报错)。

  1. 删除指定表, 并重新创建表
TRUNCATE TABLE 表名;

注意: 在删除表的时候,表中的全部数据也都会被删除。

2.4、DML

2.5、DQL

2.6、DCL

三、函数

四、约束

五、多表查询

六、事务

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

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

相关文章

ClickHouse(十四):Clickhouse MergeTree系列表引擎 - SummingMergeTree

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…

做好“关键基础设施提供商”角色,亚马逊云科技加快生成式AI落地

一场关于生产力的革命已在酝酿之中。全球管理咨询公司麦肯锡在最近的报告《生成式人工智能的经济潜力:下一波生产力浪潮》中指出,生成式AI每年可能为全球经济增加2.6万亿到4.4万亿美元的价值。在几天前的亚马逊云科技纽约峰会中,「生成式AI」…

「从零入门推荐系统」22:chatGPT、大模型在推荐系统中的应用

作者 | gongyouliu 编辑 | gongyouliu 提示:全文2.5万字,预计阅读时长2小时,可以先收藏再慢慢阅读。 我们在上一章介绍了chatGPT、大模型的基本概念、核心技术原理等基础知识,有了这些背景知识的铺垫,下面我们来介绍ch…

[C++项目] Boost文档 站内搜索引擎(2): 文档文本解析模块parser的实现、如何对文档文件去标签、如何获取文档标题...

项目开始的准备工作 在上一篇文章中, 已经从Boost官网获取了Boost库的源码. 相关文章: 🫦[C项目] Boost文档 站内搜索引擎(1): 项目背景介绍、相关技术栈、相关概念介绍… 接下来就要编写代码了. 不过还需要做一些准备工作. 创建项目目录 所有的项目文件肯定要在一…

Linux系统---进程控制

文章目录 进程创建进程终止进程等待进程替换实现简单的mini-shell 一、进程创建 1.fork()函数 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 #include <unistd.h> pid_t fork(void…

数据结构日记之《队列的定义》

队列的定义 一、队列的定义和特点二、队列的抽象数据类型定义三、例子 一、队列的定义和特点 队列 (queue) 是一种 先进先出(First In First Out, FIFO) 的线性表。它只允许在表的一端进行插入&#xff0c;而在另一端删除元素。这和日常生活中的排队是一致的&#xff0c;最早进…

Storm学习之使用官方Docker镜像快速搭建Storm运行环境

文章目录 0.前言搭建完的效果 1.教程1.1.docker 安装 zookeeper1.2. 安装 storm nimbus1.3.docker 安装 supervisor1.4.docker 安装 storm-ui1.5.查看已经启动的容器1.6.提交topology到 storm集群 2.总结3.参考文档 0.前言 Apache Storm 官方也出了Docker 镜像 https://hub.do…

Bootload U-Boot分析

Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序可以初始化硬件设备、建立内存空间的映射表&#xff0c;从而建立适当的系统软硬件环境&#xff0c;为最终调用操作系统内核做好准备。 对于嵌入式系统&#xff0c;Bootloader是基于特定硬件平台来实现的。因此…

SSE技术和WebSocket技术实现即时通讯

文章目录 一、SSE1.1 什么是SSE1.2 工作原理1.3 特点和适用场景1.4 API用法1.5 代码实现 二、WebSocket2.1 什么是WebSocket2.2 工作原理2.3 特点和适用场景2.4 API用法2.5 代码实现2.6 心跳检测 三、SSE与WebSocket的比较 当涉及到实现实时通信的Web应用程序时&#xff0c;两种…

记录--说一说css的font-size: 0

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 平常我们说的font-size&#xff1a;0&#xff1b;就是设置字体大小为0对吧&#xff0c;但是它的用处不仅仅如此哦&#xff0c;它还可以消除子行内元素间额外多余的空白&#xff01; 问题描述&#xff…

芒格之道——查理·芒格股东会讲话1987-2022

你越是认真生活&#xff0c;你的生活就会越美好&#xff01; 这里将读书过程划线的内容摘抄在这里&#xff0c;方便自己回顾。 书分为两部分&#xff0c;我先读了后半部分&#xff0c;而且是从后往前读&#xff0c;到了前半部分&#xff0c;我是从前往后读。书还挺贵&#xff…

K8S系列文章 之 容器存储基础 Volume

Volume Volume是容器数据卷。我们经常创建删除一些容器&#xff0c;但有时候需要保留容器中的一些数据&#xff0c;这时候就用到了Volume。它也是容器之间数据共享的技术&#xff0c;可以将容器中产生的数据同步到本地。实际就是把容器中的目录挂载到运行着容器的服务器或个人…

在 Ubuntu 上安装 Docker 桌面

Ubuntu 22.04 (LTS) 安装 Docker 桌面 要成功安装 Docker Desktop&#xff0c;您必须&#xff1a; 满足系统要求拥有 64 位版本的 Ubuntu Jammy Jellyfish 22.04 (LTS) 或 Ubuntu Impish Indri 21.10。对于非 Gnome 桌面环境&#xff0c;必须安装 gnome-terminal&#xff1a;…

Docker 安装 Tomcat

目录 一、查看 tomcat 版本 二、拉取 Tomcat Docker 镜像 三、创建 Tomcat 容器 四、访问 Tomcat 五、停止和启动容器 一、查看 tomcat 版本 访问 tomcat 镜像库地址&#xff1a;https://hub.docker.com/_/tomcat&#xff0c;可以通过 Tags 查看其他版本的 tomcat; 二、拉…

FreeRTOS的线程间通信

一、分类 FreeRTOS的线程间通信分为这几大类 由于我还在学习中&#xff0c;目前显从信号开始记录学习 二、逐块讲解 1、信号&#xff08;osSignalWait osSignalSet&#xff09; FreeRTOS从V8.2.0版本开始提供任务通知这个功能&#xff0c;每个任务多有一个32位的通知值&am…

windows环境下如何更改pip安装的默认位置

1.查看配置信息 python -m site2.查看配置文件位置 python -m site -help3.修改配置文件 USER_SITE "D:\\soft\\Anaconda\\Lib\\site-packages" USER_BASE "D:\\soft\\Anaconda\\Scripts"如果遇到文件无法保存情况&#xff0c;请给用户增加权限。 4.…

第十五章 定义 HL7 的 DTL 数据转换

文章目录 第十五章 定义 HL7 的 DTL 数据转换 第十五章 定义 HL7 的 DTL 数据转换 每个接口可能需要一定数量的数据转换。创建转换时&#xff0c;不要使用保留的包名称。 重要提示&#xff1a;请勿在数据转换中手动更改 HL7 转义序列&#xff1b;自动处理这些。 可以使用“数…

DNS部署与安全详解(上)

文章目录 一、DNS二、域名组成1. 域名组成概述2. 域名组成 三、监听端口四、DNS解析种类1. 按照查询方式分类&#xff1a;2. 按照查询内容分类&#xff1a; 五、DNS服务器搭建过程1. 先确保服务器的IP地址是固定的2. 安装DNS软件 一、DNS DNS全称Domain Name Service&#xff0…

pycharm打开terminal报错

Pycharm打开终端报错如何解决&#xff1f;估计是终端启动conda不顺利&#xff0c;需要重新设置路径。参考以下文章的做法即可。 Windows下Pycharm中Terminal无法进入conda环境和Python Console 不能使用 给pycharm中Terminal 添加新的shell&#xff0c;才可以使用conda环境 W…