MYSQL基础知识之【添加数据,查询数据】

文章目录

  • 前言
  • MySQL 插入数据
    • 通过命令提示窗口插入数据
    • 使用PHP脚本插入数据
  • MySQL 查询数据
    • 通过命令提示符获取数据
    • 使用PHP脚本来获取数据
    • 内存释放
  • 后言

前言

hello world欢迎来到前端的新世界


😜当前文章系列专栏:Mysql
🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,感谢大家指出)🌹
💖感谢大家支持!您的观看就是作者创作的动力

MySQL 插入数据

MySQL 表中使用 INSERT INTO SQL语句来插入数据。

你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据

语法
以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法:

INSERT INTO table_name ( field1, field2,...fieldN )VALUES( value1, value2,...valueN );

如果数据是字符型,必须使用单引号或者双引号,如:“value”。

通过命令提示窗口插入数据

以下我们将使用 SQL INSERT INTO 语句向 MySQL 数据表 w3cschool_tbl 插入数据

实例
以下实例中我们将向 w3cschool_tbl 表插入三条数据:

root@host# mysql -u root -p password;
Enter password:*
mysql> use W3CSCHOOL;
Database changed
mysql> INSERT INTO w3cschool_tbl ->(w3cschool_title, w3cschool_author, submission_date)->VALUES->("Learn PHP", "John Poul", NOW());
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO w3cschool_tbl->(w3cschool_title, w3cschool_author, submission_date)->VALUES->("Learn MySQL", "Abdul S", NOW());
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO w3cschool_tbl->(w3cschool_title, w3cschool_author, submission_date)->VALUES->("JAVA Tutorial", "Sanjay", '2007-05-06');
Query OK, 1 row affected (0.01 sec)
mysql>

注意: 使用箭头标记(->)不是SQL语句的一部分,它仅仅表示一个新行,如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写SQL语句,SQL语句的命令结束符为分号(;)。

在以上实例中,我们并没有提供 w3cschool_id 的数据,因为该字段我们在创建表的时候已经设置它为 AUTO_INCREMENT(自动增加) 属性。 所以,该字段会自动递增而不需要我们去设置。实例中 NOW() 是一个 MySQL 函数,该函数返回日期和时间。

使用PHP脚本插入数据

你可以使用PHP 的 mysql_query() 函数来执行 SQL INSERT INTO命令来插入数据。

该函数有两个参数,在执行成功时返回 TRUE,否则返回 FALSE。

语法

bool mysql_query( sql, connection );

在这里插入图片描述
实例
以下实例中程序接收用户输入的三个字段数据,并插入数据表中:

<?php
if(isset($_POST['add'])){
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){die('Could not connect: ' . mysql_error());
}if(! get_magic_quotes_gpc() ){$w3cschool_title = addslashes ($_POST['w3cschool_title']);$w3cschool_author = addslashes ($_POST['w3cschool_author']);
}
else{$w3cschool_title = $_POST['w3cschool_title'];$w3cschool_author = $_POST['w3cschool_author'];
}
$submission_date = $_POST['submission_date'];$sql = "INSERT INTO w3cschool_tbl "."(w3cschool_title,w3cschool_author, submission_date) "."VALUES "."('$w3cschool_title','$w3cschool_author','$submission_date')";
mysql_select_db('W3CSCHOOL');
$retval = mysql_query( $sql, $conn );
if(! $retval ){die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
}
else{
Tutorial Title
Tutorial Author
Submission Date [ yyyy-mm-dd ]
Add Tutorial
}
?>

在我们接收用户提交的数据时,为了数据的安全性我们需要使用 get_magic_quotes_gpc() 函数来判断特殊字符的转义是否已经开启。如果这个选项为off(未开启),返回0,那么我们就必须调用addslashes 这个函数来为字符串增加转义。

你也可以添加其他检查数据的方法,比如邮箱格式验证,电话号码验证,是否为整数验证等。

MySQL 查询数据

MySQL 数据库使用SQL SELECT语句来查询数据。

