MYSQL数据库-SQL语句

数据库相关概念

名称全称简称
数据库存储数据的仓库,数据是有组织的进行存储DataBase(DB)
数据库管理系统操纵和管理数据库的大型软件DataBase Management System(DBMS)
SQL操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准Structured Query Language(SQL)

数据模型

关系型数据库(RDBMS)

概念

建立在关系模型基础上,由多张相互连接的二维表(见下图)组成的数据库。
在这里插入图片描述

特点

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

SQL通用语法

  1. SQL语句可以单行或者多行书写,以分号结尾
  2. SQL语句可以使用空格/缩进来增强语句的可读性
  3. Mysql数据库的SQL语句不区分大小写,关键字使用大写
  4. 注释:单行注释:–或者# 多行注释:/* 注释内容*/

SQL分类

分类全称说明
DDLData Definition Language数据定义语言,用来定义数据库对象(数据库,表,字段)
DMLData Manipulation Language数据操作语言,用来对数据库表中的数据进行增删改
DQLData Query Language数据查询语言,用来查询数据库中表的记录
DCLData Control Lanquage数据控制语言,用来创建数据库用户、控制数据库的访问权限

DDL-数据库操作

查询

查询所有数据库

SHOW DATABASES;

查询当前数据库

SELECT DATABASE();

当不知道自己在操作哪个数据库时,可以执行该指令。

创建

CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

[IF NOT EXISTS] 判断是否存在,不存在创建
[DEFAULT CHARSET] 设置字符集

删除

DROP DATABASE [IF EXISTS] 数据库名;

使用

USE 数据库名;

DDL-表操作-查询

查询当前数据库所有的表

SHOW TABLES;

查询表结构

DESC 表名;

查询指定表的建表语句(创建表的SQL语句)

SHOW CREATE TABLE 表名;

DDL-表操作-创建

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

DDL-表操作-数据类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DDL-表操作-修改

添加字段

ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];

修改数据类型

ALETR TABLE 表名 MODIFY 字段名 新数据类型(长度);

修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

删除字段

ALTER TABLE 表名 DROP 字段名;

修改表名

ALTER TABLE 表名 RENAME TO 新表名;

DDL-表操作-删除

在删除表的时候,表中的数据也会被删除。

删除表

DROP TABLE [IF EXISTS] 表名;

删除指定表,并重新创建该表

TRUNCATE TABLE 表名;

DML-添加数据

DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。

给指定字段添加数据

INSERT INTO 表名 (字段1,字段2)  VALUES(值1,值2);

给全部字段添加数据

INSERT INTO 表名 (值1,值2);

批量添加数据

INSERT INTO 表名 (字段1,字段2,...)  VALUES(值1,值2,...),(值1,值2,...),...;
INSERT INTO  VALUES(值1,值2,...),(值1,值2,...),...;

注意

  1. 插入数据时,指定的字段/顺序需要与值的顺序是一一对应的
  2. 字符串和日期数据应包含在引导中
  3. 插入的数据大小,应该在规定的范围内

DML-修改数据

UPDATE SET 字段名1=值1,字段名2=值2....[WHERE 条件];

[WHERE 条件] 可以有,可以无,无的话修改的是整张表的所有数据。

DML-删除数据

DELETE FROM 表名 [WHERE 条件];

DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
DELETE语句不能删除某一个字段的值(可以使用UPDATE)

DQL

DQL英文全称是Data QueryLanguage(数据查询语言),数据查询语言,用来查询数据库中表的记录。
查询的关键字 SELECT

DQL语法

SELECT字段列表
FROM表名列表
WHERE条件列表
GROUP BY分组字段列表
HAVING分组后条件列表
ORDER BY排序字段列表
LIMIT分页参数

DQL-基础查询

查询多个字段

SELECT 字段1,字段2,字段3,... FROM 表名;
SELECT * FROM 表名;

设置别名

SELECT 字段1 [AS 别名1],字段2[AS 别名2],... FROM 表名;

去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

DQL-条件查询

语法

SELECT 字段列表 FROM 表名 WHERE 条件列表

条件

比较运算符功能
>大于
<小于
>=大于等于
<=小于等于
=等于
<> 或!=不等于
BETWEEN … AND …在某个范围之内(含最小、最大值)
IN(…)在in之后的列表中的值,多选一
LIKE 占位符模糊匹配(_匹配单个字符,%匹配任意个字符)
IS NULL是NULL
逻辑运算符功能
AND 或 &&并且(多个条件同时成立)
OR 或或者(多个条件任意一个成立)
NOT 或!非,不是

