Mysql 简介

Mysql 简介

学习目的

MySQL作为目前最流行的关系型数据库管理系统之一,因其开源免费的特性,成为小型Web应用的重点关注对象。几乎所有的动态Web应用基本都在使用MySQL作为数据管理系统。学习MySQL的目的也是为了更好地理解数据库相关的SQL注入漏洞,并学习如何保护应用程序的数据安全。

SQL注入是一种常见的网络安全威胁,它利用应用程序未正确过滤或转义用户输入数据的弱点,将恶意的SQL代码注入到应用程序的查询中。这种漏洞可能导致恶意用户访问、篡改或删除数据库中的数据,甚至获取敏感信息。

通过学习MySQL,可以深入了解SQL语言和MySQL数据库的基础知识,并学习数据安全性和防御机制的最佳实践。您将学习如何编写安全的查询语句、使用参数化查询和存储过程来防止SQL注入攻击。此外,了解MySQL的配置和权限管理也是确保数据库安全的重要方面。

SQL的专业术语

以下是一些SQL的专业术语:

  1. 数据库(Database):
    • 用于存储和组织数据的结构化数据集合。
  2. 数据表(Table):
    • 数据库中的一个独立数据对象,用于组织数据。表由列和行组成。
  3. 列(Column):
    • 表中的一个字段,用于定义数据的类型和属性。
  4. 行(Row):
    • 表中的一个记录,包含各个列的数据。
  5. 主键(Primary Key):
    • 用于唯一标识表中每一行的一列或一组列。主键的值不能重复或为空。
  6. 外键(Foreign Key):
    • 用于建立表与表之间的关系。外键是一个表中的字段,它引用了另一个表的主键。
  7. 索引(Index):
    • 用于提高查询速度的数据结构。索引可以加速查询过程,但会增加修改数据的开销。
  8. 触发器(Trigger):
    • 与表关联的特殊类型的存储过程。在特定事件(如插入、更新、删除)发生时自动执行。
  9. 存储过程(Stored Procedure):
    • 在数据库中存储的一组预编译的SQL语句。存储过程可以接受参数,并将结果返回给调用方。
  10. 视图(View):
    • 虚拟表格,由查询语句定义。视图可以简化复杂查询、提供安全性和简化对数据的访问。
  11. 查询(Query):
    • SQL语句用于获取/修改数据库中的数据的请求。
  12. 事务(Transaction):
    • 一系列数据库操作的逻辑单元,要么全部成功完成,要么全部回滚。事务确保数据的一致性和完整性。
  13. 规范化(Normalization):
    • 设计和组织数据库中的表,以减少重复数据和提高数据的一致性。
  14. 反规范化(Denormalization):
    • 为了提高查询性能而人为引入冗余数据。
  15. 数据类型(Data Type):
    • 定义数据的存储格式和操作的特性,如整数、字符串、日期等。

image-20230723203751082