你可以通过 mysql> 命令提示窗口中在数据库中查询数据,或者通过PHP脚本来查询数据。

语法
以下为在MySQL数据库中查询数据通用的 SELECT 语法:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  • SELECT 命令可以读取一条或者多条记录。
  • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
  • 你可以使用 WHERE 语句来包含任何条件。
  • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
  • 你可以使用 LIMIT 属性来设定返回的记录数。

通过命令提示符获取数据

以下实例我们将通过 SQL SELECT 命令来获取 MySQL 数据表 w3cschool_tbl 的数据:

实例
以下实例将返回数据表w3cschool_tbl的所有记录:

root@host# mysql -u root -p password;
Enter password:*******
mysql> use W3CSCHOOL;
Database changed
mysql> SELECT * from w3cschool_tbl; 
+-------------+----------------+-----------------+-----------------+
| w3cschool_id | w3cschool_title | w3cschool_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|           1 | Learn PHP      | John Poul       | 2007-05-21      |
|           2 | Learn MySQL    | Abdul S         | 2007-05-21      |
|           3 | JAVA Tutorial  | Sanjay          | 2007-05-21      |
+-------------+----------------+-----------------+-----------------+
3 rows in set (0.01 sec)mysql>

使用PHP脚本来获取数据

使用PHP函数的mysql_query()及SQL SELECT命令来获取数据。

该函数用于执行SQL命令,然后通过 PHP 函数 mysql_fetch_array() 来使用或输出所有查询的数据。

mysql_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有 返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。

以下实例为从数据表 w3cschool_tbl 中读取所有记录。

实例
尝试以下实例来显示数据表 w3cschool_tbl 的所有记录。

<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT w3cschool_id, w3cschool_title,w3cschool_author, submission_dateFROM w3cschool_tbl';mysql_select_db('W3CSCHOOL');
$retval = mysql_query( $sql, $conn );
if(! $retval ){die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)){echo "Tutorial ID :{$row['w3cschool_id']}  "."Title: {$row['w3cschool_title']} "."Author: {$row['w3cschool_author']} "."Submission Date : {$row['submission_date']} "."--------------------------------
";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?>

以上实例中,读取的每行记录赋值给变量$row,然后再打印出每个值。

注意: 记住如果你需要在字符串中使用变量,请将变量置于花括号。

在上面的例子中,PHP mysql_fetch_array()函数第二个参数为MYSQL_ASSOC, 设置该参数查询结果返回关联数组,你可以使用字段名称来作为数组的索引。

PHP提供了另外一个函数mysql_fetch_assoc(), 该函数从结果集中取得一行作为关联数组。 返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。

实例
尝试以下实例,该实例使用了mysql_fetch_assoc()函数来输出数据表w3cschool_tbl的所有记录:

<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT w3cschool_id, w3cschool_title,w3cschool_author, submission_dateFROM w3cschool_tbl';
mysql_select_db('W3CSCHOOL');
$retval = mysql_query( $sql, $conn );
if(! $retval ){die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_assoc($retval)){echo "Tutorial ID :{$row['w3cschool_id']}  "."Title: {$row['w3cschool_title']} "."Author: {$row['w3cschool_author']} "."Submission Date : {$row['submission_date']} "."--------------------------------
";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?>

你也可以使用常量 MYSQL_NUM 作为PHP mysql_fetch_array()函数的第二个参数,返回数字数组。

实例
以下实例使用MYSQL_NUM参数显示数据表w3cschool_tbl的所有记录:

<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT w3cschool_id, w3cschool_title,w3cschool_author, submission_dateFROM w3cschool_tbl';mysql_select_db('W3CSCHOOL');
$retval = mysql_query( $sql, $conn );
if(! $retval ){die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM)){echo "Tutorial ID :{$row[0]}  "."Title: {$row[1]} "."Author: {$row[2]} "."Submission Date : {$row[3]} "."--------------------------------
";
}
echo "Fetched data successfully\n";
mysql_close($conn);
?>

以上三个实例输出结果都一样。

内存释放

在我们执行完SELECT语句后,释放游标内存是一个很好的习惯。 可以通过PHP函数mysql_free_result()来实现内存的释放。

以下实例演示了该函数的使用方法。

实例
尝试以下实例:

<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT w3cschool_id, w3cschool_title,w3cschool_author, submission_dateFROM w3cschool_tbl';mysql_select_db('W3CSCHOOL');
$retval = mysql_query( $sql, $conn );
if(! $retval ){die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM)){echo "Tutorial ID :{$row[0]}  "."Title: {$row[1]} "."Author: {$row[2]} "."Submission Date : {$row[3]} "."--------------------------------
";
}
mysql_free_result($retval);
echo "Fetched data successfully\n";
mysql_close($conn);
?>

