华清远见-重庆中心-数据库综合阶段技术总结<1>

前端 展示数据

后端 处理数据,得到有用的信息

数据库 保存数据

数据和信息

Data数据

任何描述事物的文字和符号的都可以称为数据。

软件开发就是为了收集数据,从中筛选出有用的信息。

Infomation信息

数据经过处理之后得到的内容称为信息。

数据需要保存,保存的介质有内存和硬盘等。

内存中的数据是临时的,随着系统的关闭,数据也会消失;

硬盘中的数据是永久的,就算系统关闭,数据依然保留。

excel等文件保存数据是一种保存到硬盘中的途径,

但是如果大量数据要保存,文件系统就不再方便。

使用一个系统化的数据仓库才能更高效地处理数据。

数据库

DataBase,简称为DB

运行在操作系统上,按一定的数据结构,保存数据的仓库。是一个电子化的文件柜。

数据永久保存在硬盘中。

数据库管理系统

DataBase Manager System,简称为DBMS

通常所说的数据库,是指数据库管理系统,如MySQL、Oracle等。

是一种操作和管理数据库的大型软件,用于建立、使用和维护数据库。

总结

  • 数据Data需要永久保存到数据库中
  • 数据库DB是运行在操作系统上的一个软件
  • 数据库管理系统DBMS是管理数据库的一个软件
  • 学习数据库就是学习如何使用DBMS创建、使用数据仓库来管理数据

常见的数据库管理系统

关系型数据库

关系型数据库是主流的数据库类型。

数据通过行row列column的形式(表格)保存。

称为一条记录

称为一个字段

字段通常为Java中某个类的属性,通过这个类创建的对象,就是一条记录。

如class Employee,有员工编号、姓名、部门、工资等属性,

对应数据库中有一个Employee表,这个表中有员工编号、姓名、部门、工资等字段。

关系型数据库,数据表直接有关联,能快速地查询出想要的数据。

img

关系型数据库的特点

  • 优点

    • 易于维护:都是使用表结构存储数据,格式一致
    • 使用方便:SQL语句通用,可用于不同关系型数据库
    • 复杂查询:可以通过SQL语句在多个表之间查询出复杂数据
  • 缺点

    • 读写性能差,尤其是还是数据的高效读写
    • 固定的表结构,灵活度少欠
    • 高并发读写时,硬盘I/O决定了读写速度

非关系型数据库

数据通过对象的形式保存,对象可以是一个键值对、文档、图片等。

img

非关系型数据库的特点

  • 保存数据的格式多样
  • 对于海量数据的读写性能高
  • 不支持复杂查询

MySQL8.x的安装和使用

1.下载

mysql的安装包可以在官网或任意站点下载。

mysql官网MySQL

2.卸载

如果之前有安装过MySQL,必须要先卸载。

  • 安装新版本时,会自动检测到旧版本,选择卸载
  • 使用软件管理工具或系统自带卸载工具卸载
  • 如果当初安装时没有指定路径,默认还要删除C:\Program Files下的MySQL文件夹
  • 打开计算机的显示隐藏文件选项,删除C:\Program Data下的MySQL文件夹

3.安装

MySQL控制台常用命令

  • 查看所有数据库

    show databases;
    
  • 切换数据库

    use 数据库名;
    
  • 查看当前数据库下的所有表

    show tables;
    
  • 创建一个数据库

    create database 数据库名;
    
  • 删除数据库

    drop database 数据库名;
    

数据库管理系统图形化管理工具

如果只是用控制台操作数据库系统不方便,所以有很多图形化的管理工具。

如navicat、datagrip、sqlyog等。

创建数据库

在连接上点击右键,新建数据库,只需写数据库名。

切换数据库

只需双击对应的数据库即可

创建数据表

在展开后的数据库中,在表的选项上右键新建表

保存时会提示输入表名

创建表时的注意实现

  • 每张表需要一个编号"id"列,通常设置为主键,目的是为了区分每条记录。整个主键列中的数据不能重复,通常还需要设置为自增

  • 数据类型和所占长度根据实际情况选择

  • 通过"不是null"设置能否允许该字段为空

  • 如果某个字段有默认值,可以在设计表的时候设置,字符串用单引号引起来

  • 最好写上注释

修改数据表

如果要对某张已存在的表进行修改,在对应的表上右键,设计表。

修改表时,要保存不影响现有数据。

SQL

Structrued Query Language 结构化查询语言

用于操作关系型数据库的一门语言。可以用来创建、维护数据库和数据。

-- mysql中的注释

操作数据库

1.创建数据库

create database 数据库名;

2.切换数据库

use 数据库名;

3.删除数据库

