测试基础——数据库及数据库表的SQL操作(了解即可)

news2025/7/12 7:33:33

目录

1.数据库基础概念

2.SQL介绍

3.MySQL介绍

4.数据库连接工具Navicat

5.数据类型

6.约束

7.对数据库操作的SQL语句

7.1创建数据库

7.2使用/打开/切换数据库

7.3修改数据库

7.4删除数据库

7.5查看所有数据库

7.6数据库备份

8.数据库表操作的SQL语句

8.1创建数据库表

8.2查看表结构

8.3 删除数据库表

9.表记录操作的SQL语句

9.1插入数据

9.2修改字段值

9.3删除数据


1.数据库基础概念

  • 数据库是典型的软件服务器,保存项目中产生数据的程序。
  • 表是数据库中存储数据的基本单位。
  • 注意:对于测试工作而言,如果项目页面没有实现,我们想要校验数据,可以直接查询数据库实现。
  • 数据库分类:关系型数据库(RDMS,Relational Database Management System,关系型数据库管理系统)、非关系型数据库。关系型数据库有表的概念,例如Oracle(在大型项目中使用,银行、电信等项目)、MySQL(Web项目中使用最广泛)、Microsoft SQL Server(在微软项目中使用)、PostgreSQL、Microsoft  Assess、SQLite(轻量数据库,主要应用在移动平台);非关系型数据库没有表的概念。如果软件末尾有"Lite"字样,表示软件是轻量化的。
  • 关系型数据库的核心要素:数据行(一条记录)、数据列(一个字段)、数据表(数据行的集合)、数据库(数据表的集合)。
  • 非关系型数据库:将数据以key,value、文本、图片等形式进行存储的数据库,例如Redis、MongoDB。

2.SQL介绍

  • SQL全称Sructured Query Language(结构化查询语言),主流的关系型数据库都支持通过SQL语言进行操作。
  • SQL语言分类:DQL(数据查询语言,对数据进行查询,如select,对于测试来讲查询最重要)、DML(数据操作语言,对数据进行增加、修改、删除,如insert、update、delete)、DCL(数据控制语言,对数据库进行授权和权限回收,如grant、revoke)、DDL(数据定义语言,进行数据库、表的管理,如create、drop)。
  • 注意:对于MySQL而言,SQL语句不区分大小写,凡是大写的一般不是自己写的,是自动生成的。

3.MySQL介绍

  • MySQL属于Oracle旗下产品,MySQL社区版是免费使用的,而Oracle是收费的商用版。
  • 特点:社区版免费、多平台(Windows、Linux、macOS都能用)、多语言(Java、Python都能与其交互)、适用范围广泛、是学习数据库开发和使用的首选。
  • MySQL2008年被Sun公司收购,Sun公司又被Oracle收购,MySQL原来的开发者重新开发了一个MariaDB软件。

4.数据库连接工具Navicat

  • 由于数据库软件处于服务器中,想要操作数据库就必须使用远程工具连接数据库后进行操作。
  • Navicat是最常用的工具。
  • 想要远程连接服务器的数据库,需要有数据库所在服务器的IP地址和数据库的端口号(默认是3306),向相关人员获取数据库的用户名和密码,使用数据库连接工具连接数据库即可,远程连接需要注意网络的连通性。
  • 注意:1.数据库连接名用于区分多个数据库。2.默认存在的数据库不能随意使用。3.数据库名不要写中文。4.字符集负责中文乱码问题,选utf8,排序规则选utf8-general-ci。5.需要先把数据清空,再去设计表,否则可能会报错。

5.数据类型

  • 整数:int,有符号取值范围-2147483648~2147483647,无符号unsigned取值范围0~4294967295。
  • 小数:decimal,decimal(5,2)表示共存5位数,其中2位是小数,3位是整数。
  • 字符串:varchar,范围为0~65533,varchar(3)表示最多存3个字符,一个中文字或一个字母都占一个字符。不涉及到数基本都是字符串。
  • 日期时间:datetime,范围1000-01-01 00:00:00~9999-12-31 23:59:59。