Mysql基本语法规则

  1. SQL语句大小写规则:
    • SQL语句的关键字不区分大小写,但建议使用大写以增强可读性。
    • 数据库名称、表名、列名等标识符是不区分大小写的,但建议保持一致且使用小写。
    • 字符串和值是区分大小写的。
  2. SQL语句结尾标记:
    • 使用分号(;)作为语句的结束标记。
    • 大多数情况下,每个语句应单独占一行并以分号结束。
  3. 关键字和标识符命名规则:
    • 标识符可以包含字母、数字和下划线。
    • 标识符必须以字母或下划线开头。
    • 标识符不能与MySQL保留的关键字相同。
  4. 字符串值的表示:
    • 用单引号(')或双引号(")表示字符串值。
    • 例如:'Hello', "World"
  5. NULL值的表示:
    • 使用关键字NULL表示空值。
  6. 使用方括号:
    • 方括号([])在MySQL中没有特殊含义,不用于标识符。
  7. 空格和缩进:
    • 可以在SQL语句中使用空格和缩进来提高可读性。
    • MySQL会忽略SQL语句中的多余空格。
  8. 对象引用:
    • 使用反引号(`)来引用对象名称(如数据库名称、表名、列名等),以避免与关键字冲突。

Mysql基本语句组成

SQL语句通常由几个基本部分组成,包括:

DDL (Data Definition Language) 数据定义语言部分:

  • CREATE:创建数据库、表格等对象。
  • ALTER:修改数据库、表格等对象的结构。
  • DROP:删除数据库、表格等对象。

DML (Data Manipulation Language) 数据操作语言部分:

  • INSERT:插入数据到表格中。
  • UPDATE:更新表格中的数据。
  • DELETE:删除表格中的数据。

DQL (Data Query Language) 数据查询语言部分:

  • SELECT:从表格中查询数据。

DCL (Data Control Language) 数据控制语言部分:

  • GRANT:授予用户或角色权限。
  • REVOKE:撤销用户或角色权限。

TCL (Transaction Control Language) 事务控制语言部分:

  • COMMIT:提交事务。
  • ROLLBACK:回滚事务。

一个完整的SQL语句可以由上述的语句部分组成,也可能只包含其中的一部分,取决于具体的需求。

此外,SQL语句还包含一些关键字和子句,用于进一步指定操作和条件,例如:

  • WHERE:用于指定查询条件。
  • ORDER BY:用于排序查询结果。
  • GROUP BY:用于分组聚合查询结果。
  • HAVING:用于过滤聚合查询结果。
  • JOIN:用于连接多个表。

Mysql 与编程语言

MySQL可以与多种编程语言进行集成和交互,以下是一些常用的编程语言:

  1. PHP:
    • PHP是一种用于Web开发的脚本语言,MySQL与PHP的集成非常紧密,广泛应用于Web应用程序开发。通过PHP的MySQL驱动程序(如:MySqli)可以与MySQL数据库进行连接和操作。
  2. Python:
    • Python是一种简单易学、功能强大的脚本语言,通过Python的MySQL驱动程序(如MySQL Connector/Python、PyMySQL等),可以与MySQL数据库进行连接和操作。
  3. Java:
    • Java是一种广泛应用于大型企业级应用程序开发的编程语言。通过Java的JDBC(Java Database Connectivity)接口和相应的MySQL驱动程序(如MySQL Connector/J),可以与MySQL数据库进行交互。
  4. C#:
    • C#是在.NET框架下开发的一种面向对象的编程语言。通过使用ADO.NET和相应的MySQL数据提供程序(如MySQL Connector/NET),可以在C#应用程序中与MySQL数据库进行连接和操作。
  5. Ruby:
    • Ruby是一种简单、面向对象的脚本语言,通过Ruby的MySQL驱动程序(如mysql2 gem),可以实现与MySQL数据库的交互。
  6. JavaScript:
    • JavaScript是一种用于Web前端开发的脚本语言,通过JavaScript的MySQL驱动程序(如MySQL for Node.js),可以在浏览器端和服务器端与MySQL数据库进行交互。

这只是其中的一小部分语言,实际上还可以使用其他编程语言与MySQL进行交互,例如Perl、Go、Swift等。无论选择哪种编程语言,都需要使用相应的MySQL驱动程序或库来实现与MySQL数据库的连接和操作。

Mysql的特殊符号

MySQL中的一些特殊符号包括:

  1. 通配符符号:

    • 百分号(%):用于模糊匹配字符串中的任意字符。
    • 下划线(_):用于模糊匹配字符串中的任意单个字符。

    示例:

    SELECT * FROM table_name WHERE column_name LIKE 'abc%'; -- 匹配以"abc"开头的字符串
    SELECT * FROM table_name WHERE column_name LIKE 'a_c'; -- 匹配第一个字符为"a",第三个字符为"c"的字符串
    
  2. 反引号符号(`):

    • 反引号用于引用 MySQL 中的标识符,如数据库名、表名、列名等。也用于避免与 MySQL 关键字发生冲突。

    示例:

    SELECT `column_name` FROM `table_name` WHERE `column_name` = 'value';
    
  3. 单引号(')和双引号("):

    • 用于表示字符串值或文本常量。

    示例:

    SELECT * FROM table_name WHERE column_name = 'value';
    SELECT * FROM table_name WHERE column_name = "value";
    
  4. 分号(;):

    • 在 SQL 语句中,分号用作语句的结束标记,表示该语句的结束。

    示例:

    SELECT * FROM table_name; 
    
  5. 注释符:

    MySQL支持两种类型的注释符:

    1. 单行注释:

      • 使用双横线(–)或井号(#)开头表示单行注释。
      • 注释从符号后开始,直到行尾结束。

      示例:

      -- 这是单行注释
      SELECT column1, column2 FROM table_name;
      
      SELECT column1, column2 FROM table_name; # 这也是单行注释
      
    2. 多行注释:

      • 使用斜杠星号(/* … */)将多行注释内容包裹起来,注释位于斜杠星号之间。

      示例:

      /* 这是
         多行注释 */
      SELECT column1, column2 FROM table_name;
      
      

是单行注释
```

  1. 多行注释:

    • 使用斜杠星号(/* … */)将多行注释内容包裹起来,注释位于斜杠星号之间。

    示例:

    /* 这是
       多行注释 */
    SELECT column1, column2 FROM table_name;
    
    

这些特殊符号在 MySQL 查询和操作中具有特定的语义和用途。熟悉和正确使用这些特殊符号可以帮助您编写有效和准确的 MySQL 语句

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

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

相关文章

uniapp实战

上面是tab栏,下面是swiper,,tab和swiper和 红色滑块 动态变化,, 遇到的问题: 往下滚动 tab栏 吸顶: position:sticky; z-index:99; top:0;swiper切换触发 change 事件, :current …

【Unity2D】相机移动以及设置相机边界

添加相机 添加相机时,首先需要在unity中添加 Cinemachine 包 第一次使用这个包时,需要在Package Manager中搜索并安装 安装Camera Mechine包后,添加2D Camera 设置跟随对象为Ruby (从Hierarchy中将Ruby拖动到Follow中&#xff0…

UE5 关于MRQ渲染器参数

最佳参数: Spatial Sample Count:使用奇数样本时临时抗锯齿会收敛 Temporal Sample Count:超过2之后,采样过大会造成TAA效果不佳 TSR:UE5最好的抗锯齿方案

AcWing241. 楼兰图腾(树状数组)

输入样例: 5 1 5 3 2 4输出样例: 3 4解析: 以某个点 i 为最低点的 V 的数量,为 i 左侧和右侧比 a[ i ] 大的数量 a,b 的乘积。 但是,直接求这两个数的复杂度为O(n),则整个复杂度为O( n^2 )&am…

js基础-练习三

九九乘法表&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthsc, initial-scale1.0"><title>九九乘法表</title><style&g…

可解释的 AI:在transformer中可视化注意力

Visualizing Attention in Transformers | Generative AI (medium.com) 一、说明 在本文中&#xff0c;我们将探讨可视化变压器架构核心区别特征的最流行的工具之一&#xff1a;注意力机制。继续阅读以了解有关BertViz的更多信息&#xff0c;以及如何将此注意力可视化工具整合到…

论文笔记--Distilling the Knowledge in a Neural Network

论文笔记--Distilling the Knowledge in a Neural Network 1. 文章简介2. 文章概括3 文章重点技术3.1 Soft Target3.2 蒸馏Distillation 4. 文章亮点5. 原文传送门 1. 文章简介 标题&#xff1a;Distilling the Knowledge in a Neural Network作者&#xff1a;Hinton, Geoffre…

iOS 单元测试之常用框架 OCMock 详解

目录 前言&#xff1a; 一、单元测试 1.1 单元测试的必要性 1.2 单元测试的目的 - 约束条件是否通过形式参数来传送。 1.3 单元测试依赖的两个主要框架 二、OCMock 的集成与使用 2.1 OCMock 的集成方式 2.2 OCMock 的使用方法 2.3 mock 使用限制 前言&#xff1a; OC…

IDEA+SpringBoot + Mybatis + Shiro+Bootstrap+Mysql资产设备管理系统

IDEASpringBoot Mybatis ShiroBootstrapMysql资产设备管理系统 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.用户新增3.用户设置4.岗位管理5. 审批节点6. 人员查询7. 组织设置8. 人员调整9.角色设置10.角色模块映射11.模块设置12.应用模块13.光纤交换机14.服务器15.网…

从实践彻底掌握MySQL的主从复制

目录 一、本次所用结构如图---一主多从级联&#xff1a; 二、IP。 三、配置M1&#xff1a; 四、从库M1S1&#xff1a; 五、从库M2配置&#xff1a; 六、 从库M2S1&#xff1a; 一、本次所用结构如图--- 一主多从级联&#xff1a; 二、IP。这里M1S1和M1S2一样的&#xff0…

hack the box—Lame

扫描 还是老方法nmapfscan得到开放的端口和服务 nmap -sV -sC -sT -v -T4 10.10.10.3 看到开了445&#xff0c;先来波ms17-010&#xff0c;发现失败。 这里还开个21&#xff0c;并且可以知道版本号&#xff0c;直接搜索ftp漏洞 msf正好有对应的模块 设置好参数后进行攻击&…

Hadoop 集群如何升级?

前言 本文隶属于专栏《大数据技术体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见大数据技术体系 正文 升级 Hadoop 集群需要细致的规划&#xff0c;特…

【设计模式】单例设计模式详解(包含并发、JVM)

文章目录 1、背景2、单例模式3、代码实现1、第一种实现&#xff08;饿汉式&#xff09;为什么属性都是static的&#xff1f;2、第二种实现&#xff08;懒汉式&#xff0c;线程不安全&#xff09;3、第三种实现&#xff08;懒汉式&#xff0c;线程安全&#xff09;4、第四种实现…

树莓派刷机和登入

1.打开映像工具 2.选择映像文件写入 3.拔出卡插入树莓派上电 4.树莓派登入 1.HDMI视频线&#xff0c;连接到显示屏幕 2.串口登录 修改系统配置&#xff0c;启用串口登录树莓派 &#xff08;1) 打开SD卡根目录的"config.txt文件"&#xff0c;停止蓝牙&#xff0c;…

使用lua脚本操作redis

redis中实现事务有两种方法&#xff1a; 1.WATCH监视键的变动&#xff0c;然后MULTI开始事务&#xff0c;EXEC提交事务 WATCH key [key…]&#xff1a;监视一个或多个键&#xff0c;如果在事务执行之前被修改&#xff0c;则事务被打断。 MULTI&#xff1a;标记一个事务的开始。…

Rust学习01:D-day

以前自学过Python&#xff0c;开发了一些小程序&#xff0c;用于工作中提升效率。 Python的确好学易用&#xff0c;但用来做一个真正意义上的产品&#xff0c;哪怕是比较简单的产品&#xff0c;差点意思&#xff0c;特别是在移动端开发领域。 Rust看了两本书&#xff0c;准备动…

Chrome 115 有哪些值得关注的新特性?

今天带大家一起来了解一下 Chrome 115 值得关注的新特性。 滚动动画 用滚动驱动的动画是网站上非常常见的用户体验模式&#xff0c;比如当页面向前或向后滚动时&#xff0c;对应的动画也会向前或向后移动。 比如下面图中这种比较常见的&#xff0c;页面顶部的进度条随着滚动…

C语言-print字符串打印-转义字符妙用

这里有两个有关打印的小知识 打印的字符串内容由两部分组成&#xff1a;可见字符、转义字符&#xff1b;各种字母、数字、以及空格&#xff0c;均属于可见字符&#xff0c;“\”等属于转义字符 举例&#xff1a; 1.直接print里面打印内容&#xff0c;内容直接出现 2.这里想将一…

appscan 应用

HCL appscan是个常见的web app DAST 扫描工具 有企业版和standalone 版本。大家常用的都是单机版本。企业版平台&#xff0c;集成了IAST。 appscan 使用比较简单&#xff0c;基本输入url 账号密码就开扫了。 用了一段时间几点体验 1 还是需要手动explore的&#xff0c;他自…

TSN -促进IT/OT 融合的网络技术

时间敏感网络&#xff08;tsn&#xff09;技术是IT/OT 融合的一项关键的基础网络技术&#xff0c;它实现了在一个异构网络中&#xff0c;实现OT的实时数据和IT系统的交互数据的带宽共享。 TSN允许将经典的高确定性现场总线系统和IT应用&#xff08;如大数据传输&#xff09;的功…