【MySQL】初识MySQL

news2024/12/30 3:27:28

数据库的重要性相信不需要我在这里着重强调了,这个专栏重点介绍的就是MySQL数据库,我所使用的版本为5.6,大致思路是先介绍MySQL的操作,然后再深入了解其底层原理,那就开始吧

目录

  • 1.数据库相关概念
  • 2.MySQL数据模型
  • 3.SQL语法
    • 3.1 通用语法
    • 3.2 SQL语法分类
    • 3.3 DDL语句
      • 3.3.1数据库操作
      • 3.3.2数据类型
      • 3.3.3数据表操作
    • 3.4 DML语句
    • 3.5 DQL语句
      • 3.5.1 基础查询
      • 3.5.2 条件查询
      • 3.5.3 分组查询
      • 3.5.4 排序查询
      • 3.5.5 分页查询
    • 3.6 DCL语句
      • 3.6.1 管理用户
      • 3.6.2 权限控制

1.数据库相关概念

  • 数据库(DB):从名称上来看我们大致可以知晓其意思,即存储数据的仓库
  • 数据库管理系统(DBMS):操纵和管理数据库的软件
  • 关系型数据库:使用表结构来存储数据,特点是使用SQL语言操作,有统一的标准,格式统一,便于维护

MySQL就是数据库管理系统,操作MySQL是使用SQL语言进行操作,所以学习MySQL的操作实际上就是在学习SQL语言

2.MySQL数据模型

在这里插入图片描述

3.SQL语法

3.1 通用语法

1.SQL语句可以单行或多行书写,以分号作为结尾
2.MySQL的SQL语句不区分大小写,但还是建议在书写的时候统一大小写
3.单行注释使用--或#注释(#是MySQL特有),多行注释使用/**/

3.2 SQL语法分类

分类说明
DDL定义数据库对象
DML对数据表的数据进行增删改操作
DQL查询数据
DCL创建数据库用户以及控制访问权限

3.3 DDL语句

3.3.1数据库操作

查询:
  show databases;            查询所有的数据库
  select database();         查询当前所处的数据库
创建:
  create database 数据库名;   如果数据库名已存在的话会报错
使用:
  use 数据库名;
删除:
  drop database 数据库名;     这个操作很危险,不要轻易使用

3.3.2数据类型

在介绍数据表操作之前需要先对MySQL里面常用的数据类型进行介绍
主要可以分为3类:数值类型,字符串类型和日期类型

  • 数值类型
tinyint :      大小为1字节
smallint:      大小2字节
int:           大小4字节
bigint:        大小8字节
float:         单精度浮点数,大小4字节
double:        双精度浮点数,大小8字节
  • 字符串类型
varchar(size):      可变长度字符串
text:               长文本数据
  • 日期类型
date:                   日期,格式是yyyy-mm-dd
time:                   时间,显示到秒
datetime:               date和time的混合
timestamp:              和datetime类似,但是是以时间戳的形式显示

3.3.3数据表操作

对数据表进行操作的前提是已经创建好数据库并使用了某一个数据库

查询:
  show tables;                        查询当前数据库的所有数据表
  desc 表名;                           查询数据表结构
  show create table 表名;              查询建表的SQL语句
创建:
  create 表名(字段1 字段类型,
              字段2 字段类型,  
              ......
              );                      最后一个字段后面没有逗号
修改表结构:
  alter table 表名 add 字段名 字段类型;                   数据表中添加字段
  alter table 表名 modify 字段名 新字段类型;              修改字段数据类型
  alter table 表名 change 旧字段名 新字段名 新字段类型;    修改字段名和数据类型
  alter table 表名 drop 字段名;                          删除字段
  alter table 表名 rename to 新表名;                     修改数据表名
删除:
  drop table 表名;      这个操作同样危险

3.4 DML语句

DML语句是对数据表里面的数据进行增删改的操作,三个操作对应着三个关键字:insert,delete和update

添加数据:
  insert into 表名(字段1,字段2......) values(值1,值2......);    

这是给指定的字段添加数据,字段和值要对应,不加字段的话就是给全部字段添加数据,values后面可以有多个括号,一个括号就是一个一行数据,括号之间使用逗号隔开,添加的数据如果是字符串或者是日期的话需要包含在引号中

修改数据:
  update 表名 set 字段1=值1,字段2=值2......where 条件;

如果没有条件的话就是修改整个数据表的数据

删除数据:
  delete from 表名 where 条件;

不加上条件同样代表的是删除数据表所有数据

3.5 DQL语句

查询所使用的关键字为select;当然,这个关键字会和其它的关键字配合进行使用

3.5.1 基础查询

select 字段1,字段2......from 表名;

这是最基础的查询语句,如果你要返回所有的字段,使用通配符"*"即可
此外,我们还可以给返回的字段设置别名来增加可读性