6.约束

  • 主键(primary key)用于保证数据库表中每一条数据的顺序是固定的,不会由于删除或增加数据而导致数据乱序。设为主键的同时会设为非空,一般是自动递增的,且无符号,一般一张表有且只有一个主键。
  • 非空(not null):设置字段内数据必须有值,不能为空。
  • 唯一(unique):当前字段内的数据不允许有重复值。在Navicat中在"索引"中设置唯一。
  • 默认值(default):当前字段不填写值就自动填上默认值,如果填写就以填写的值为准,如果默认值为字符串,必须加引号"XXX"。
  • 外键(foreign key):一个表中的一个字段是另一个表的主键。

7.对数据库操作的SQL语句

7.1创建数据库

  • 创建数据库语法:create database 数据库名 [charset=字符编码] [collate=检验规则] ;

例如:

  •  查看数据库语法:show create database 数据库名;
  • 注意:如果查询窗口有多条SQL语句,需要先选中某条语句之后选择“运行选中语句”。

7.2使用/打开/切换数据库

  • 使用/打开/切换数据库的语法:use 数据库名;
  • 查看当前使用的数据库:select database();
  • 注意:database()是SQL的内置函数,括号不能省略。

7.3修改数据库

  • 修改数据库的语法:alter database [数据库名] [dafault] character set<字符集名> [default] collate<校对规则名>;

例如:

7.4删除数据库

  • 删除数据库的语法:drop database 数据库名;

7.5查看所有数据库

  • 查看所有数据库的语法:show databases;

7.6数据库备份

  • 在测试工作中,为了防止对数据库产生错误操作或产生垃圾数据,都需要在操作前对数据库进行适当的备份操作。垃圾数据:例如在自动化测试过程中,对注册模块操作生成的所有数据,应该清理。
  • 在数据库上,右键,选择转储SQL文件,一种是仅结构,一种是结构+数据。仅结构就是字段,结构+数据就是字段+数据,一般情况下,选择结构+字段。自定义存储路径,修改备份文件,存储即可。在数据库上,右键,选择运行SQL文件,选择备份的SQL文件,点击开始,运行成功SQL文件后,数据恢复。
  • 命令行方式连接数据库的SQL语句:mysql -u数据库用户名 -p 数据库密码,u表示username,p表示password。mysql>模式下仅支持SQL语句。
  • 备份数据库的SQL语句:mysqldump -u数据库用户名 -p 数据库名 > 备份文件名.sql,并根据提示输入数据库密码。
  • 恢复数据库的SQL语句:mysql -u数据库用户名 -p 数据库名 < 备份文件名.sql,并根据提示输入数据库密码。

8.数据库表操作的SQL语句

8.1创建数据库表

  • 创建数据库表的语法:
drop table if exists 表名;
create table 表名(
  字段名 类型 约束,
  字段名 类型 约束,
  ...
);
  • 例如:
  • 约束包括:unsigned(无符号)、primary key(主键)、auto_increment(自动增长)、not null(非空)。
  • 通过Navicat工具获取创表语句的方法有两种:1.选择表->选右边栏->选DDL;2.show create table 表名;

8.2查看表结构

  • 查看表结构的语句:desc 表名;

8.3 删除数据库表

  • 删除表的语句:drop table 表名;
  • 作用:数据和字段均删除不再存在。

9.表记录操作的SQL语句

9.1插入数据

  • 增加一行数据的语句:1.所有字段设置值,值的顺序与表中字段的顺序对应:insert into 表名 values(...);2.部分字段设置值,值的顺序与给出的字段顺序对应:insert into 表名(字段1,...) values(值1,...);
  • 注意:主键字段自动增加,插入时需要占位,通常使用0来占位。
  • 增加多行数据的语句:1.写多条insert语句,语句之间用分号隔开:insert into 表名(...) values(...);insert into 表名(...) values(...);insert into 表名(...) values(...);...;;2.写一条insert语句,设置多条数据,数据之间用英文逗号分开:insert into 表名(...) values(...),(...),(...);