后言

创作不易,要是本文章对广大读者有那么一点点帮助 不妨三连支持一下,您的鼓励就是博主创作的动力

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

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

相关文章

【c++】——类和对象(下) ——内存管理

作者:chlorine 专栏:c专栏 目录 &#x1f4bb; C/C内存分布 &#x1f4bb;C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free ​编辑 &#x1f4bb;C内存管理方式 &#x1f449;new/delete操作内置类型 &#x1f449;new和delete操作自定义类型 &#x1f…

VSCode 警告:v-on event ‘@toggleClick‘ must be hyphenated

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

Android flutter this and base files have different roots

类似经历者 Android build fails with certain plugins if project is in a different drive (from sdk) 错误描述 我是windows系统&#xff0c;下载 flutter sdk 我是放在D盘&#xff0c;flutter项目是放在E盘&#xff0c;flutter 执行 pub get的时候&#xff0c;会在我C盘…

HCIA-RS基础-距离矢量路由协议

前言&#xff1a; 动态路由协议根据寻径方式可以分为距离矢量路由协议和链路状态路由协议。本文将详细介绍距离矢量路由协议的原理&#xff0c;并阐述其中一个重要概念——路由环路&#xff0c;同时介绍如何避免路由环路的方法。通过学习本文&#xff0c;您将能够深入理解距离矢…

开拓新天地:探讨数位行销对医药产业医病连结的影响

数字营销模式多元&#xff0c;主要围绕医生和患者。赛道各企业凭借各自优势&#xff08;技术、学术、流量等&#xff09;入局&#xff0c;提供各自差异化营销工具或服务。目前&#xff0c;围绕医生的数字营销旨在为医生提供全面学术解决方案从而提升对医药产品的认可&#xff0…

STK Components 二次开发-创建卫星

1.卫星数据 可以用stk 里面自带的 参数帮助文档。 也可以自己下载 CelesTrak: Current GP Element Sets 这里你所需要的最新卫星数据全有。 其实创建需要的就是卫星的二根数。 给定二根数也可以。 读取数据库中的卫星数据 这个接口优先下载最新的。 var tleList TwoL…

kotlin 内置函数对数组进行各种操作

以下是一些常见的用法示例&#xff1a; plus() 函数将两个数组合并成一个数组。plus() 函数是 Kotlin 标准库中的一个扩展函数&#xff0c;可以用于合并两个同类型的数组。 fun main() {val array1 arrayOf(1, 2, 3)val array2 arrayOf(4, 5, 6)val mergedArray array1.plu…

Ps:拾色器 - 选取专色

在 Adobe 拾色器中&#xff0c;可点击“颜色库” Color Libraries按钮来选取专色。 首先在色库 Book列表中选择对应的色库&#xff0c;然后在中间的色相条中选择需要的样本组&#xff0c;再从左侧颜色列表中选取颜色。 可以直接键入颜色名称来选择。比如&#xff0c;键入 13&am…

0001Java程序设计-springboot基于微信小程序批发零售业商品管理系统

文章目录 **摘 要****目录**系统实现开发环境 编程技术交流、源码分享、模板分享、网课分享 企鹅&#x1f427;裙&#xff1a;776871563 摘 要 本毕业设计的内容是设计并且实现一个基于微信小程序批发零售业商品管理系统。它是在Windows下&#xff0c;以MYSQL为数据库开发平台…