select 字段1 as 别名1,字段2 as 别名2......from 表名;

在select后面加上关键字distinct就可以做到对查询结果去重

select distinct 字段1,字段2......from 表名;

3.5.2 条件查询

这里需要select和where进行配合操作

select 字段1,字段2......from 表名 where 条件;

where后面的条件可以有多个
常用的条件运算符如下:
在这里插入图片描述
此外SQL语句中也有逻辑运算符
在这里插入图片描述

3.5.3 分组查询

在介绍分组查询之前需要介绍下聚合函数,因为二者经常配合使用
聚合函数是指将一列数据作为一个整体进行纵向计算(即函数是作用于某一列的)
常见的聚合函数如下:

函数说明
count统计数量
max/min求最大/最小值
sum求和
avg求平均值

注:null不参与聚合函数运算
在书写SQL语句的时候聚合函数作用于字段

select 聚合函数(字段1,字段2......) from 表名;

分组查询所使用的关键字为group by,有些情况下可能会使用到where和having

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后的过滤条件];

[]中表示可能会用到的语句,并不是说所有的分组查询都会使用到
这里要注意的是where和having的区别

  1. where是在分组之前进行筛选,条件不满足的话就不会参与分组;having是在分组之后对结果进行筛选
  2. where不能对聚合函数进行判断,having可以

3.5.4 排序查询

排序查询使用的关键字为order by

select 字段列表 from 表名 order by 字段1 排序方式,字段2 排序方式......;

排序方式里面asc代表升序,desc代表降序,一般默认为升序

3.5.5 分页查询

使用关键字limit

select 字段列表 from 表名 limit 起始索引,查询记录数;

起始索引从0开始
起始索引公式:(页码-1)*每页展示的记录数

3.6 DCL语句

DCL语句所控制的是管理数据库用户以及用户的访问权限

3.6.1 管理用户

查询用户:
  1. use mysql;
  2. select * from user;
创建用户:
  create user 用户名@主机名 identified by 用户密码;
修改用户密码:
  alter user 用户名@主机名 identified with mysql_native_password by 用户密码;
删除用户:
  drop user 用户名@主机名;

mysql是MySQL自己本身就有的数据库,里面的user数据表就是存储用户信息的位置,主机名是规定用户能够在哪些主机上访问数据库,默认为localhost(即当前主机)

3.6.2 权限控制

MySQL中有很多权限,但常用的也就只有少数的几种,如下:

权限说明
all所有权限
select查询数据
insert插入数据
update修改数据
delete删除数据
alter修改数据表
drop删除数据库/数据表/视图
create创建数据库/数据表
查询用户权限:
  show grants for 用户名@主机名;
授予用户权限:
  grant 权限列表 on 数据库名.表名 to 用户名@主机名;
撤销权限:
  revoke 权限列表 on 数据库名.表名 from 用户名@主机名

数据库名和表名之间有一个英文状态下的句号,别忘了
授予多个权限,权限之间可以使用逗号隔开
本篇文章就到这里,完

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

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

相关文章

python读取与写入tif图片的完整信息

一、导入gdal包 在anconda环境下: conda install gdal 在其他环境下,去这个网站下载gdal包,直接使用pip install gdal是不行的 注意: 对于liunx用户,建议使用conda安装,对于win用户两者都可以。 使用方…

ChatGPT提示词工程(一):Guidelines准则

目录 一、说明二、安装环境三、Guidelines准则一:写出明确而具体的说明方法1:使用分隔符清楚地表示输入的不同部分方法2:用结构化输出:如直接要求它以HTML或者JSON格式输出方法3:请模型检查是否满足条件方法4&#xff…

深入理解计算机系统1--理解编译器编译的过程

前言 大家在学习C语言的时候,相信对编译器这个词并不会感到陌生。我们也会知道编译器编译的过程是:预处理-》编译-》汇编-》链接。这篇文章主要介绍这四个过程中,编译器究竟做了那些工作,它是如何让一份高级程序转换成机器语言的…

[EDA]AMP®-Parkinson‘s Disease Progression Prediction