9.2修改字段值

  • 修改字段值的语句:update 表名 set 列1=值1,列2=值2,列3=值3,... where 条件;
  • 注意:where不能省略,否则会修改整列数据。

9.3删除数据

  • 删除数据的语句:delete from 表名 where 条件;
  • 注意:对于重要的数据,不能轻易执行delete操作删除,因为一旦删除这些数据就无法恢复,这时可以逻辑删除数据。逻辑删除(又叫假删除)就是通过某一指定字段的特定值表示数据是删除或被删除的状态。
  • 删除表的所有数据保留表结构的语句:truncate table 表名;或者delete from 表名;这两种方式的区别是后者只是删除数据,但是不重置主键字段的计数,而前者会重置主键字段的计数。

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

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

相关文章

VisualSFM的配置与使用 MeshLab的网格生成与纹理添加

前言 本实验环境如下&#xff1a; VisualSFM版本V0.5.26 MeshLab版本2022.02 操作系统Windows10&#xff0c;64bit 0 VisualSFM配置 0.1 下载 VisualSFM下载链接&#xff1a;VisualSFM : A Visual Structure from Motion System Cmvs-Pmvs下载链接&#xff1a;GitHub -…

[附源码]SSM计算机毕业设计郑工校园二手交易平台网站JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

有限自动机字符串匹配

上一篇文章正则表达式&#xff0c;提到正则表达式是一种用来表示有限自动机所接受单词组合的语言&#xff0c;那么什么是有限自动机呢&#xff0c;以及它是如何进行字符串匹配的&#xff0c;下面来做详细介绍 什么是有限自动机 目前程序上利用不同的编程语言通过正则表达式进…

泰勒公式理解

文章目录1&#xff1a;一元泰勒展开公式2&#xff1a;二元泰勒展开公式3&#xff1a;二元函数的黑塞矩阵4&#xff1a;多元函数的黑塞矩阵其他链接1&#xff1a;一元泰勒展开公式 举例&#xff1a;f(x) 3x 2x 5 在x0或x1处的泰勒展开 当x0时&#xff1a; 当x1时&#xff…

cadence orcad capture tcl/tk脚本开发

Orcad是一个很优秀的原理图工具&#xff0c;orcad支持tcl/tk开发&#xff0c;介绍一下当前本人开发的脚本工具&#xff0c;可用于提高硬件工程师的画图效率。 环境准备 将压缩包解压到C盘&#xff08;注意一定要C盘根目录下&#xff09;&#xff0c;C:\Tcltk。如下图所示将上图…

Selector的使用

文章目录Selector 的使用1.直接使用2. Scrapy Shell3.XPath 选择器4.CSS选择器5.正则匹配Selector 的使用 我们之前介绍了利用Beautiful Soup、pyquery 以及正则表达式来提取网页数据的方法&#xff0c;确实非常方便。不过Scrapy提供了自己的数据提取方法&#xff0c;即内置的…

[附源码]java毕业设计社区志愿者服务系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

传输中的差错检验技术

差错检验 在网络传输过程数据难免会产生错误&#xff0c;需要使用差错检验技术进行纠错&#xff0c;可靠传输技术避免错误的发生 1 术语 比特差错 误码率BER 差错检验码 2 奇偶校验&#xff08;不会采用&#xff09; 在待发送的数据后面添加1位奇偶校验位&#xff0c;使整…

MyBatis基于XML的详细使用-参数、返回结果 处理

1、参数的取值方式 在xml文件中编写sql语句的时候有两种取值的方式&#xff0c;分别是#{}和${}。 注意:这里推荐使用#{}的方式,可以有效的防止sql注入问题。 2、select的参数传递 1.单个参数&#xff1a; 不管多少个参数最好在参数前加上param注解,为其取一个别名 2.多个参数…

[网络工程师]-传输层协议-TCP拥塞控制