DQL-聚合函数

将一列数据作为一个整体,进行纵向计算。

函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和

语法

SELECT 聚合函数 (字段列表) FROM 表名;

null 不参与所有的聚合运算

DQL-分组查询

语法

SELECT  字段列表  FROM  表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];

where与having区别

执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
判断条件不同:where不能对聚合函数进行判断,而having可以。

注意:

  • 执行顺序: where >聚合函数>having。
  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义

DQL-排序查询

语法

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;

排序方式

ASC:升序
DESC:降序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

DQL-分页查询

语法

SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数

注意

  • 起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。

例子

2.查询第2页员工数据,每页展示10条记录从
SELECT * from emp limit 10,10;

DQL-执行顺序

在这里插入图片描述

DCL-用户管理

DCL英文全称是Data ControlLanguage(数据控制语言),用来管理数据库用户、控制数据库的访问 权限

  1. 查询用户
USE mysql;
SELECT * FROM user;
  1. 创建用户
CREATE USER '用户名' @ '主机名’ ID ENTIFIED BY '密码'
  1. 修改用户密码
ALTER USER '用户名' @ '主机名’ IDENTIFIED WTH mysql native password BY '新密码’ 
  1. 删除用户
DROP USER '用户名' @ '主机名’;

DCL-权限控制

MySOL中定义了很多种权限,但是常用的就以下几种:

权限说明
ALL, ALL PRIVILEGES所有权限
SELECT查询数据
INSERT插入数据
UPDATE修改数据
DELETE删除数据
ALTER修改表
DROP删除数据库/表/视图
CREATE创建数据库/表

1.查询权限

SHOW GRANTS FOR'用户名'@'主机名

2.授予权限

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名’

3.撤销权限

REVOKE 权限列表0心 数据库名.表名 FROM'用户名'@'主机名';

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

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

相关文章

win10电脑录屏全攻略,从入门到精通,一篇文章就够了!

在当今科技时代&#xff0c;电脑录屏已经成为人们生活中越来越重要的一部分。无论是工作还是娱乐&#xff0c;我们都可能需要录制电脑屏幕来保存或分享一些内容。在本文中&#xff0c;我们将向您介绍win10电脑录屏的三种方法&#xff0c;并对每种方法进行详细说明&#xff0c;为…

宝塔安装多个版本的PHP,如何设置默认的PHP版本

如何将默认的PHP版本设置为7.3.32&#xff0c; 创建软链接指向7.3版本&#xff0c;关键命令&#xff1a;ln -sf /www/server/php/73/bin/php /usr/bin/php 然后再查看PHP版本验证一下结果 [rootlocalhost ~]# ln -sf /www/server/php/73/bin/php /usr/bin/php [rootlocalho…

青蒿素优化算法(AO)-2024年新算法-公式原理详解与性能测评 Matlab代码免费获取

声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 目录 原理简介 一、初始化阶段 二、综合淘汰阶…

2024创业热门选择:短视频带货,轻资产模式引领你飞翔

在当今这个信息爆炸的时代&#xff0c;短视频带货已经成为了一种全新的商业模式&#xff0c;为创业者提供了前所未有的机遇。特别是在2024年&#xff0c;短视频带货的潜力愈发显现&#xff0c;成为众多创业者的热门选择。本文将深入探讨 keJ0277 短视频带货的魅力所在&#xff…

element ui的确认提示框按钮样式修改

修改确认提示框的默认按钮样式&#xff0c;使用css强制修改 例&#xff1a; js代码&#xff1a; this.$confirm("您确定要删除吗&#xff1f;此操作无法撤销并且将永久删除所有数据。", "提示", { type: "warning", cancelButtonClass: "…

日本率先研发成功6G设备,刺痛了谁?为何日本能率先突破?

日本率先研发成功6G设备&#xff0c;无线数据速率是5G的百倍&#xff0c;这让日本方面兴奋莫名&#xff0c;毕竟日本在科技方面从1990年代以来太缺少突破的创新了&#xff0c;那么日本为何如今在6G技术上能率先突破呢&#xff1f; 日本在1980年代末期达到顶峰&#xff0c;它的科…

【算法】dfs

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、全排列1. 决策树2. 设计代码1. 全局变量2. dfs函数3. 细节问题 二、子集解法一1. 决策树2. 设计代码…

PCB的盘中孔