使用主成分分析之特征向量法求点云法向量

1. 原理简述 我们知道主成分分析会得到特征值、特征向量,最大的特征值及其对应的特征向量则为主成分,表示数据分布的主方向。 最小特征值对应的特征向量则可以认为是空间点云的法向量。 2. 代码实现 //in_cloud为点云,center为点云质心 Eigen::Vector3d normal(const PC…

C#,《小白学程序》第八课:列表(List)其二,编制《高铁列车时刻表》与时间DateTime

1 文本格式 /// <summary> /// 车站信息类 class /// </summary> public class Station { /// <summary> /// 编号 /// </summary> public int Id { get; set; } 0; /// <summary> /// 车站名 /// </summary&g…

物联网AI 无线连接学习之蓝牙基础篇 协议的发展

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 蓝牙由来 “蓝牙”&#xff08;Bluetooth&#xff09;原是一位在10世纪统一丹麦的国王哈拉尔 (HaralBluetooth)&#xff0c;他将当时的瑞典、芬兰与丹麦统一起来。而将“蓝牙”与后来的无线通讯技术标准关联…

2023年第十六届中国系统架构师大会(SACC2023)-核心PPT资料下载

一、峰会简介 本届大会以“数字转型 架构演进”为主题&#xff0c; 涵盖多个热门领域&#xff0c;如多云多活、海量分布式存储、容器、云成本、AIGC大数据等&#xff0c;同时还关注系统架构在各个行业中的应用&#xff0c;如金融、制造业、互联网、教育等。 与往届相比&#…

点云从入门到精通技术详解100篇-基于深度学习的语义分割与室内稠密点云地图研究

目录 前言 国内外点云建图构建与语义分割研究现状 2传感器及神经网络基本概念

c++ 栈空间 堆空间

1 栈空间 int main() {Subclass1 subclass1;subclass1.xFunction();return 0; } 这种情况下,subclass1对象会直接在栈空间上创建,而不会在堆空间上动态分配。 但是这种栈上创建的对象有一定的限制: 1. 栈空间内存有限,对象过大可能会栈溢出 2. 出了作用域后对象会被自动销毁 3…

使用Ruby过滤目录容量大小

实际使用的&#xff0c;显示大于某种容量的目录或文件。 #encoding:utf-8input STDIN.read input.lines.each do |line|num line.gsub(/^([0-9\.])G.*$/,"\\1")if num.to_i > ARGV[0].to_iputs lineend end使用如下命令运行&#xff1a; $ du -hs * 2>/dev…

CSIT883系统分析与项目管理——Lecture3重点概念

一、前言 🎊🎊🎊关于如何计算NPV的方式在另外一篇博文哦,写的非常详细!感兴趣的同学强烈推荐去看看哦 二、重点概念 1.净现值(NPV)分析是一种计算项目的预期净货币收益或损失的方法贴现所有预期未来现金流入和流出当前时间点(“1”“>”1明天”(通货膨胀))…

基于ncurse实现的俄罗斯方块

1. 需求分析 方块的类型方块的变形方块的消除方块的存储方块的移动接受用户的输入 2. 概要设计 2.1 方块类型与变形 一共有七种&#xff0c;变换的方式如下。变换后的任意形状方块实际上可以存在一个4x4的矩阵中。 我们再压一下位&#xff0c;就可以存在16位中。 2.2 方块…

常用脚本-持续更新(文件重命名、视频抽帧、拆帧、删除冗余文件、yolo2xml、转换图片格式、修改xml)

所有代码位置&#xff1a;Learning-Notebook-Codes/Python/常用脚本 1. 文件重命名 脚本路径&#xff1a;codes/files_rename.py脚本说明&#xff1a;可以自动重命名某个文件夹下指定类型的文件。 修改前文件名称: img1.jpg修改后文件名称: Le0v1n-20231123-X-0001.jpg imp…

笔试编程题--打家劫舍

你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。给定一个代表每个房屋存放金额的非…