数据库
RDBMS 关系型数据库,核心是以二维表存储数据 (重点)
一、SQL语言
ctrl+/ 注释
ctrl+shift+/ 取消注释

1、数据表操作01创建表creat table 表名(
字段名 类型 约束
字段名 类型 约束
.......
)
例:创建学生表,字段要求如下
姓名(长度为10)
create table stu(
name varchar(10)
)
姓名(长度为10),年龄
create table stu(
name varchar(10),
age int unsigned
)
姓名(长度为10),年龄,身高(保留小数点两位)主键
creat table stu2(
id int unsigned primary key auto_increment,
name varchar(10),
age int unsigned,
height decimal(5,2)02删除表drop table 表名      注:如果存在则删除,如果不存在则报错
drop table if exists 表名    注:如果存在就删除,不存在也不报错03如果存在先删除再创建drop table if exists stu2;        注:多条语句要用分号分隔
creat table stu2(
id int unsigned primary key auto_increment,
name varchar(10),
age int unsigned,
height decimal(5,2)2、数据操作-增删改查01添加数据insert into 表名 values(.....);
insert into 表名 values(.....);
.......                          注:0,default null 用来占位
用法:
例:输入一个学生,设置所有字段的信息
insert into stu2 values(0,'亚瑟',20,123.1);
insert into stu2 values(null,'亚瑟1',20,123.1);
insert into stu2 values(default,'亚瑟2',20,123.1)
例:输入一个学生,设置指定字段信息
多条语句插入多个数据
insert into stu2(name,age) values('鲁班1',20);
insert into stu2(name,age) values('鲁班2',20);
insert into stu2(name,age) values('鲁班3',20)
一条语句插入多个数据
insert into stu2(name,age) values('鲁班4',20),('鲁班5',20),('鲁班6',20)02修改数据update 表名 set 列1=值1,列2=值2....where 条件
例:修改id为5的数据,改age为18,name为狄仁杰
update stu2 set age=18,name=狄仁杰 where id=5 03删除数据delete from 表名 where 条件
例:delete from stu2 where id=504查询
select * from 表名04逻辑删除001设计表,给表添加新的字段isdelete,1代表删除,0代表没被删除
002把所有isdelete值都设置为0
update stu2 set isdelete=0                 1是被删,0是没被删
003要删除某一条数据时,把他的isdelete更新为1update stu2 set isdelete=1 where id=1
004当要查询数据时,只查询isdelete为0的数据
SELECT * from stu2 where isdelete=005数据查询 (重点)创建数据表
drop table if exists students;
create table students (
studentNo varchar(10) primary key,
name varchar(10),
sex varchar(1),
hometown varchar(20),
age tinyint(4),
class varchar(10),
card varchar(20)
)
准备数据
insert into students values
('001', '王昭君', '女', '北京', '20', '1班', '340322199001247654'),
('002', '诸葛亮', '男', '上海', '18', '2班', '340322199002242354'),
('003', '张飞', '男', '南京', '24', '3班', '340322199003247654'),
('004', '白起', '男', '安徽', '22', '4班', '340322199005247654'),
('005', '大乔', '女', '天津', '19', '3班', '340322199004247654'),
('006', '孙尚香', '女', '河北', '18', '1班', '340322199006247654'),
('007', '百里玄策', '男', '山西', '20', '2班', '340322199007247654'),
('008', '小乔', '女', '河南', '15', '3班', null),
('009', '百里守约', '男', '湖南', '21', '1班', ''),
('010', '妲己', '女', '广东', '26', '2班', '340322199607247654'),
('011', '李白', '男', '北京', '30', '4班', '340322199005267754'),
('012', '孙膑', '男', '新疆', '26', '3班', '340322199000297655')查询表select * from 表名    *代表所有列查询多个字段select name,sex,hometown from 表名
select name as 姓名,sex as 性别,hometown 家乡 from 表名     as代表别名去重select  distinct 列名 from 表名
例:查询学生的性别有哪几种(sex形同的去重)
select  distinct sex from students
例:sex和class都一样的去重
select distinct sex,class from students比较运算(条件查询)
=,>,<,>=,<=,!=(<>)
例:查询小乔的年龄
select age from students where name='小乔'
例:查询20岁以下的学生
select * from students where age<20
例:查询家乡不在北京的学生
select * from students where hometown!='北京'
select * from students where hometown<>'北京'     <> 也是不等于的意思(相当于!=)逻辑运算and,or,not
例:年龄小于20的女同学
select * from students where age<20 and sex='女'
例:查询女学生或1班的学生
select * from students where class='1班' or sex='女'
例:查询非天津的学生
select * from students where hometown!='天津'
select * from students where not hometown='天津'模糊查询like
%表示任意多个任意字符
_表示一个任意字符例:查询孙姓学生
select * from students where name like '孙%'
例:查询姓孙且名字是一个字的学生
select * from students where name like '孙_'
例:查询以乔结尾的学生
select * from students where name like '%乔'
例:查询姓名含白的学生
select * from students where name like '%白%'例:查询姓名两个字的学生
select * from students where name like '__ '范围查询in表示在一个非连续的范围内
例1:查询家乡是北京或上海或广东的学生
select * from students where hometown in('北京','上海','广东')
between ... and ...表示在一个连续的范围内
例2:查询年龄为18至20的学生
select * from students where age between 18 and 20空判断注意:null与''是不同的 判空is null
例1:查询没有填写身份证的学生
select * from students where card is null    相当于把卷子扔了
select * from students where card=''         相当于交白卷
判非空is not null
例2:查询填写了身份证的学生
select * from students where card is not null排序为了方便查看数据,可以对数据进行排序 语法:
select * from 表名 order by 列1 asc|desc,列2 asc|desc,...
将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推 默认按照列值从小到大排列 asc从小到大排列,即升序 desc从大到小排序,即降序
例1:查询所有学生信息,按年龄从小到大排序
select * from students order by age
例2:查询所有学生信息,按年龄从大到小排序,年龄相同时,再按学号从小到大排序
select * from students order by age desc,studentNo
中文排序
例:name排序
select * from students order by convert(name using gbk)聚合函数为了快速得到统计数据,经常会用到如下5个聚合函数 count(*)表示计算总行数,括号中写星与列名,结果是相同的 聚合函数不能在 where 中使用
例1:查询学生总数
select count(*) from students;
max(列)表示求此列的最大值
例2:查询女生的最大年龄
select max(age) from students where sex='女';
min(列)表示求此列的最小值
例3:查询1班的最小年龄
select min(age) from students;
sum(列)表示求此列的和
例4:查询北京学生的年龄总和
select sum(age) from students where hometown='北京';
avg(列)表示求此列的平均值
例5:查询女生的平均年龄
select avg(age) from students where sex='女'
练习:
1、查询所有学生的最大年龄、最小年龄、平均年龄
select max(age) as 最大年龄,min(age) as 最小年龄,avg(avg) as平均年龄 from students分组按照字段分组,表示此字段相同的数据会被放到一个组中 分组后,分组的依据列会显示在结果集中,其他列不会显示在结果集中 可以对分组后的数据进行统计,做聚合运算
语法:
select 列1,列2,聚合... from 表名 group by 列1,列2...
例1:查询各种性别的人数
select sex,count(*) from students group by sex
例2:查询各种年龄的人数
select age,count(*) from students group by age
练习
查询各个班级学生的平均年龄、最大年龄、最小年龄
select  class,avg(age),max(age),min(age) from students group by class
查询多个字段相同的分组数
例:name和sex都相同分组求和
select  class,sex count(*) from students group by class,sex分组后过滤语法:
select 列1,列2,聚合... from 表名 group by 列1,列2,列3... having 列1,...聚合...
having后面的条件运算符与where的相同
例1:查询男生总人数
方案一 select count(*) from students where sex='男'
方案二: select sex,count(*) from students group by sex having sex='男'
练习:
查询1班除外其他班级学生的平均年龄、最大年龄、最小年龄
先过滤在分组
select class,avg(age),max(age),min(age) from students where not class='1班' group by class
先分组再过滤
select class,avg(age),max(age),min(age) from students group by class having class!='1班'获取部分行当数据量过大时,在一页中查看数据是一件非常麻烦的事情 语法
select * from 表名 limit start,count
从start开始,获取count条数据 start索引从0开始
例1:查询前3行学生信息
select * from students limit 0,3
练习
查询第4到第6行学生信息分页已知:每页显示m条数据,求:显示第n页的数据
select * from students limit (n-1)*m,m
求总页数 (select count(*)from students)
查询总条数p1 使用p1除以m得到p2 如果整除则p2为总数页 如果不整除则p2+1为总页数
练习:
每页显示5条数据,显示每一页的数据
select * from students limit 0,5     (n-1)*m,m
select * from students limit 5,5
select * from students limit 10,5
注:
select * from students limit 7相当于select * from students limit 0,7连接查询-等值查询select * from 表1,表2 where 表1.列=表2.
例:查询学生信息及学生成绩
select * from students,scores where students.studentNo=scores.studentNo
注:此方式会产生笛卡尔积,生成的记录总数=表1总数*表2总数,会产生临时表连接查询-内连接不会产生笛卡尔积,不会产生临时表,性能高(优先使用这种查询)
select * from 表1 inner join 表2 on 表1.列=表2.列
例:查询学生信息及学生成绩
select * from students
inner join scores on students.studentNo=scores.studentNo

软件测试:数据库笔记(1)相关推荐

  1. 【软件测试】软件测试学习笔记(一)

    文章目录 一.软件测试基础 1.1.软件概述 1.1.1.软件生命周期 1.1.2.软件开发模型 1.1.2.1.瀑布模型 1.1.2.1.1.瀑布模型的特点 1.1.2.1.2.瀑布模型的优缺点 1 ...

  2. 数据库笔记: SQL

    1 数据库语言 DBMS提供操作命令和语言,使用户能够对数据库进行各式各样的操作,例如查询.增.删.改数据,定义.修改数据模式等 --- >这就构成了用户和数据库的接口. DBMS所提供的语言一 ...

  3. 软件测试学习笔记(九)淘宝测试

    软件测试学习笔记(九)淘宝测试 视频链接:软件测试_中国大学MOOC 1.淘宝性能测试经历哪三个发展阶段?简述其工作内容. (1)业务发展-基础阶段 编写性能测试白皮书和测试文档,整理了常用性能测试的 ...

  4. postgreSql数据库笔记

    postgreSql数据库笔记 1.pg创建序列: SELECT nextval('seq_bsm' :: regclass) as XH;//查询序列值 //创建序列 CREATE SEQUENCE ...

  5. 软件测试学习笔记与思考(1)---软件测试基础

    这学期开始学习软件测试,课本是软件测试(慕课版)郑炜,刘文兴,杨喜兵,王文鹏,吴潇雪主编的. 本来没有打算写相关博客的,但是在做课后习题时想到做测试必然少不了思考,从不同的角度分析,于是就打算用博客来 ...

  6. 【数据库笔记】高性能MySQL:chapter 5 创建高性能的索引

    文章目录 前置知识 5.0 引言 5.1 索引基础 1. 索引的类型 B-Tree 索引 哈希索引 空间数据索引(R-Tree) 全文索引 5.2 索引基础 5.3 高性能的索引策略 1. 独立的列 ...

  7. 软件测试学习笔记(三)控制数据流测试

    软件测试学习笔记(三)控制&数据流测试 视频链接:软件测试_中国大学MOOC 2.3 结构化覆盖 2.4 控制流测试 2.5 数据流测试 1.什么是顶点覆盖? 对每个测试需求,即可达顶点,都可 ...

  8. 达内oracle教材,达内学习心得oracle数据库笔记

    达内学习心得oracle数据库笔记 达内学员: oracle 数据库笔记获奖学员:王梓祺所获奖项:三等奖内容:/*前言:这份资料是结合老师笔记,课堂案例, TTS6.0 课件以及个人的理解整理,时间仓 ...

  9. 【数据库笔记04】(表间建立联系,多表查询)

    [数据库笔记04](表间建立联系) 如何联系表 多表之间的关系怎么维护? 多表之间的建表原则 多表查询 交叉连接查询 (笛卡儿积) 内链接 隐式内链接 显式内链接 -- INNER JOIN--ON ...

  10. 【数据库笔记】Spark 小点汇总

    Reference:https://www.cnblogs.com/yanshw/category/1605447.html?page=2 大数据-Spark(29)栏目 0 大数据基本架构 可参见: ...

最新文章

  1. 连接远程服务器CredSSP加密Oracle修正报错解决办法
  2. 142. 前缀统计【trie】
  3. Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver
  4. 别再抱怨 TensorFlow2.0 辣鸡了,会了是“真香”
  5. Symbian手记【三】 —— Symbian的描述符
  6. scrapy里的selector,不能有正则提取
  7. DEDE常见的错误(转)
  8. bootstrap datetimepicker 初始化及取值
  9. Android---------------ContentProvider的学习
  10. Object-C 语法 字符串 数组 字典 和常用函数 学习笔记
  11. 日志管理工具 journalctl用法
  12. 关于PMSM的弱磁与MTPA结合控制超详细分析
  13. 【自动驾驶】如何利用深度学习搭建一个最简单的无人驾驶系统
  14. Unity中的进度条(内含计数器)
  15. 重磅榜单 | 国内云服务企业估值50强,【友盟+】位列其中。
  16. 如何用大数据做行为预测的?
  17. 成功解决TypeError: Value passed to parameter 'paddings' has DataType float32 not in list of allowed valu
  18. 访问时发生了共享冲突是什么意思_【CUDA 基础】5.1 CUDA共享内存概述
  19. 【双评价】城镇建设指向的水资源评价
  20. 智能仓储管理解决方案

热门文章

  1. iOS 输出打印双引号
  2. 数据猿专栏专家张涵诚:从技术到生态构建,云计算棋局越来越大,该如何成功落地?...
  3. 适用于C/C++开发人员的HOOPS
  4. RR级别下的GAP锁范围
  5. delimiter mysql_详解 Mysql中的delimiter定义及作用
  6. 商城项目---day07---列表页和搜索接口的实现
  7. FullCalendar增加节气、节日和农历显示
  8. v-ray设置许可服务器信息,[教程] V-ray参数设置讲解(一)
  9. Linux mkfs命令详解
  10. 保险公司数据信息机房,运维难度指数级增加?