TCP拥塞控制的概念是&#xff1a;每个源端判断当前网络中有多少可用容量&#xff0c;从而知道它可以安全完成传送的分组数。拥塞控制解释防止过多的数据注入网络&#xff0c;避免网络中间设备&#xff08;路由器、交换机等&#xff09;过载而发生拥塞。拥塞控制是一个全局性的过…

数据结构系列学习(九) - 循环队列(Circular_Queue)

目录 引言&#xff1a; 学习&#xff1a; 循环队列设计背景&#xff1a; 利用顺序表的思维对队列进行探讨&#xff1a; 解决方案的思考&#xff1a; 循环队列中循环的体现&#xff1a; 循环队列的要点&#xff1a; 第一个难点&#xff1a; 第二个难点&#xff1a; 第三…

Verilog 显示任务($display, $write, $strobe, $monitor)

Verilog 中主要用以下 4 种系统任务来显示&#xff08;打印&#xff09;调试信息&#xff1a;$display, $write, $strobe, $monitor。 $display $display 使用方法和 C 语言中的 printf 函数非常类似&#xff0c;可以直接打印字符串&#xff0c;也可以在字符串中指定变量的格…

7. 微服务之Docker自动化部署

7.1 Docker 介绍 Docker 是一个快速交付应用、运行应用的技术&#xff1a; 可以将程序及其依赖、运行环境一起打包为一个镜像&#xff0c;可以迁移到任意Linux操作系统运行时利用沙箱机制形成隔离容器&#xff0c;各个应用互不干扰启动、移除都可以通过一行命令完成&#xff…

华清远见:驱动点灯第N回目

1.在串口工具进行输入&#xff1a; echo 1 > /dev/myled0 ---->led1灯点亮 echo 0 > /dev/myled0 ---->led1灯熄灭 echo 1 > /dev/myled1 ---->led1灯点亮 echo 0 > /dev/myled1 ---->led1灯熄灭 echo 1 > /dev/myled2 ---->led1灯点亮 ec…

力扣刷题day52|84. 柱状图中最大的矩形

文章目录84. 柱状图中最大的矩形思路动态规划单调栈84. 柱状图中最大的矩形 力扣题目链接 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 1: …

空间域图像增强处理-含Labview程序

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、领域图像增强实例分析✳️ 2.1 线性滤波实例分析✳️ 2.2 非线性滤波实例分析✳️ 2.3 Canny边缘检测✳️ 三、Labview程序获取✳️ 一、引言 图像在其采集或传递过程中常会受到各种噪声的影响&#xff0c;这会导致其中包含的重要信息很…

忘机工尺谱 - 快速打谱软件

引言 为了实现高效快速打谱&#xff0c;我实现了一种词谱分离的输入方案&#xff0c;解决了当前工尺谱平台打谱过程频繁切换输入法和频繁点击鼠标等问题&#xff0c;大大提高了打谱效率。同时借鉴了Markdown编辑器”所见即所得“的思想&#xff0c;输入的同时可以见到排版后的…

java线程控制

java线程控制的语法很多 这里我们主要说以下三个方法 我们先新建一个包 包下建立两个类 customException 线程类 参考代码如下 public class customException extends Thread {public String name;public customException(){}public void run(){for(int i 0;i < 100;i)…

逆变器电力计量仪表可安装在分布式光伏运维云平台、光伏变电站

安科瑞 李可欣 1、概述 AcrelCloud-1200分布式光伏运维云平台通过监测光伏站点的逆变器设备&#xff0c;气象设备以及摄像头设备、帮助用户管理分散在各地的光伏站点。主要功能包括&#xff1a;站点监测&#xff0c;逆变器监测&#xff0c;发电统计&#xff0c;逆变器一次图&…

解决找不到依赖项的问题(根源直接解决)

&#xff08;文章最后&#xff0c;我会介绍一个万能解决方法&#xff09; 问题&#xff1a; 原因&#xff1a; &#xff08;1&#xff09;可能是你的本地仓库里没有该依赖项。 &#xff08;2&#xff09;如果有的话&#xff0c;可能是没有更新同步到idea 解决方法&#xff1…