测试需要掌握的数据库sql知识(一):基本语句操作

简介: 测试需要掌握的数据库sql知识(一):基本语句操作

一、前期准备


1.安装Navicat Mysql或navicat Premium

2.安装mysql(若有公司测试服务器地址可以不安装直连测试数据库即可)

3.打开navicat连接mysql服务

20210719152724532.png

20210719152751596.png

4.打开navicat连接,创建一个数据库(无须考虑字符集、排序规则为什么要这样填写,测试不需要了解,可自行私下了解)

20210719135341490.png

5.我们需要准备一些班级数据和学生数据,在创建的数据库中新建一个查询


20210719135901655.png


6.粘贴如下sql


SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for class
-- ----------------------------
DROP TABLE IF EXISTS `class`;
CREATE TABLE `class`  (
  `id` int(11) NOT NULL,
  `class_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `created` datetime(6) NOT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of class
-- ----------------------------
INSERT INTO `class` VALUES (1, '一班', '2021-07-17 13:40:30.000000');
INSERT INTO `class` VALUES (2, '二班', '2021-07-18 13:40:48.000000');
INSERT INTO `class` VALUES (3, '三班', '2021-07-19 13:40:48.000000');
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `id` int(11) NOT NULL,
  `created` datetime(6) NOT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `class_id` int(11) NOT NULL,
  `gender` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `height` int(3) NOT NULL,
  `weight` int(3) NOT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES (1, '2021-07-19 13:42:35.000000', '张顺', 1, 'male', 170, 65);
INSERT INTO `student` VALUES (2, '2021-07-19 13:42:35.000000', '张玲', 1, 'female', 170, 65);
INSERT INTO `student` VALUES (3, '2021-07-19 13:42:35.000000', '李广', 2, 'male', 180, 68);
INSERT INTO `student` VALUES (4, '2021-07-19 13:42:35.000000', '李三四', 2, 'female', 170, 65);
INSERT INTO `student` VALUES (5, '2021-07-19 13:42:35.000000', '赵云', 3, 'male', 199, 100);
INSERT INTO `student` VALUES (6, '2021-07-19 13:42:35.000000', '马超', 3, 'female', 171, 66);
INSERT INTO `student` VALUES (7, '2021-07-19 13:42:35.000000', '诸葛亮', 3, 'male', 170, 65);
INSERT INTO `student` VALUES (8, '2021-07-19 13:42:35.000000', '刘备', 3, 'male', 202, 105);
INSERT INTO `student` VALUES (9, '2021-07-19 13:42:35.000000', '曹操', 3, 'male', 181, 80);
INSERT INTO `student` VALUES (10, '2021-07-19 13:42:35.000000', '黄忠', 2, 'female', 166, 50);
SET FOREIGN_KEY_CHECKS = 1;

7.按图中操作

20210719140026147.png


8.点击目录的表名可查看到创建的数据

20210719140115255.png

6.两张表的结构

class表字段(列)说明

1.id:班级id(唯一)

2.class_name:班级名称

3:created:创建班级的时间

student表字段(列)说明

1.id:学生id(唯一)

2.name:学生名称

3:created:创建学生的时间

4:class_id:所属班级,与班级id做关联

5.gender:学生性别

6.height:学生身高

7.weight:学生体重


二、增删改查数据(下列的Sql无须区分大小写)


1.增加数据(INSERT INTO)

语法:INSERT INTO 表名 VALUES (‘表字段名1’,‘表字段名2’,.....);

例如我们想新增一条班级id为4,班级名称为“自建一班”,创建时间为“2021-07-19 13:40:30.000000”的数据就可以这样写

20210719140322126.png

刚插入的数据


20210719140433898.png


2.删除数据(delete和truncate)


2.1 delete

语法:DELETE FROM 表名 WHERE 字段名 = 值

例如我们想删除刚刚创建的班级数据,我们知道刚刚创建的班级数据它的id为4,名称为自建一般,那我们可以有如下两种写法

DELETE FROM class WHERE id=4;
DELETE FROM class WHERE class_name='自建一班';


2.2 truncate

语法:truncate 表名

例如我们想删除所有班级数据,则可以这样写


truncate class;


它会把班级表的所有数据都删除掉

20210719141747417.png

2.3drop(删表)

语法:drop 表1名,表2名,...;

例如我们想删除class表和student表,则可以这样写


DROP TABLE class,student;


他会把两张表全部删除掉

删除后,记得重新执行步骤一第6步的sql,为后续教程的数据做准备

2.4delete、truncate、drop的区别

简单来说:

drop用于删表(表中数据会全部删除,无法回滚),delete和truncate用于删除表中的数据(delete也可删表)。通过delete删除的数据可以回滚,而truncate删除的则不能。

他们的级别为:drop>truncate>delete

delete操作不会减少表或索引所占用的空间,truncate会将占用的恢复至初始大小。

举个例子:如果设置了自增id,有id为1、2、3的三条数据,如果通过delete全部删除后,下次插入的数据如果没有指定id的话,那它的id会为4

如果通过truncate删除这三条数据的话,那它的id会为1


3.修改数据(update)


语法:update 表名 set 字段名=值

例如我们想把三班的名称改为“自建三班”,则可以这样写


UPDATE class set class_name='自建三班' WHERE id=3


就可以把三班的名称改为“自建三班”,如果没有带where id=3则所有的班级名称都会变为“自建三班”


4.查询数据


语法:SELECT 字段名1,字段名2,... FROM 表名

4.1例如我想查学生的姓名和性别,则可以这样写


20210719144048558.png


4.2如果想查学生的全部信息那sql字段名处可以用*号代替


SELECT * from student;


查询结果

20210719144226366.png

4.3只想查性别为男的学生信息,可以这样写


SELECT * from student where gender='male';


20210719144511495.png


4.4 查询姓张的女同学


SELECT * from student where `name` like '张%' and gender='female';


查询结果


20210719144648406.png


本期为大家介绍了sql基本的增删改查语句,下篇博文会为大家分享排序查询、分组查询、连接查询相关知识!

目录
相关文章
|
3月前
|
SQL 机器学习/深度学习 人工智能
从“写SQL”到“聊数据”:NL2SQL如何用自然语言解锁数据库?
本文系统性地阐述了自然语言转SQL(NL2SQL) 技术如何让非技术背景的业务分析师实现数据自助查询,从而提升数据驱动决策的效率与准确性。
从“写SQL”到“聊数据”:NL2SQL如何用自然语言解锁数据库?
|
2月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
356 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
1月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
182 6
|
2月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
2月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
2月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
281 8
|
3月前
|
SQL 人工智能 Java
用 LangChain4j+Ollama 打造 Text-to-SQL AI Agent,数据库想问就问
本文介绍了如何利用AI技术简化SQL查询操作,让不懂技术的用户也能轻松从数据库中获取信息。通过本地部署PostgreSQL数据库和Ollama模型,结合Java代码,实现将自然语言问题自动转换为SQL查询,并将结果以易懂的方式呈现。整个流程简单直观,适合初学者动手实践,同时也展示了AI在数据查询中的潜力与局限。
427 8
|
3月前
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
261 5
|
2月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
|
4月前
|
SQL 缓存 监控
SqlRest让SQL秒变Http API,还支持20+数据库(含国产数据库)
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。