测试学习Day07

摘要

数据库相关知识、SQL语句


一、数据库

1、数据库储阶段发展

人工管理阶段->文件系统阶段->数据库阶段

2、关系型和非关系型数据库

  • 关系型数据库:表格方式(oracle、mysql、SQLite)

  • 非关系型数据库:键值对展示(redis、mongodb、hbase)

3、数据库要素

  • 数据行:记录

  • 数据列:字段

  • 数据表:数据行的集合

  • 数据库:数据表的集合

4、SQL介绍

结构化查询语言

5、连接MySQL数据库

mysql -h数据库IP -P端口号 -u数据库登录用户 -p数据库登录密码

退出 exit

6、数据类型和约束

  • 常见类型:整数、小数、字符串、时间日期

  • 小数 decimal(5,2)字段可以存五位小数占2位

  • 数据约束:

  • 主键:只能有一个字段是

  • 某个字段设为主键后,该字段值必须唯一,且不为空

  • 主键的字段,可以设定自动自增,自动在原来ID加1

  • 非空:不允许空 空(Null)和''空字符不一样

  • 唯一:此字段值不允许重复

  • 默认值:不填写的时候使用默认值

  • 外键:维护两个表关联关系

7、命令行操作数据库

注意每句后面要有分号,才算结束。

8、总结

二、SQL语句

  1. 创建数据库表

create table 表名(字段1 类似 约束,....);

  1. 删除数据库表

drop table 表名;

  1. 数据操作

  1. 简单查询

select * from 表名

  1. 增加一条数据

  • insert into 表名 values(...)

  • insert into 表名 (字段1,字段2,...)values(值1,值2)

  • 主键自增长可以用0或null代替

  1. 数据更新

  1. 增加多条数据

  • 方法一:通过多条insert语句来插入多条数据

insert into 表名 values(字段值1,字段值2....);

inert into 表名 (字段名1,字段名2....) values(字段值1,字段值2...);

  • 方法二:一条insert 语句来插入多条数据

insert into 表名 values(字段值1,字段值2....),(字段值1,字段值2....);

  1. 修改数据

update 表名 set 字段名1=字段值1,字段名2=字段值2.... where 条件

  1. 删除数据

  • delete

  • delete from 表名 where 条件

  • 补:逻辑删除

  • truncate 数据删除表结构仍存在

  • truncate table 表名

  • 自增长字段的值会从1开始

  • drop 删除表(数据和表结构都被删除

  1. 查询操作

  1. 查询的基本操作

  • 查询部分字段的值

  • select 字段名1,字段名2.... from 表名

  • 取别名

  • 给表

  • select * from 表名 as 别名

  • 给字段

  • select 字段名1 as 别名1,字段名2 as 别名2 ... from 表名

  • 去重(针对相同的字段的值最终只显示一个,其他的值都会被去除)

  • select distinct 字段名1,字段名2.. from 表名

  • select distinct sex from students(根据性别去重)

  1. (重点)条件查询

  • select * from 表名 where 条件

  1. 比较运算符
  • <、>、>=、<=、!=、<>(不等于)、=

  1. 逻辑运算符
  • and、or、not(非)

  1. 模糊查询
  • like 关键字

  • %:任意个字符

  • _:单个字符

  1. 范围查询
  • in :查询一个非连续的范围

  • between ... and ... :

  1. 为空判断
  • is null 表示判断为空

  • is not null 表示判断不为空

  1. 排序

  • select * from 表名 order by 字段名1 asc |desc,字段名2 asc|desc ....

  • asc表示升序排序,默认的排序为升级,所有asc可以不写

  • desc表示降序排序

  1. 分组和聚合

  1. 聚合函数

  • select 聚合函数1,聚合函数2 .... from 表名

  • 不能在where中使用,用来数据统计

  • count()--记录总数、max(字段名)、min(字段名)、sum(字段名)--求和、avg(字段名)

  1. 分组查询

  • select * from 表名 group by 字段名1,字段名2....

  • 分组筛选

  • select * from 表名 group by 字段名1,字段名2.... having 条件

  • having和where一样,但可以使用聚合函数。where是对原始数据筛选。having是对分组后的数据进行筛选。

  1. 分页查询

  • select * from 表名 limit start,count

  • start表示的是查询的数据从第几行开始。(索引从0开始)

  • count表示要查询出来的记录的条数

  • select * from 表名 limit (n-1)*m, m

  • n是页数

  • m每页显示多少条记录

  1. 连接查询

  1. (重点)内连接

  • select * from 表1 as 别名1 inner join 表2 as 别名2 on 表1.列=表2.列

  • 查询出来的是联连接的两个表的交集数据

  1. 左连接

  • 查询出来的是左表特有的数据,针对右表中不存在的数据,用null来填充。

  • select * from 表1 as 别名1 left join 表2 as 别名2 on 表1.列=表2.列

  1. 右连接

  • 查询出来的是右表特有的数据,针对左表中不存在的数据,用null来填充

  • select * from 表1 as 别名1 right join 表2 as 别名2 on 表1.列=表2.列

  1. 自关联

  • 相当于用同一张表来做内连接,在该表当中,有两个字段存在关联关系。

  • 本身是通过内联接来实现自关联的。inner join

  1. 子查询

  • select * from 表1 where id =(select id from 表2 where name='test001')

  • 充当数据源时查询出来的数据可以为多条记录或者多个字段的值

  • in、any|some、all

  • =any 和in等价 !=all 和 not in 等价

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纯合子tt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值