​ 翻译自:AMP - EDA Models 1.数据集观察 加载四个excel文件 import pandas as pd train_clinical_data pd.read_csv(input/train_clinical_data.csv) train_peptides pd.read_csv(input/train_peptides.csv) train_protiens pd.read_csv(input/train_prote…

蓝桥杯算法竞赛系列第四章——二分算法

欢迎回到:遇见蓝桥遇见你,不负代码不负卿! 目录 引入:二分查找 题目描述 题解 代码执行 复杂度分析 例题一:搜索插入位置 题目描述 题解 代码执行 复杂度分析 例题二:寻找峰值 题目描述 题解 …

【五一创作】python 基础系列篇:八、熟练掌握推导式

python 基础系列篇:八、熟练掌握推导式 推导式特殊的元组推导式 推导式机制玩转推导式小结 推导式 在python提供的各种语法糖中,老顾最青睐的就是这个推导式,他大大减少了代码的书写量。 比如一个正常的,生成长度为5的列表&…

红黑树的概念与实现

目录 ​一、红黑树的概念 1.什么是红黑树 2.红黑树满足的性质 3.红黑树存在的意义 二、红黑树的实现 1.类的构建 2.插入函数 (1)插入一个节点 (2)调整节点 (3)旋转 三、红黑树的检验 一、红黑树…

okio篇2-RealBufferedSource

上一篇讲过,okio只有两个概念,source和sink。source对应InputStream,即负责将数据读出,是一个输出方(所以只有source.read方法)。sink对应outputStream,负责获取数据写入,是一个写入…

RT-Thread Nano在keil Simulator中的仿真

目的:使用STM32CubeMX生成包含RT-Thread Nano内核和FinSH控制台的keil工程,在没有硬件开发板的情况下,通过keil Simulator来运行系统,并通过SHELL来与系统进行交互。 一、使用STM32CubeMX生成RT-Thread Nano工程 官方文档已经说…

C++标准库 -- 动态内存 (Primer C++ 第五版 · 阅读笔记)

C标准库 --动态内存 (Primer C 第五版 阅读笔记) 第12章 动态内存------(持续更新)12.1、动态内存与智能指针12.1.1、shared_ptr类12.1.2、直接管理内存12.1.3、shared_ptr和new结合使用12.1.4、智能指针和异常12.1.5、unique_ptr12.1.6、weak_ptr 12.2、动态数组1…

网络通信之网络层与数据链路层

文章目录 讲在前面网络层网络层概述IP协议格式网段划分公有IP、私有IP、特殊IP理解路由 数据链路层MAC地址以及MAC帧(以太网帧)MTU协议MTU对IP和TCP协议的影响ARP协议及其作用 涉及到的相关协议DNS协议(应用层)NAT与NAPT协议 总结…

BEV (0)---DETR

1 DETR 1.1 DETR处理流程 1.1.1 将图像输入给Backbone获得图像特征与位置编码 ①. 对给定的输入图像通过resnet进行特征提取,最终得到特征图C5∈RBx2048xhxw,其中h、w为输入图像尺寸得1/32。随后再用一层11卷积压缩一下通道,得到特征图P5∈RBx256xhxw。…

jvm调优策略

jvm调优主要是内存管理方面的调优,包括各个代的大小,GC策略等。 代大小调优 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物…

数据结构学习记录——什么是堆(优先队列、堆的概念、最大堆最小堆、优先队列的完全二叉树表示、堆的特性、堆的抽象数据类型描述)

目录 优先队列 若采用数组或链表实现优先队列 数组 链表 有序数组 有序链表 总结 若采用二叉搜索树来实现优先队列 最大堆 堆的概念 优先队列的完全二叉树表示 堆的两个特性 结构性 有序性 【例】最大堆和最小堆 【例】不是堆 堆的抽象数据类型描述 优先队列…

安排超市 -- BFS分割搜索

4.安排超市 给定一个n*n的地图。地图是上下左右四联通的,不能斜向行走: *代表障碍,不可通行。 .代表路,可以通行。 #代表房子。房子也是可以通行的。 小红现在需要在一些地方安排一些超市(不能安排在障碍物上&#xf…

山东专升本计算机第七章-计算机网络基础

计算机网络基础 计算机网络系统 考点 6 计算机网络硬件 主体设备 • 称为主机 • 一般可分为中心站(又称服务器)和工作站(客户机) 连接设备 • 网卡 • 工作在数据链路层 • 网卡又称网络适配器,是连接主机和网…

【C++初阶】引用

一.概念 引用就是取别名,在语法上它不会开空间,而是和它引用的变量共用同一块空间。对引用的操作也就是对原来变量的操作。就像现实生活中给人取外号一样,不管是喊外号还是本名,指的都是那个人。 二.引用特性 1.引用类型必须和引用…

Java8 新特性讲解

一、Lambda表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。 二、函数式接口 &#…

【网课平台】Day15.Devops:持续集成与持续交付

文章目录 一、Devops1、什么是Devops2、什么是CI/CD3、Devops方案参考 二、人工部署1、项目打jar包2、生成镜像、创建容器 三、自动化部署1、代码提交到git2、修改pom.xml文件3、前端部署 一、Devops 1、什么是Devops 一个软件的生命周期包括:需求分析阶、设计、开…

SpringCloud:ElasticSearch之集群

单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点单点故障问题:将分片数据在不同节…