drop database 数据库名;

操作数据表

1.创建数据表

create table 表名(
	字段名 数据类型 [字段特征],
    字段名 数据类型 [字段特征],
    ...
    字段名 数据类型 [字段特征]
)

2.删除数据表

drop table 表名;

3.修改数据表

  • 对表重命名

    alter table 旧表名 rename to 新表名;
    
  • 添加新字段

    alter table 表名 add column 字段名 数据类型 字段特征;
    
  • 修改字段

    alter table 表名 change 旧字段名 新字段名 数据类型 字段特征;
    
  • 删除字段

    alter table 表名 drop 字段名;
    

添加约束

1.添加非空约束

alter table 表名 change 旧字段名 新字段名 数据类型 not null;

2.添加主键约束

alter table 表名 add primary key(字段名);

3.添加唯一约束

alter table 表名 add unique(字段名);

4.添加默认值约束

alter table 表名 alter 字段名 set default '默认值';

5.添加外键约束

alter table 从表表名 add foreign key(从表外键字段) references 主表(主表主键字段)

添加约束的操作通常是对已存在的表进行修改和维护时使用。如果是一张新表,最好在创建表的时候设计好约束。

建表的同时添加约束

-- 创建数据库gamedb
create database gamedb;
-- 切换数据库
use gamedb;
-- 创建游戏角色表hero
create table hero(
-- 编号 整型 非空     主键        自增 
	id    int  not null primary key auto_increment comment '编号',
-- 姓名 字符串     非空 		唯一	
	name varchar(20) not null unique comment '姓名',
-- 定位	   字符串			 非空 	
	position varchar(20) not null comment '定位',
-- 性别 字符串 非空	 默认男
	sex char(1) not null default '男' comment '性别',
-- 价格 整型 非空		 默认4800 
	price int not null default '4800' comment '价格',
-- 上架日期 	
	shelf_date date  comment '上架日期'
)

-- 创建战斗表battle
create table battle(
	hero_id int not null ,
	position varchar(20),
    -- 外键  hero_id参考hero表中的id字段
	foreign key (hero_id) references hero(id)
)

数据完整性

数据完整性是指数据精确可靠。不能保存无意义或无效的数据。

如不合理的年龄、全为空的记录、重复记录等。

为了保证保存在数据库中的数据是完整数据,就要在设计数据表时添加一些约束或特征来保证数据完整性。

MySQL中常见的数据类型

整型
tinyint短整型对应java中的byte和short
int整型对应java中的int
bigint长整型对应java中的long
浮点型
float单精度浮点型对应java中的float
double双精度浮点型对应java中的double
decimal(宽度,精度)指定保留的小数位数和整体宽度如decimal(4,2) 3.1415926–>3.14
字符串
char(长度)定长字符串char(10)表示占10个字符,就算保存了3个字符,也占10个字符,对应java中的String
varchar(长度)可变字符串varchar(10)表示最多占10个字符,保存了3个字符,旧占3个字符,对应java中的String
text文本
日期
date日期yyyy-MM-dd
time时间HH:mm:ss
datetime日期时间yyyy-MM-dd HH:mm:ss
timestamp(14或8)毫秒保存日期的毫秒数.14表示yyyyMMddHHmmss,8表示yyyyMMdd

约束

字段特征概念关键字
非空约束是否允许该字段为nullnull表示可以为空,not null表示不可以为空
主键约束主键(primary key)。用于区分表中的每条记录的一个字段。如果有现成的字段可以区分每条记录时,将该字段设置为主键字段;如果没有现成的字段可以区分每条记录时,通常会额外添加一个id字段用于设置为主键字段。通常一张表只有一个主键字段。primary key
唯一约束保证该字段值不能重复unique
默认值约束如果在不给该字段添加数据的情况下,保证该字段有一个默认值。default
外键约束在主从关系的表中,给从表的某个字段添加外键约束后,该字段的值只能来自于主表中的某个主键字段foreign key
references

作业

  • 创建图书类型表book_type

    • 类型编号type_id,主键非空自增,

    • 类型名称type_name

  • 创建图书详情表book_info

    • 图书编号book_id,主键非空自增,

    • 类型编号type_id,外键关联类型表中的type_id,

    • 图书名称book_name 非空,

    • 图书作者book_author 默认"未知" 非空 ,

    • 图书价格book_price 非空,

    • 图书库存book_num 非空,

    • 出版时间publisher_date

如果在不给该字段添加数据的情况下,保证该字段有一个默认值。 | default |
| 外键约束 | 在主从关系的表中,给从表的某个字段添加外键约束后,该字段的值只能来自于主表中的某个主键字段 | foreign key
references |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值