目录 一、什么时候可以在焊盘上打孔&#xff1f; 二、什么时候可以在焊盘上打孔&#xff1f; 绘制PCB时经常会遇到空间不够无法走线&#xff0c;这时我们会放置过孔使信号线穿过电路板一侧到达另一侧进行走线&#xff0c;这样既方便走线&#xff0c;也能够节省板子空间。有时…

Linux提权--第三方软件MYSQL数据库提权(WEB+本地)

免责声明:本文仅做技术交流与学习,非法搞事后果自负... 目录 靶场镜像: 过程: 手工: 下载mysql udf poc 进行编译. 进入数据库进行UDF导出 下载(上传) 创建do_system函数调用 探针(./LinEnum.sh),查找suid权限. 配合使用find调用执行 工具: 过程: 外连不上? 隧道出…

气膜建筑电源配置是怎样的—轻空间

在气膜建筑中&#xff0c;电源配置是确保建筑控制系统连续运行的重要组成部分。以下是该建筑的电源配置方案&#xff1a; 1. 市电供电与备用发电机&#xff1a; 为了应对市电中断等突发情况&#xff0c;系统采用市电供电与备用柴油发电机双重供电方式。这种配置保证了即使在市电…

UV胶的应用场景有哪些?

UV胶是一种特殊的胶水&#xff0c;其固化过程需要紫外光照射。它具有快速固化、高强度、无溶剂挥发等优点&#xff0c;因此在许多应用场景中被广泛使用。UV胶的应用场景非常广泛&#xff0c;包括但不限于以下几个方面&#xff1a; 1.电子产品组装: UV胶在电子产品的组装中扮演…

高校课程评价|基于SSM+vue的高校课程评价系统的设计与实现(源码+数据库+文档)

高校课程评价系统 目录 基于SSM&#xff0b;vue的高校课程评价系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1管理员功能模块 2学生功能 3教师功能 4专家功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…

企业微信hook接口协议,ipad协议http,格式化发送@消息

格式化发送消息 参数名必选类型说明uuid是String每个实例的唯一标识&#xff0c;根据uuid操作具体企业微信send_userid是long要发送的人或群idisRoom是bool是否是群消息 请求示例 {"uuid":"1688853790599424","send_userid":1069605295501613…

实验0.0 Visual Studio 2022安装指南

Visual Studio 2022 是一个功能强大的开发工具&#xff0c;对于计算机专业的学生来说&#xff0c;它不仅可以帮助你完成学业项目&#xff0c;还能为你将来的职业生涯打下坚实的基础。通过学习和使用 Visual Studio&#xff0c;你将能够更高效地开发软件&#xff0c;并在编程领域…

Alibaba SpringCloud集成Nacos、openFeign实现负载均衡-15

Spring cloud alibaba Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件&#xff0c;方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 主要功能 服务限流降级&#xff1a;默认支持 WebS…

Unity生命周期函数详解

Unity生命周期函数详解 Unity生命周期函数是Unity引擎中用于控制游戏对象行为的一系列方法。它们在游戏的不同阶段被自动调用&#xff0c;允许开发者在适当的时机执行特定的代码。了解和正确使用生命周期函数对于创建流畅和高效的游戏至关重要。 生命周期函数概述 Unity生命…

leetcode经典例题之使用栈实现队列

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 目录 1、题目展示2、题目分析3、完整代码演示4、结语 1、题目展示 前面我们了解过如何实现栈相…

搭建nacos集群

1.修改nacos/conf/application.properties 2.在数据库中执行nacos/conf/nacos-mysql.sql脚本 3.修改nacos/conf/cluster.conf文件 4.修改startup.sh文件模式为集群 5.启动服务 附&#xff1a;安装nginx 修改/usr/local/openresty/nginx/conf/nginx.confi文件 http{}中增加如下…

电机控制系列模块解析(20)—— MTPA

一、MTPA MTPA 是 "Maximum Torque Per Ampere" 的缩写&#xff0c;意为“最大转矩电流比”。在电机控制系统中&#xff0c;特别是永磁同步电机&#xff08;PMSM&#xff09;或其它永磁电机的控制策略中&#xff0c;MTPA 控制旨在实现电机在给定负载条件下&#xff…

uniapp 生成安卓证书没有md5指纹怎么办?

由于最新的jdk版本对应的keystore工具无法查看到md5指纹信息 但是不代表它没有md5指纹信息&#xff0c;只是看不到而已 解决方案&#xff1a; 登录uniapp开发者后台生成安卓云端证书