MySQL常用语句(一)

#数据库操作思路

#相关实验

<SQL语句简介>

<web安全SQL语句基本操作>

#数据库管理

#创建数据库

在与数据进行任何操作之前,需要创建一个数据库。数据库是数据的容器,用于存储和操作诸如表、数据库视图、触发器、存储过程等数据的数据集合。

例如创建一个名为mytestdb的数据库:

if not exists是语句的子句,可防止创建数据库服务器中已存在该数据库的错误。 执行此语句后,MySQL返回一条消息,通知新数据库是否已成功创建。

#显示数据库

show databases语句用于显示MySQL数据库服务器中的所有数据库。

在此MySQL服务器中有7个数据库,其中information_schema、mysql和performance_schema是安装MySQL时可用的默认数据库。

#选择要使用的数据库

在使用指定数据库之前,必须使用use语句告诉MySQL要使用哪个数据库。

例如使用数据库mytestdb:

接下来所有操作都将对当前数据库mytestdb产生影响。

#删除数据库

使用drop database语句对数据库中的所有数据和关联对象进行删除,且无法撤销。

例如删除数据库mytestdb:

再次执行显示数据库的语句以验证删除操作:

#表管理

#创建表

使用create table语句在数据库中创建一个新表。

create table语句的语法:

首先指定要创建的表的名称,表名在数据库中必须唯一。然后在column_list部分指定表的列表,字段的列用逗号分隔。最后需要为engine子句中的表指定存储引擎,如InnoDB、MyISAM、HEAP、EXAMPLE、CSV,其中InnoDB自MySQL 5.5之后成为默认存储引擎,之前使用MyISAM作为默认存储引擎。

使用以下语法在create table语句中为表定义列:

column_name指定列的名称,每列具有特定数据类型和大小;
not null或null表示该列是否接受null值;
default值用于指定列的默认值;
auto_increment表示每当将新行插入到表中,列的值会自动增加。

例如在示例数据库testdb中创建一个名为test的新表:

primary key(id)表示将表的id列设置为主键。

#更改表结构

使用alter table语句更改现有表的结构,可用来添加列、删除列、更改列的数据类型、添加主键、重命名表等。

首先在数据库testdb中创建一个名为test_table的新表:

#添加列

例如添加一个名为complete的新列:

#删除列

例如删除test_table表的complete列:

#重命名表

使用alter table语句重命名表。

例如将test_table表重命名为work_items表:

#删除表

使用drop table语句删除现有表。

drop table语句的语法:

drop table语句从数据库中永久删除一个表及其数据,每个表之间用逗号分隔;
temporary标志指定仅删除临时表;
restrict和cascade标志为未来版本的MySQL保留。

例如删除之前重命名的work_items表:

#数据导入

示例数据库下载地址:
https://www.yiibai.com/downloads/yiibaidb.zip

示例数据库由以下表组成:
customers:存储客户的数据;
products:存储汽车的数据;
productLines:存储产品类别数据;
orders:存储客户订购的销售订单;
ordersDetails:存储每个销售订单的订单产品数据项;
payments:存储客户订单的付款数据信息;
employees:存储所有员工信息以及组织结构;
offices:存储销售处数据,类似于各个分公司。

连接到MySQL服务器并创建数据库:

创建数据库,并将当前数据库切换到yiibaidb数据库下:

导入数据:

测试导入结果(查看所有表和从offices表查询数据):

如果能看到返回的各个分公司数据,说明已经成功将示例数据库yiibaidb导入到MySQL服务器了。

【——全网最全的网络安全学习资料包分享给爱学习的你,关注我,私信回复“资料领取”获取——】
1.网络安全多个方向学习路线
2.全网最全的CTF入门学习资料
3.一线大佬实战经验分享笔记
4.网安大厂面试题合集
5.红蓝对抗实战技术秘籍
6.网络安全基础入门、Linux、web安全、渗透测试方面视频

#数据查询

#select

select语句允许通过在select子句中指定逗号分隔列的列表,来查询表的部分数据。select语句的结果成为结果集,它是行列表,每行由相同数量的列组成。

select语句的语法:

select语句由以下几个子句组成:
select:之后是逗号分隔列,或*号的列表(表示返回所有列);
from:指定要查询数据的表或视图;
join:根据某些连接条件,从其他表中获取数据;
where:过滤结果集中的行;
group by:将一组行组合成小分组,并对每个小分组应用聚合函数;
having:过滤器,基于group by子句定义的小分组;
order by:指定用于排序的列的列表;
limit:限制返回行的数量。

例如查询员工的名字、姓氏和职位:

#select distinct

从表中查询数据时,可能会收到重复的行记录。为了删除这些重复行,可以在select语句中使用distinct子句。

select distinct语句的语法:

例如使用distinct子句从employee表中选择员工的唯一姓氏:

首先使用select语句从employee表中查询员工的姓氏:

可以看到上面的结果中有很多是重复的,如Bondur、Firrelli等。

接下来使用distinct子句做到相同的结果只显示一个:

如果列具有NULL值,且对该列使用distinct子句,MySQL将保留一个NULL值,并删除其他NULL值,因为distinct子句将所有NULL值视为相同的值。

例如在customers表中有很多行的state列是NULL值:

当使用distinct子句来查询客户所在的州时,将看到唯一的州和NULL值:

distinct子句在多列上的使用:这种情况下,MySQL将使用所有列的组合来确定结果集中行的唯一性。

例如从customers表中获取城市和州的唯一组合:

没有distinct子句,将查询到州和城市的重复组合:

#prepare

prepare语句利用客户端/服务端二进制协议,将包含占位符(?)的查询传递给MySQL服务器,有助于MySQL更快地执行查询。当MySQL多次执行查询时,因为prepare语句使用占位符(?),有助于避免SQL注入的问题。

prepare语句的语法:

prepare:准备执行的声明;
execute:执行由prepare语句定义的语句;
deallocate prepare:发布prepare语句。

使用prepare语句的示例:

首先使用prepare语句准备执行语句,使用select语句根据指定的产品代码从products表查询产品数据,然后使用?作为产品代码的占位符。接下来声明了一个产品代码变量@pc,并将其值设置为S10_1678。然后使用execute语句来执行代码产品变量@pc的准备语句,最后使用deallocate prepare来发布prepare语句。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目管理 | 一文读懂什么是敏捷开发管理

在快速变化的商业环境中&#xff0c;项目管理方式也在不断演进&#xff0c;其中敏捷开发管理因其高效、灵活和适应性强的特点&#xff0c;逐渐成为众多企业和团队的首选。本文将详细解析敏捷开发管理的定义、具体内容及其核心角色&#xff0c;帮助读者全面理解这一先进的项目管…

Alinx MPSoC驱动开发第17章I2C实验修改设备树后petalinux编译报错

问题描述 在使用Alinx的MPSoC Linux驱动开发手册第17章进行I2C驱动学习时&#xff0c;在按照手册&#xff0c;在system-user.dtsi文件最后添加引用i2c1节点内容&#xff1a; 然后使用petalinux-build命令进行编译&#xff0c;后报错如下&#xff1a; 尝试解决问题 1&#xff0c…

vscode软件在 C发中常用插件

一. 简介 本文简单介绍一下&#xff0c;当做 C开发时 vscode软件常用的插件。 vscode软件是 微软公司目前提供的一款免费的开发软件&#xff0c;可以通过 vscode官网下载 vscode。 二. vscode软件在 C开发中常用插件 注意&#xff1a;vscode软件安装后&#xff0c;可以直接…

FlinkCDC 3.2.0 新增优点 Pattern Replacement in routing rules

新增优点&#xff1a;Pattern Replacement in routing rules flinkcdc 3.2.0版本相较于3.1.0版本&#xff0c;避免了多表多sink多次写 route 路由的麻烦&#xff0c;类似于统一前后缀的形式多表多sink&#xff0c;通过<>正则&#xff0c;大大减少了书写 官网&#xff1…

鸿蒙开发之ArkUI 界面篇 九 QQ音乐登录界面揭秘

我们需要实现的效果如下图&#xff1a; : 分析&#xff0c;垂直方向&#xff0c;四个按钮&#xff0c;从上往下第一个是Image&#xff0c;第二个是Text、第三个是是Button、第四个是Button&#xff0c;垂直布局用Column&#xff0c;代码实现如下&#xff1a; Entry Component…

【C语言进阶】动态内存与柔性数组:C语言开发者必须知道的陷阱与技巧

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C语言 “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C语言动态内存管理 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀C语言动态内存管理 &…

RabbitMQ 基础入门

文章内容是学习过程中的知识总结&#xff0c;如有纰漏&#xff0c;欢迎指正 文章目录 前言 1. 重要概念 1.1 Publisher 1.2 Message 1.3 Exchange 1.4 BindingKey 1.5 Routingkey 1.6 Queue 1.7 Consumer 1.8 Connection 1.9 Channel 1.10 Virtual Host 1.11Broker 2. RabbitMQ…

三菱变频器以模拟量电流进行频率设定(电流输入)

POINT 1、在 STF(STR)信号 ON 时&#xff0c;发出启动指令。2、请将 AU 信号置为 ON。 3、请设定 Pr.79 运行模式选择 “2”(外部运行模式)。 接线示例 重点&#xff1a;请将 AU 信号置为 ON。 操作示例&#xff1a;以 60Hz 运行。 1、接通电源时的画面&#xff0c;监视器显…

vue3+ant design vue 中弹窗自定义按钮设置及以冒号为基准布局

