Web安全基础-SQL MySQL

2023-11-10

SQL简介

数据库简介

  • 什么是数据库
    用来存放数据得仓库。

  • 什么是SQL
    SQL是一种数据库查询和程序设计语言。用于存取数据以及查询、更新和管理关系数据库系统。

常见的SQL数据库有MySQL,SQL server,Oracle、Sybase、db2…不同的数据库所使用的SQL语句也不一样。

  • MySQL数据库结构
    数据库中包含表,表是由列组成,表的数据存储方式是按行存储。

列名有类型区分常见的就是 int(6),varchar(15):int为数字类型 6为字符长度 varchar为字符类型 15为字符长度

int数字类型不需要引号

varchar字符类型需要打引号

SQL语句

SELECT 语句

用于从表中选取数据。结果被存储在一个结果表中(称为结果集)。

SELECT 列名 FROM 表名
SELECT * FROM 表名

*代表所有

INSERT INTO 语句

用于向表格中插入新的行。

INSERT INTO 表名称 VALUES (1,2,....)
//这个语法的意思是在一个表名的所有列名下面都需要按顺序赋值,并根据字段类型打引号

 INSERT INTO table_name (1,2,...) VALUES (1,2,....)
  //此语法的作用是在某个表名里面的某个列名进行赋值,需要按照顺序

以上报错的意思是,数据库表创建人设置在增加其他值的时候必须要添加user_id,正确的语句如下:

insert into users (user_id,user,password) values ('6','lll','12345678');

验证是否成功

select * form users;

Delete语句

DELETE FROM 表名称 WHERE 列名称 =DELETE * FROM 表名称

==#用于删除表中的行==

操作删除users表中 user列 中得 lyl 值的这一行

执行 delete from users where user = ‘lyl’;语句,因为user列是varchar字符型,varchar字符类型需要打引号

delete from users where `user` = 'lyl';

验证是否删除成功 执行 select * from users 语句

select * from users 

Update 语句

用于修改表中的数据。

 UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

修改users表中,user_id列 6 的值为 7

update users set user_id  = 7 where user_id  = 6;

验证是否修改成功

select * from users

Order by 语句

语法:

select 列名 from 表名 order by 列名 DESC

用于对结果集进行排序。
用于根据指定的列对结果集进行排序。
不加DESC默认按照升序对记录进行排序
加DESC则按照降序对记录排序

操作查看users表中 user_id,user,password 列值并指定user降序排序

select user_id,user,password from users order by user desc; 

order by 排序列数大于当前查询的列数时就会报错;如下:

Where 语句

有条件地从表中选取数据。

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

运算符

AND 和 OR 运算符

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

举个栗子 我需要查看user_id,user,password 的列,单独查找user_id为3并且user为1337,这里就需要用到AND运算符

select user_id,user,password from users where user_id = 3 and user = 1337;

如果我需要查看user_id,user,password 的列,单独查找 user_id 为 3 或者 user 为 admin,这里就需要用到OR运算符

select user_id,user,password from users where user_id = 3 or user = 'admin';

Limit 控制输出

select * from users limit 0,2;

## 0,2 的意思是只显示两行以此类推

MySQL注释符

注释符可以替换空格

select/*123*/* from users /*user*/
/* */ 在mysql中是多行注释 但是如果里面加了! 那么后面的内容会被执行  /*!/*!*/

内联注入

select/*123*/* from/*!users*/ 
/* */ 在mysql中是多行注释 但是如果里面加了! 那么后面的内容会被执行  /*!/*!*/

单行注释符后面加换行也是可以执行的

select * from #454654654
users;

MySQL基础

01、显示数据库 show databases;
02、打开数据库 use db_name;
03、显示数据表 show tables;
04、显示表结构 describe table_name;
05、显示表中各字段信息,即表结构 show columns from table_name;
06、显示表创建过程 show create table 表名;
07、列出当前mysql的相关状态信息 status;
08、删除数据库 drop database 数据库名;
09、清空数据表 delete from table_name; truncate table
table_name;
10、删除数据表 drop table table_name
11、数据库连接 mysql –uroot -proot
12、数据库退出 exit

