数据库MySQLⅠ

目录

 

1. 为什么学习数据库

2. 数据库

3. RDBMS

4. SQL

5. MySQL

6. 数据表操作

7. 数据操作-增删改查


1. 为什么学习数据库

  • 90%以上的软件都需要操作数据,⽐如游戏、社交、新闻、商城、财务等,这些软件都在不停的展示、存储数据, 它们的数据都存储在数据库,数据库是软件的基础
  • 测试⼯程师在测试软件的过程中,不仅需要在界⾯上操作,还需要检查数据库中的数据是否正确。从⽽在软件出问 题时,测出更深层的问题。 ⽐如测试注册登录功能,在输⼊了注册信息后,提示注册成功,但是使⽤刚才注册的信息登录不成功。这时需要检查数据库中是否保存了正确的注册信息,如果数据库中没有保存数据,那么使⽤刚才注册的账号肯定登录不了,这样就能定位问题:注册时,没有把数据存储起来

2. 数据库

        数据库是指⻓期存储在计算机内、有组织的数据集合。简⽽⾔之,数据库就是⼀个存储数据的地⽅。表是数据库中存储数据的基本单位,数据按照分类存储到不同的表中,能够⾮常⾼效的查询其中的数据

3. RDBMS

Relational Database Management System

关系型数据库系统

关系型数据库的主要产品:

  • oracle:在以前的⼤型项⽬中使⽤,银⾏,电信等项⽬
  • mysql:web时代使⽤最⼴泛的关系型数据库
  • ms sql server:在微软的项⽬中使⽤
  • sqlite:轻量级数据库,主要应⽤在移动平台

关系型数据库核心元素:

  • 数据⾏(⼀条记录)
  • 数据列(字段)
  • 数据表(数据⾏的集合)
  • 数据库(数据表的集合,⼀个数据库中能够有 n 多个数据表)

4. SQL

Structured Query Language

结构化查询语⾔

       在数据库中进⾏操作的语⾔,称为sql,结构化查询语⾔,当前关系型数据库都⽀持使⽤sql语⾔进⾏操作,也就是说可以 通过 sql 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库

  • sql语⾔主要分为:

         DQL:数据查询语⾔,⽤于对数据进⾏查询,如select

         DML:数据操作语⾔,对数据进⾏增加、修改、删除,如insert、udpate、delete

         TPL:事务处理语⾔,对事务进⾏处理,包括begin transaction、commit、rollback

         DCL:数据控制语⾔,进⾏授权与权限回收,如grant、revoke

         DDL:数据定义语⾔,进⾏数据库、表的管理等,如create、drop

         CCL:指针控制语⾔,通过控制指针完成表的操作,如declare cursor

  • 对于测试⼯程师来讲,重点是数据的查询,需要熟练编写DQL,其它语⾔如TPL、DCL、CCL了解即可
  • SQL 是⼀⻔特殊的语⾔,专⻔⽤来操作关系数据库
  • 不区分⼤⼩写

5. MySQL

MySQL是⼀个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,Sun公司后来⼜被 Oracle公司收购,⽬前属于Oracle旗下产品

常⽤数据类型 :

整数:int,有符号范围(-2147483648 ~2147483647),⽆符号范围(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),如'2020-01-01 12:29:59'

约束:

主键(primary key):物理上存储的顺序

⾮空(not null):此字段不允许填写空值

惟⼀(unique):此字段的值不允许重复

默认值(default):当不填写此值时会使⽤默认值,如果填写时以填写为准

外键(foreign key):维护两个表之间的关联关系

6. 数据表操作

  • 创建表

create table 表名(

字段名 类型 约束,

字段名 类型 约束,

...

)

  • 删除表

格式⼀:drop table 表名

格式⼆:drop table if exists 表名

7. 数据操作-增删改查

  • 简单查询

select * from 表名

  • 添加数据

添加⼀⾏数据:

insert into 表名 values(...)           # 主键列是⾃动增⻓,插⼊时需要占位,通常使⽤0或者 default 或者 null 来占位

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

添加多⾏数据:

insert into 表名 values(...),(...)...

insert into 表名(列1,...) values(值1,...),(值1,...)...

  • 修改

update 表名

set 列1=值1,列2=值2...

where 条件

  • 删除

delete from 表名 where 条件

truncate table 表名(删除表的所有数据,保留表结构)

Truncate和Delete、Drop的区别:

1、Delete删除数据时,即使删除所有数据,其中的⾃增⻓字段不会从1开始

2、Truncate删除数据时,其中的⾃增⻓字段恢复从1开始

3、Drop是删除表,所有数据和表结构都删掉

总结: 

在速度上,drop > truncate > delete

如果想删除部分数据⽤delete,注意带上where⼦句

如果想删除表,⽤drop

如果想保留表⽽将所有数据删除,⾃增⻓字段恢复从1开始,⽤truncate

发布了8 篇原创文章 · 获赞 1 · 访问量 292

猜你喜欢

转载自blog.csdn.net/qq_36985354/article/details/104191687