数据库Day01

数据(data)

数据是指对客观事物描述并可以鉴别的符号,这些符号是可识别的, 抽象的。它不仅仅指狭义上的文本 (数字, 字母, 字符等),数据还有多种表现形式:图形、音频、视频等。

为什么使用数据库系统
存储方式优点缺点
内存速度快不能够永久的保存, 数据是临时状态的
文件文件可以永久保存使用I/O流操作文件, 不方便查找与操作

我们使用变量存储数据,后面使用数组,再往后使用的是集合等去存储数据。这些方式存储数据都是将数据存储在了内存中,当程序运行完,或者断电后,数据就丢失了。

数据库(database)

数据库(Database,简称DB),就是存储数据的仓库。 其本质就是一个文件管理, 就是以文件的形式将数据保存到电脑的磁盘中 。

数据库管理系统(DBMS)

数据库管理系统(Database Manage System,简称DBMS):操作,管理及维护数据库的大型软件。 MySQL就是数据库管理系统软件,安装了MySQL的电脑,也可以称为数据库服务器。 ​作用:用于建立,使用和维护数据库,对数据库进行统一的管理。

关系型数据库

关系型数据库是将复杂的数据结构用较为简单的二维表来表示,由二维表及其之间的联系所组成的一个数据组。

在该类型数据库中,对数据的操作基本上都建立在一张或多张表上,采用结构化查询语言(SQL)对数据库进行操作,关系型数据库是比较主流的数据库技术。

优点:

  1. 易于维护:使用二维表的表结构,格式一致;

  2. 使用方便:SQL语言通用,关系型数据库都可以使用SQL进行操作;

  3. 复杂操作:可用于一个表以及多个表之间非常复杂的查询。

缺点:

  1. 读写性能比较差,尤其是海量数据的高效率读写;

  2. 固定的表结构,灵活度稍欠;

  3. 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

非关系型数据库

非关系型数据库也称之为NoSQ(Not Only SQL)L数据库,是一种数据结构化存储方法的集合,可以是文档或者键值对等。

优点:

  1. 格式灵活:存储数据的格式可以是key, value形式, 文档形式, 图片形式等等.

  2. 使用灵活,应用场景广泛,而关系型数据库则只支持基础的类型

  3. 速度快:使用内存存储数据,而关系型数据库只能使用硬盘

  4. 高扩展性

缺点:

  1. 不提供sql支持,学习和使用成本较高

  2. 数据结构相对复杂,复杂查询方面稍欠

  3. 只适合存储一些较为简单的数据,对于需要进行较复杂查询的数据,关系型数据库显的更为合适

  4. 不适合持久存储海量数据

MySQL小结

数据库管理系统、数据库和数据库表之间的关系?

MySQL中管理着很多的数据库,在实际开发中,一个数据库一般对应一个应用,每个数据库中又保存着很多表,每张表对应着不同的业务,每张表中保存着很多条数据。

SQL(Structured Query Language)是结构化查询语言的简称,它是一种数据库查询和程序设计语言,同时也是目前使用最广泛的关系型数据库操作语言。在数据库管理系统中,使用SQL语言来实现数据的存取、更新等功能。

DDL操作数据库

 MySQL中常见的数据类型

类型描述
int整型
double浮点型
varchar字符串型
date日期类型,格式为:yyyy-MM-dd
DDL-创建数据库表

语法:

create table 表名(
    字段1    数据类型,
    字段2 数据类型(长度)
);
-- 注意:最后一个字段不要加逗号,可以给字段的数据类型指定长度

DDL-查看数据库表

DDL-删除数据库表

DDL-修改数据库表

修改表中字段

删除表中字段

DML操作

插入数据

修改数据

删除数据

truncate 和 delete的对比:

  1. 这两种操作都可以删除表中的数据

  2. delete为数据操作语言DML;truncate 为数据定义语言DDL。

  3. delete操作是将表中所有记录一条一条删除直到删除完;truncate 操作则是保留了表的结构,重新创建了这个表,所有的状态都相当于新表。因此,truncate 操作的效率更高。

  4. delete操作可以回滚;truncate 操作会导致隐式提交,因此不能回滚(后面会讲解事务的提交和回滚)。

  5. delete操作执行成功后会返回已删除的行数(如删除4行记录,则会显示“affected rows:4”);truncate 操作不会返回已删除的行量,结果通常是“affected rows:0”。delete操作删除表中记录后,再次向表中添加新记录时,对于设置有自增约束字段的值会从删除前表中该字段的最大值加1开始自增;truncate 操作会重新从1开始自增。

表的约束

约束的作用

可以对表中的数据做一些限制, 从而保证数据的正确性, 有效性, 和完整性。

违反约束的不正确数据是无法插入到表中的

 约束的分类

约束名关键字作用
主键primary key不可重复, 不能为空,即唯一 + 非空
唯一unique不可重复
非空not null不能为空
默认值default赋予默认值
检查(Mysql8提供)check取值范围
外键foreign key表与表之间的关系

添加主键约束

测试主键的唯一和非空

-- 插入正常数据
insert into emp values(1,"宋江","男");

-- 插入一条数据, 主键为空
insert into emp values(null,"李逵","男");
-- Column 'eid' cannot be NULL 主键不能为空 

-- 插入一条数据, 主键重复
insert into emp values(1,"孙二娘","女");
-- Duplicate entry '1' for key 'emp.PRIMARY' 主键冲突

  • 通常针对业务去设计主键, 每张表都设计一个主键id, 并且只能有一个主键.

  • 主键是给数据库和程序使用, 所以主键没有意义没有关系, 只要能保证不重复就好, 比如身份证就可以作为主键.

删除主键约束

-- 使用DDL 删除表中的主键约束
alter table emp drop primary key;

-- 查看表结构
desc emp;

-- 删除唯一约束(了解)
-- 添加了唯一约束为 eid int not null, 通过设置字段属性删除唯一约束 
alter table emp modify eid int;

主键自增

自己添加数据可能出现重复, 我们通常希望在每次插入新记录时, 数据库自动生成主键字段的值

非空约束

唯一约束

-- 语法格式: 
字段名 字段类型 unique

-- 案例:emp表 eid 主键约束,自增  ename 非空约束 esex唯一约束
drop table emp; -- 删除存在的emp表 
create table emp(
    eid int primary key auto_increment,
    ename varchar(10) not null,
    sex char(1) unique
);
-- 测试唯一约束 添加两个性别为男
insert into emp values(default,'zs','男');
insert into emp values(default,'lisi','男');
-- Duplicate entry 'n' for key 'emp.esex'  esex重复

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值