MySQL系统表

  • information_schema
    在 MySQL中 ,把 information_schema 看作是一个数据库,确切说是信息数据库。
    其中保存着关于 MySQL 服务器所维护的所有其他数据库的信息。如数据库名,数据
    库的表,表栏的数据类型与访问权限等。
  • SCHEMATA 表:提供了当前mysql实例中所有数据库的信息。
    show databases的结果取之此表。
  • TABLES 表:提供了关于数据库中的表的信息。详细表述了某个表属于哪个
    schema,表类型,表引擎,创建时间等信息。
    show tables from schemaname的结果取之此表。
  • COLUMNS 表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信
    息。
    show columns from schemaname.tablename的结果取之此表。

数据库连接

# 格式 mysql -u 用户名 -p 密码 -h 主机地址
mysql –uroot -proot -h 127.0.0.1

以PHPstudy为例子,开启MySQL服务,在数据库里面查看用户名和密码,然后找到这个路径(我这边是这个路径,具体看个人的情况),通过以上命令格式进行数据库连接

D:\phpstudy_pro\Extensions\MySQL5.7.26\bin

列出当前 mysql 的相关状态信息

status;

显示数据库

show databases;

打开数据库

# 格式:use 数据库名;
use mysql;

显示数据表

show tables;

显示表结构

# 格式:describe 数据表名;
describe users;
# 格式:show columns from 数据表名;
show columns from users;

显示表创建过程

# 格式:show create table 表名;
show create table users;

清空数据表

# 格式:delete from 数据表名;
delete from test01;
# 格式:truncate table 数据表名;
truncate table test01;

删除数据表

# 格式:drop table 数据表;
drop table test01;

删除数据库

# 格式:drop database 数据库名;
drop database test;

退出数据库连接

exit
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web安全基础-SQL MySQL 的相关文章

  • 使用 Python 中的 SQL Server 存储过程 (pyodbc)

    我有一个存储过程 代码 DECLARE RC int DECLARE id varchar 13 DECLARE pw varchar 13 DECLARE depart varchar 32 DECLARE class varchar 1
  • SqlCommand 参数与 String.Format [重复]

    这个问题在这里已经有答案了 我一直在互联网上搜索 但似乎找不到任何可以解释我的问题的内容 可能是我没有使用正确的搜索字符串 所以我在这里发帖希望有人可以帮助我有了这个 我的程序是使用Visual Studio 2010用C 编写的 我注意到
  • 如何在sqlite中创建物化视图?

    我对物化视图和 SQLite 进行了无数次搜索 据我所知 2004 年和 2006 年似乎有人提到 SQLite 没有物化视图 紧随其后的是 SQLite 的变更日志2008年3月 http www sqlite org releaselo
  • 使用 WHILE 创建虚拟数据

    我尝试使用 a 在表中插入一些虚拟数据WHILE 但它运行得非常非常慢 我在想也许我写的代码不正确 你能看一下并确认一下吗 Insert dummy data DECLARE i int Content int SET i 5001 WHI
  • 将两行中相似的列数据合并到一行中

    我的查询结果具有以下特征 LIDCode Total Domain Region VSE Version AB02 15 GLOBAL CANLA 0 6943 AB02 5925 CENTRE STREET SW 31 GLOBAL CA
  • MySQL 存储过程将值分配给 select 语句中的多个变量

    这是我的存储过程 我在为声明的变量赋值时遇到问题 当我执行它时 插入和更新命令工作正常 但声明变量的值保持为 0 但我在数据库中有一些价值 我怎样才能正确地做到这一点 BEGIN DECLARE PaidFee INT DEFAULT 0
  • 在 MacOSX10.6 上运行 python 服务器时 MySQLdb 错误

    运行我的服务器 python manage py runserver 产生以下错误 django core exceptions ImproperlyConfigured 加载 MySQLdb 模块时出错 没有名为 MySQLdb 的模块
  • postgres 有 CLOSEST 运算符吗?

    我正在寻找这样的东西 给定一个表格 id number 1 7 2 1 25 3 1 01 4 3 0 查询SELECT FROM my table WHEREnumberCLOSEST 1 将返回第 3 行 我只关心数字 现在我有一个程序
  • TOAD 将 &String 视为绑定变量

    我正在使用 Oracle Data Integrator 开发一些 ETL 有时会使用 TOAD 测试部分代码 今天我遇到了 TOAD 的问题 我有一行像 AND column value like DEV PROD 当我尝试运行包含上面过
  • sql查询将两列与一列连接起来

    我在 MS Access 2010 中有 2 个表 如下所示 USERS u id u name LOAN l id l from ref users u id l to ref users u id l amount Users u id
  • 对于数据库来说,选择正确的数据类型会影响性能吗?

    如果是这样 为什么 我的意思是 tinyint 的搜索速度比 int 快吗 如果是这样 性能上的实际差异是什么 是的 根据数据类型 它确实有所不同 int vs tinyint不会在速度上产生明显的差异 但会在数据大小上产生差异 假设tin
  • 显示表 FULLTEXT 索引列

    我希望运行一个查询 该查询将返回表中全文索引的列列表 该表采用 MyISAM 格式 我将使用 php 来构建查询 理想情况下 我会运行查询 它会返回信息 以便我可以构造一个以逗号分隔的列字符串 例如 名 姓 电子邮箱 这在 MySQL 中可
  • 使用 Spark DataFrame 获取组后所有组的 TopN

    我有一个 Spark SQL DataFrame user1 item1 rating1 user1 item2 rating2 user1 item3 rating3 user2 item1 rating4 如何按用户分组然后返回TopN
  • 使用 MS Access 获取行的第一个实例

    EDITED 我有这个查询 我想SELECT表中记录的第一个实例petTable SELECT id pet ID FIRST petName First Description FROM petTable GROUP BY pet ID
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • MYSQL - 查找最近的前一天

    我可以以某种方式 不使用 PHP 找到一周中最近的前一天日期吗 Like 最近的上一个星期二的日期是哪一天 CURDATE INTERVAL WEEKDAY CURDATE wday IF WEEKDAY CURDATE gt wday 0
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询
  • mysql-如何向列申请补助?

    用户名 撤销对数据库的选择 Person I set GRANT SELECT id ON database Person TO username localhost 不是工作 gt SELECT secret FROM Person Go
  • 如何在 Laravel 查询中使用多个 OR,AND 条件

    我需要 Laravel 查询帮助 我的自定义查询 返回正确结果 Select FROM events WHERE status 0 AND type public or type private 如何写这个查询Laravel Event w
  • SQLite HAVING 比较错误

    我有一个测试 SQLite 表 用于存储带有值的报告数据 CREATE TABLE IF NOT EXISTS test fact daily revenue date TEXT revenue NUMERIC product TEXT I

