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

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语句。


http://www.kler.cn/a/310504.html

相关文章:

  • Android 进入浏览器下载应用,下载的是bin文件无法安装,应为apk文件
  • ODOO学习笔记(3):Odoo和Django的区别是什么?
  • GitLab实现 HTTP 访问和 SMTP 邮件发送
  • wordpress搭建主题可配置json
  • SQL50题
  • Python的Web请求:requests库入门与应用
  • 【w0网页制作】Html+Css网页制作影视主题之庆余年Ⅱ含轮播表单(5页面附源码)
  • Android Room 数据库自动升级与迁移策略
  • 探索IT行业的无限潜力:技术、发展与职业前景
  • python 2024-9
  • 拓扑排序基础
  • Java项目实战II基于Java+Spring Boot+MySQL的大学城水电管理系统(源码+数据库+文档)
  • Kafka性质小结
  • 学习使用SQL Server Management Studio (SSMS)
  • 计算机毕业设计 办公用品管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • 期货量化跟单系统演示
  • Leetcode Hot 100刷题记录 -Day17(搜索二维矩阵II)
  • 如何在Windows系统上使用谷歌浏览器进行远程工作
  • 51单片机按键数码管(简单设计)
  • Matlab对状态机建模的方法
  • 【C++】猜数字小游戏
  • 什么是 PHP? 为什么用 PHP? 有谁在用 PHP?
  • 【机器学习导引】ch2-模型评估与选择
  • Spring6梳理9—— 依赖注入之注入对象类型属性
  • array和linked list的区别
  • 从IPC摄像机读取视频帧解码并转化为YUV数据到转化为Bitmap