web学习笔记(五十二)数据库

news2024/11/19 18:39:56

目录

1. 数据库的相关概念

1.1 什么是数据库

1.2 常见数据库的分类

1.3 传统型数据库的数据组织结构

1.4 补充

2.  使用 SQL 管理数据库

2.1 什么是 SQL?

2.2 SQL 能做什么

2.3  SQL 的 SELECT 语句

2.4  SQL 的 INSERT INTO 语句

2.5  SQL 的 UPDATE 语句

2.6  SQL 的 DELETE 语句

2.7  SQL 的 WHERE 子句

2.8  SQL 的 AND 和 OR 运算符 

2.9  SQL 的 ORDER BY 子句

 2.10  SQL 的 COUNT(*) 函数

3.  在node中使用mysql的步骤

4.  使用 mysql 模块操作 MySQL 数据库进行增删改查的操作 

4.1 查询数据

4.2 插入数据

4.3 更新数据

4.4 删除数据 


1. 数据库的相关概念

1.1 什么是数据库

       数据库(database)是用来组织、存储和管理数据的仓库。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。为了方便管理互联网世界中的数据,就有了数据库管理系统的概念(简称:数据库)。用户可以对数据库中的数据进行新增、查询、更新、删除等操作。

1.2 常见数据库的分类

传统性数据库(关系型数据库 或 SQL 数据库):MySQL(目前使用最广泛、流行度最高的开源免费数据库;Community + Enterprise)、Oracle(收费)、SQL Server(收费)。

新型数据库(非关系型数据库 或 NoSQL 数据库):Mongodb 数据库(Community + Enterprise)。

1.3 传统型数据库的数据组织结构

    数据的组织结构:指的就是数据以什么样的结构进行存储。传统型数据库的数据组织结构,与 Excel 中数据的组织结构比较类似。在传统型数据库中,数据的组织结构分为数据库(database)、数据表(table)、数据行(row)、字段(field)这 4 大部分组成。我们通常使用phpStudy 提供运行MySQL的运行环境,再用Navicat for MySQL来存储和管理数据。

1.4 补充

  • DataType数据类型:init整数 varchar 字符串 tinyint 布尔值
  • pk表示主键,是唯一标识。
  • NN 值不允许为空
  • 索引类型选择UQ(unique)表示值唯一,索引方法可以选择btree
  • AI值自动增长

2.  使用 SQL 管理数据库

2.1 什么是 SQL?

      SQL(英文全称:Structured Query Language)是结构化查询语言,SQL 是一门数据库编程语言。专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,操作数据库里面的数据。使用 SQL 语言编写出来的代码,叫做 SQL 语句。SQL 语言只能在关系型数据库中使用(例如 MySQL、Oracle、SQL Server)。非关系型数据库(例如 Mongodb)不支持 SQL 语言

2.2 SQL 能做什么

  • 从数据库中查询数据
  • 向数据库中插入新的数据
  • 更新数据库中的数据
  • 从数据库删除数据
  • 可以创建新数据库
  • 可在数据库中创建新表
  • 可在数据库中创建存储过程、视图
  • etc…

2.3  SQL 的 SELECT 语句

       SELECT 语句用于从表中查询数据。执行的结果被存储在一个结果表中(称为结果集)。SQL 语句中的关键字对大小写不敏感。SELECT 等效于 select,FROM 等效于 from。

(1) *表示选中表中所有列

SELECT * FROM user
--user表示表名

(2 ) 若需要选取某一列的内容可以直接将列名写入,如果需要选中多列,那么列名之间需要用逗号隔开

SELECT username,pwd FROM user
--user表示表名

2.4  SQL 的 INSERT INTO 语句

 INSERT INTO 语句用于向数据表中插入新的数据行,语法格式:INSERT INTO user (列名一,列名二,列名三)VALUES(值一,值二,值三)

INSERT INTO user (username,pwd,status)VALUES('andi','111',1)

2.5  SQL 的 UPDATE 语句

Update 语句用于修改表中的数据。语法格式如下:

 UPDATE users set pwd='888888',status=1  WHERE id=2;

2.6  SQL 的 DELETE 语句

DELETE 语句用于删除表中的行。 DELETE from 表名 WHERE 筛选条件;

 DELETE from users WHERE id=4;

2.7  SQL 的 WHERE 子句

WHERE 子句用于限定选择的标准。在 SELECT、UPDATE、DELETE 语句中,皆可使用 WHERE 子句来限定选择的标准,WHERE 子句通常搭配一些运算符来使用,下面是一些常用运算符。

--  where 子句  查询 status =1 的用户
SELECT * FROM users  WHERE status=1;

--   where 子句  查询 id >2的所有用户

SELECT * FROM users  WHERE id>2;


-- where 子句  查询 username<>'Tom'的所有用户    !=

SELECT * FROM users  WHERE username<>'Tom';