1、自定义弹窗按钮&#xff0c;去除取消和确定按钮。&#xff08;网上很多方法都是说通过插槽来实现&#xff0c;但是试了下不生效&#xff0c;那既然插槽不生效的话&#xff0c;干脆直接写按钮就好了&#xff09; <a-modalv-model:open"open"title"人员信息…

如何挑选适用的WMS 智能仓储管理系统?这份盘点攻略请收好!

本文将盘点十款WMS智能仓储管理系统&#xff0c;为企业选型提供参考&#xff01; 在现代企业的物流运作中&#xff0c;仓库就如同一个关键的枢纽&#xff0c;连接着生产与销售的各个环节。而一个高效的 WMS 智能仓储管理系统&#xff0c;就像是一位精明的管家&#xff0c;能让仓…

选购到不好的宠物空气净化器会有什么危害?有哪几款推荐

前三个月真的是被我男朋友气到了&#xff0c;明明说好的一起养猫&#xff0c;他又嫌这嫌那的&#xff0c;真的是无语住。 在养猫前的一个月就说好了&#xff0c;谁下班早谁就先回家收拾&#xff0c;包括进门开窗通风、给猫喂食、还有铲猫砂盆。但是他现在抱怨说太麻烦了&#…

开源即时通讯IM框架MobileIMSDK的H5端技术概览

一、基本介绍 MobileIMSDK的H5端是一套纯JS编写的基于标准WebSocket的即时通讯库&#xff1a; 1&#xff09;超轻量级、极少依赖&#xff1b;2&#xff09;纯JS编写、高度提炼&#xff0c;简单易用&#xff1b;3&#xff09;基于标准WebSocket协议&#xff0c;客户端兼容性好…

JavaEE:网络初识

文章目录 网络初识网络中的重要概念IP地址端口号认识协议(最核心概念)OSI七层模型TCP/IP五层(或四层)网络模型网络设备所在分层封装和分用 网络初识 网络中的重要概念 网络互联的目的是进行网络通信,也是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据.…

cmd命令

常用命令 查看电脑名称&#xff1a; hostname 查看网卡信息&#xff1a; ipconfig 快速打开网络设置界面&#xff1a; control.exe netconnections 或 rundll32.exe shell32.dll,Control_RunDLL ncpa.cpld 打开防火墙设置&#xff1a; wf.msc 指定网卡设置IP地址&#…

如何使用ssm实现高校智能培训管理系统分析与设计+vue

TOC ssm633高校智能培训管理系统分析与设计vue 第一章 绪论 1.1 选题背景 目前整个社会发展的速度&#xff0c;严重依赖于互联网&#xff0c;如果没有了互联网的存在&#xff0c;市场可能会一蹶不振&#xff0c;严重影响经济的发展水平&#xff0c;影响人们的生活质量。计算…

如何使用宝塔面板安装中间件

如何快速安装中间件&#xff0c;宝塔镇河妖非常简单。 使用 SSH 连接工具&#xff0c;如堡塔SSH终端连接到您的 Linux 服务器后&#xff0c;挂载磁盘&#xff0c;根据系统执行相应命令开始安装&#xff08;大约2分钟完成面板安装&#xff09;&#xff1a; Centos安装脚本 yum…

C++:日期类的实现

目录 一、前言 二、头文件 三、各个函数的实现 打印、检查日期及获取日期 、、-、-、 、<、<、>、>、 &#xff01; 日期-日期 >>、<< 一、前言 前面几篇讲了关于类和对象的一些知识&#xff0c;本篇就来实现一下前面用到的日期类。 二、头文…

【LGR-200-Div.4】洛谷入门赛 #27 A - H题解,包含(C++, Go语言)

前言&#xff1a; 本文为【LGR-200-Div.4】洛谷入门赛 #27 A - H题解 我只是一个只会各种暴力法的蒟蒻&#xff0c;这场比赛没有参加&#xff0c;是比赛完去写的&#xff0c;但是那个题目昨天晚上才能提交&#xff0c;导致拖久了一点 最后面贴一个Go语言的&#xff0c;反正也没…

英文ai写作怎么写?5个软件帮助你轻松进行ai写作

英文ai写作怎么写&#xff1f;5个软件帮助你轻松进行ai写作 AI写作工具正在改变内容创作方式&#xff0c;尤其是英文写作。以下是5款优秀的AI写作工具&#xff0c;它们可以帮助你快速、高效地完成各种英文写作任务&#xff0c;无论是博客、文章、社交媒体文案还是电子邮件。 聪…

Internet选项检查所存网页的较新版本的设置

每次访问此页时检查代表着,你无论打开任何网页时,都不用IE缓存,直接刷新浏览每次启动IE时检查,代表着,只要你IE浏览器不关闭,,那么他在访问相当网站,网页时,就会调用IE缓存(你会感觉打开非常快),这时候,他并没有下载网页,,只是调用缓存而已。。但是如果你关闭IE浏览器,再重新打…