随机推荐

  • UE Mesh Generation and Editing at Runtime

    UE Mesh Generation and Editing at Runtime 虚幻运行时和编辑器下生成和编辑 网格体 UE Mesh 虚幻中常用的三种网格体 UProceduralMeshComponent 程序化网格体 UStati
  • Java编写好的全国省市名称

    public class PlaceUtil public static final String place 北京市 市辖区 市辖县 天津市 市辖区 市辖县 安徽省 安庆市 蚌埠市 亳州市 巢湖市 池州市 滁州市 阜阳市 合肥市 淮北市
  • Tomcat设置虚拟主机时候startup闪退问题解决

    1 修改 startup bat 文件 将 call EXECUTABLE start CMD LINE ARGS 中的 start 改为 run 2 在 startup bat 文件的最后增加 pause 3 启动 tomcat 后相应错
  • 渗透学习 Linux基础知识

    你生来就值得被爱 这点你无需质疑 小白入坑学废集2 Linux 介绍 什么是Linux Linux系统结构 Linux常见发行版本 版本问题 磁盘分区表示 硬盘和分区结构 目录结构 目录名 Linux系统常用命令 命令行编辑的几个辅助操作
  • 力扣876. 链表的中间结点(java+python)

    给定一个头结点为 head 的非空单链表 返回链表的中间结点 如果有两个中间结点 则返回第二个中间结点 示例 1 输入 1 2 3 4 5 输出 此列表中的结点 3 序列化形式 3 4 5 返回的结点值为 3 测评系统对该结点序列化表述是
  • 【mysql系列】mysql安装和卸载详细教程

    mysql安装和卸载详细教程 一 安装 1 下载 2 安装 1 编辑 my ini 文件 2 初始化数据库 3 安装数据库 4 启动 mysql 服务 5 登录 mysql 数据库 6 更改密码 二 卸载 1 停止Mysql服务 2 卸载m
  • c 服务器信息 源代码,ftp服务器c源代码

    ftp服务器c源代码 内容精选 换一换 根据各功能的平台依赖性 需要分别准备两套环境 一套x86环境 一套鲲鹏环境 本文实际使用了如表1和表2两套环境 鲲鹏代码迁移工具是一款可以简化客户应用迁移到基于鲲鹏916 920的服务器的过程的工具
  • gta5因为计算机丢失xinput1,xinput1_3.dll_gta5丢失xinput1_3.dll_xinput1_3.dll win10

    xinput1 3 dll官方下载由起点下载免费提供 起点提供xinput1 3 dll官方下载 xinput1 3 dll是Microsoft DirectX for Windows的控制模块 当运行程序或者游戏时 系统弹出错误提示 找不
  • 【c语言】练手:一个简单的图书管理系统

    c语言 练手 一个简单的图书管理系统 最近在学习结构体和结构体指针等内容 为了巩固所学习的内容 于是写了一个简陋的图书管理系统 在敲代码过程中也遇到一些容易忽略的问题 于是记录下来 大家可以给给建议 核心功能主要有3个 录入书籍信息 打印书
  • Android 退出整个程序代码

    今天在网上看见个博客关于退出整个程序的 感觉不错 拿来分享学习 SysApplication这个类复制到工程里面 然后在每个Acitivity的oncreate方法里面通过SysApplication getInstance addActi
  • layui table 字体大小_layui table表格详解

    上次做table有些东西 忘记了 这次当作来个分析总结一下 跟大家共同学习 闲话不多说 直接上例子 代码 layuitable初始化代码 layui use table function var table layui table tabl
  • Https 公钥私钥交换过程

    记录一下Https 公钥私钥加密过程 对称加密 编 解码使用相同密钥的算法 一般是共享密钥 非对称加密 非对称加密算法需要两个密钥 公开密钥 publickey 简称公钥 和私有密钥 privatekey 简称私钥 公钥与私钥是一对 如果用
  • 滤波去噪和小波去噪

    原文 http zhidao baidu com linkurl 7vqgj2oQ4MacZxGLdJXM lTCDdW3TrY6hbeInWeW7NWgcCFjO8qHbbm0U8lONrAanc6BQR7WwJB0GRzgZXZQLK
  • 【云原生&Docker基础篇】Docker的安装与使用(适用于初学者)

    博客首页 派 大 星 欢迎关注 点赞 收藏 留言 本文由派大星原创编撰 系列专栏 Docker 云原生 本系列记录容器化技术的初次探险与深入思考历程 如有描述有误的地方还望诸佬不吝赐教 文章目录 Docker 是什么 Docker的优点 D
  • 机械硬盘分区 最佳性能方案

    原理 机械硬盘的通过磁头读写数据 由于角速度恒定 磁头越靠近外圈 扫描的扇区越多 读写速度越快 3个磁盘分区方案 假设 磁盘半径r 10 内层半径r1 2 5 中层半径r2 5 外层半径r3 7 5 内层面积 s1 r2xr2 r1xr1
  • Android APP 与STM32无线环境控制系统

    本系统为安卓APP的环境参数远程监控系统 以STM32F103单片机作为本设计的中控中心 结合物联网技术 以Android智能手机作为远程控制的客户端 通过8266 WiFi模块实现环境监控系统硬件与Android手机的交互 环境参数的反馈
  • Android学习——MultiAutoCompleteTextView组件

    1 编辑activity main xml文件 添加MultiAutoCompleteTextView组件
  • unity3d 5 GUI Texture不显示原因分析

    Unity5添加GUI组件game视图无显示可能原因如下 1 Transform position应该为0 1之间为屏幕占比 2 scale大小比例 3 如果用系统自带的第一人称控制器 组件中不包括GUI层 因此应该在添加组件中Render
  • WSL2使用cuda

    在微软最新发布的 Windows Insider 预览版本中 WSL2 获得了 GPU 计算支持 这意味着 Linux 二进制文件可以利用 GPU 资源 在 WSL 中进行机器学习 AI 开发或是数据科学等工作 微软在今年五月份的 Buil
  • Web安全基础-SQL MySQL

    文章目录 SQL简介 数据库简介 SQL语句 SELECT 语句 INSERT INTO 语句 Delete语句 Update 语句 Order by 语句 Where 语句 运算符 Limit 控制输出 MySQL注释符 MySQL基础