2.8  SQL 的 AND 和 OR 运算符 

  • AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
  • AND 表示必须同时满足多个条件,相当于 JavaScript 中的 && 运算符,例如 if (a !== 10 && a !== 20)
  • OR 表示只要满足任意一个条件即可,相当于 JavaScript 中的 || 运算符,例如 if(a !== 10 || a !== 20)
-- 使用 AND 来显示所有 status 为 0,并且 id 小于 3 的用户:

SELECT * FROM  users WHERE status=0 AND id<3;

-- 使用 OR 来显示所有 status 为 1,或者 username 为 Jack 的用户:

SELECT * FROM users WHERE status=1 OR username='Jack';

2.9  SQL 的 ORDER BY 子句

  • ORDER BY 语句用于根据指定的列对结果集进行排序。
  • ORDER BY 语句默认按照升序对记录进行排序,也可以在后面加上 ASC 关键词来升序。
  • 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
-- 对 users 表中的数据,按照 status 字段进行升序排序

SELECT * FROM users ORDER BY status  ASC;

-- 对 users 表中的数据,按照 id 字段进行降序排序,
SELECT * FROM users ORDER BY id DESC;
-- ORDER BY 子句 – 多重排序
-- 对 users 表中的数据,先按照 status 字段进行降序排序,再按照 username 的字母顺序,进行升序排序
SELECT * from users ORDER BY status DESC,username ASC;

 2.10  SQL 的 COUNT(*) 函数

COUNT(*) 函数用于返回查询结果的总数据条数,也可以搭配WHERE关键字来使用,也可以使用AS来增加别名。

--  SQL 的 COUNT(*) 函数    返回总数据条数    别名  AS
 SELECT count(*) from users;

 SELECT count(*) AS total  from users;

3.  在node中使用mysql的步骤

1. 安装 mysql 模块

mysql 模块是托管于 npm 上的第三方模块。它提供了在 Node.js 项目中连接和操作 MySQL 数据库的能力。我们要想在项目中使用它,需要先运行如下命令,将 mysql 安装为项目的依赖包:

npm install mysql

2. 配置 mysql 模块

在使用 mysql 模块操作 MySQL 数据库之前,必须先对 mysql 模块进行必要的配置,主要的配置步骤如下:

3.  测试 mysql 模块能否正常工作

调用 db.query() 函数,指定要执行的 SQL 语句,通过回调函数拿到执行的结果:

4.  使用 mysql 模块操作 MySQL 数据库进行增删改查的操作 

4.1 查询数据

4.2 插入数据

向表中新增数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速插入数据:

4.3 更新数据

更新表数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速更新表数据:

4.4 删除数据 

在删除数据时,推荐根据 id 这样的唯一标识,来删除对应的数据。示例如下:

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

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

相关文章

MySQL批量插入,如何判断重复

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 需要把其他库或者E…

PyQt6实战6--高亮

PyQt6实战3--sql查询器-CSDN博客 在sql查询器的基础上添加了sql语法的高亮 运行效果&#xff1a; 代码&#xff1a; 只需要在原来的代码上添加一行 rightTopLayout QVBoxLayout()rightTopLayout.addWidget(QLabel("输入sql:"))self.sql QTextEdit() #加一行高亮&…

清明假期作业

1、实现文件夹的拷贝功能 注意判断被拷贝的文件夹是否存在&#xff0c;如果不存在则提前 不考虑递归拷贝的问题 #include<myhead.h> int my_copy(char* name,const char *p) {char buf[256]"./";strcat(buf,p);strcat(buf,"/");strcat(buf,name);in…

文件夹批量重命名,高效翻译支持中文转日语,轻松管理文件

在信息爆炸的时代&#xff0c;我们每天都在与大量的文件打交道。你是否曾为如何高效管理这些文件而苦恼&#xff1f;是否曾在中文与日语文件之间转换时感到无助&#xff1f;今天&#xff0c;我要为大家介绍一款神奇的工具——文件批量改名高手&#xff0c;它能帮助你批量重命名…

【C++】map set 底层刨析

文章目录 1. 红黑树的迭代器2. 改造红黑树3. map 的模拟实现4. set 的模拟实现 在 C STL 库中&#xff0c;map 与 set 的底层为红黑树&#xff0c;那么在不写冗余代码的情况下使用红黑树同时实现 map 与 set 便是本文的重点。 1. 红黑树的迭代器 迭代器的好处是可以方便遍历&…

二季度必胜!创维汽车季度营销会议探索未来新可能

总结旧岁月&#xff0c;开启新篇章。2024年4月2日&#xff0c;创维汽车召开“向死而生&#xff0c;破茧成蝶”季度营销会议。本次会议总结复盘了一季度营销团队的工作并对即将到来的二季度进行了规划部署。创维集团、创维汽车创始人黄宏生先生&#xff0c;创维汽车总裁&#xf…

算法——链表(1)

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享链表专题的第一部分 如果有不足的或者错误的请您指出! 1.链表常用技巧总结 1.1引入虚拟头结点 在力扣上,基本提供的链表题目都是"无头的",但是针对无头链表,我们最…

C语言-预定义符号

编译和链接&#xff08;基础速通版&#xff09;-CSDN博客https://blog.csdn.net/Jason_from_China/article/details/137182220 预定义符号 包含 C语⾔设置了⼀些预定义符号&#xff0c;可以直接使⽤&#xff0c;预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的…

C++从入门到精通——初步认识面向对象及类的引入

初步认识面向对象及类的引入 前言一、面向过程和面向对象初步认识C语言C 二、类的引入C的类名代表什么示例 C与C语言的struct的比较成员函数访问权限继承默认构造函数默认成员初始化结构体大小 总结 前言 面向过程注重任务的流程和控制&#xff0c;适合简单任务和流程固定的场…

R155/R156:汽车网络安全新法规快速指南

R155/R156:汽车网络安全新法规快速指南 随着国际机构进入网络安全领域,制定法规、标准和指南,公众在其使用的车辆中享受更好的网络安全保护指日可待。随着时间的推移,车辆网络安全将不断发展以应对不断变化的网络威胁。 欧洲经济委员会 (ECE) 的 R155 和 R156 法规旨在应…

Day30 线程安全之窗口售票问题(含代码)

Day30 线程安全之窗口售票问题&#xff08;含代码&#xff09; 一、需求&#xff1a; 铁道部发布了一个售票任务&#xff0c;要求销售1000张票&#xff0c;要求有3个窗口来进行销售&#xff0c; 请编写多线程程序来模拟这个效果&#xff08; 注意&#xff1a;使用线程类的方式…

数据库 06-04 恢复

01 一.事务故障 二.系统 三.磁盘 02. 重点是稳定存储器 组成

【IEEE STD 1801】——Introduction

Introduction 本标准的目的是提供便携、低功耗的设计规范&#xff0c;这些规范可以在整个电子系统设计、分析、验证和实现流程中与各种商业产品一起使用。 当电子设计自动化(EDA)行业在20世纪80年代开始创建用于指定、仿真和实现数字电子电路的功能规范的标准时&#xff0c;主…

当下鸿蒙开发热潮,大前端开发有没有必要搞!!!

鸿蒙到底好不好&#xff1f;要不要搞&#xff1f; Android开发反正目前工作感觉也不好找&#xff0c;即便是上海这样的大城市也难搞&#xff0c;人员挺饱和的。而且年前裁员的公司那么多&#xff0c;再看自己&#xff0c;年龄不是优势&#xff1b;技术不是优势&#xff0c;想想…

DHCP-PXE

Dynamic Host Configuration Protocol 动态主机配置协议 1.Selinux 调试为Permission 防火墙配置 搭建DHCP的主机必须有一个静态地址&#xff0c;提前配置好 安装DHCP软件 服务名为dhcpd DHCP地址分配四次会话&#xff0c; DISCOVERY发现 OFFER 提供 REQUEST 回应 A…

PHP实现nginxPhp错误日志提取统计工具(路径+错误行+报错信息+次数排序)

粘贴PHP错误日志内容(NGINX 下PHP网站错误日志)。 作用:提取PHP Warning/Notice:路径错误行报错信息按出现次数排序。 以上已满足本人自己LNMP环境的调试需求&#xff0c;其他环境自己评估是否可用。 <?php //整理与分享&#xff1a;yujianyue<15058593138qq.com> $…

国家开放大学电大《钢结构》形考任务答案

电大搜题 多的用不完的题库&#xff0c;支持文字、图片搜题&#xff0c;包含国家开放大学、广东开放大学、超星等等多个平台题库&#xff0c;考试作业必备神器。 公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#x…

腾讯云-域名注册购买实名流程

1&#xff0c;注册并完成实名腾讯云账号 账号实名认证和后续要完成的域名实名认证应为同一主体单位。否则域名实名会不通过 参考链接 腾讯云账号实名 – 易极赞自助建站 2&#xff0c;进入腾讯云域名注册购买地址 推荐购买com&#xff0c;cn&#xff0c;net主流域名&#xf…

LabVIEW深度学习

目录 一、配置环境1.1、显卡选择1.2、下载显卡驱动1.3、下载并安装Anaconda1.4、配置Anaconda软件包下载服务器1.5、配置虚拟环境tf_gpu1.6、安装vscode1.7、安装tensorflow1.8、下载安装Git1.9、安装TensorFlow Object Detection API框架1.10、安装依赖的python软件包1.11、配…

Centos7下docker安装jenkins【使用docker-compose图文教程】

个人记录 前置条件&#xff1a;安装Docker与Docker-compose Centos7安装Docker与Docker-compose【图文教程】 查看jenkins最新的版本 https://www.jenkins.io/download/ 配置docker-compose.yml vim docker-compose.yml按i进行编辑模式&#xff0c;粘贴如下内容。把image里…