数据库简介
- IO流数据存储弊端
- 效率低
- 存取都麻烦
- 一般只能保存小量数据
- 只能保存文本数据
什么是DB
- Database:数据库
- 数据库本质上就是一个文件集合 数据库就是存储数据的仓库,本质上是一个文件系统,数据会按照特定的格式保存到文件中,用户可以对数据库中的数据进行增删改查操作
什么是DBMS
- Database Management System: 数据库管理系统
- DBMS就是管理数据库文件的软件
- 常见的DBMS有: MySQL、oracle、sqlserver、DB2、Sqlite
DBMS是指一种管理数据库的大型软件,用于创建、管理、维护数据库文件,对数据库文件进行统一的管理和控制,用户通过数据库管理系统
访问数据库中的数据
数据库软件的分类
- 关系型数据库: 经过数学理论验证,可以将现实生活中任意关系保存关系型数据库中,关系型数据库中以表为存储单位
- 非关系型数据库: 用来解决一些特定场景,比如解决缓存问题,解决高并发问题 Redis数据库(以键值对的形式保存数据)
主流关系型数据库介绍
- MySQL: 08年被Sun收购 09年Sun被Oracle收购,开源 ,由于被Oracle收购后性能大幅提升导致MySQL用户量大增,Oracle用户减少,公司计划把MySQL闭源,原MySQL程序员离开Oracle公司,创建了MariaDB数据库(Maria是公司老板的女儿名字) 市场排占有率第一
- Oracle: Oracle公司,最贵,性能最高,市场占有率排第二,闭源,拉里艾莉森32
- SQLServer:微软公司,闭源,市场占有率第三,主要应用在.net开发的 站中
- DB2:IBM公司产品,闭源
- sqlite:轻量级数据库 只有几十k,应用在嵌入式设备中(包括移动设备)
开源和闭源
- 开源:开放源代码 免费,盈利方式靠卖服务 用户多,有大牛程序员会无偿的维护和升级
- 闭源:源代码私有 盈利方式靠卖软件+服务 来钱快,会有大牛们攻击,但是公司内部会花钱雇人维护升级
安装数据库软件
- 端口 使用默认的3306
- 字符编码选择utf8
什么是SQL
- Structured(结构化) Query(查询) Language(语言):结构化查询语言
- 用于用户和数据库软件(DBMS)交流的语言,不管是增删还是改查都需要使用SQL语言和DBMS交流
- SQL是写在客户端中或Java代码中,发送给DBMS,由DBMS解析执行
数据库服务器
- 服务器是高配置的电脑
- 数据库服务器就是在电脑上安装了DBMS
- DBMS(mysql) 具备 络访问能力
如何连接MySQL数据库 Linux下打开终端 Windows里面打开命令行
- 在终端或命令行中输入 mysql -uroot -p 然后回车 ,有密码的写密码 如果没有密码的直接敲回车
- 退出命令 exit
SQL规范
- 以;结尾
- 关键字之间要有空格 可以有多个空格
- SQL语句中可以1个或多个换行
- 关键字不区分大小写
1. 数据库相关sql
- 查看所有数据库:
- 创建数据库:
- 删除数据库:
- 查看单个数据库详情:
- 指定字符集:
- 使用数据库:
2. 表相关sql
- 创建表:
- 查看所有表:
- 删除表:
- 查看单个表:
- 创建表指定引擎和字符集:
- 查看表字段信息:
- 修改表:
- 修改表字符集和引擎:
- 添加表的字段:
- 删除表字段:
- 修改表字段名称和类型:
- 修改表的类型和位置:
3. 数据相关sql
- 插入数据:
- 查询数据:
- 修改数据:
- 删除数据:
主键约束
什么是主键:表示表中数据唯一性的字段称之为主键(主键只有一个)
什么是约束: 约束就是创建表的时候给表中字段添加的限制条件
主键约束:添加了主键约束的字段,保存的数值必须唯一而且非空
- 格式:
- 测试唯一: 以下代码会 错 主键值不能重复
- 测试非空:
主键+自增约束
- 格式:
- 测试自增:
- 自增的特点:
- 值为null时会自动赋值
- 以表中曾出现的最大值基础上+1;
- 删除数据自增值不减
- delete清空表 自增数值不变
- 如何让自增数值清零使用truncate关键字 ,相当于:
注释 comment
- 创建表的时候可以通过comment关键字对字段进行描述
- 格式: create table t3(id int primary key auto_increment comment ‘这个字段是主键’,ename varchar(10),sal int comment ‘这是工资’);
- 通过 show create table t3; 查看字段的注释
`和’的区别
- `的作用:是用来修饰表名和字段名的,可以省略
- ‘的作用:是用来修饰字符串的
数据冗余
由于表设计不够合理,出现大量的重复数据,称为数据冗余。可以通过拆分表的形式,把可能重复的数据保存到一张新的表中,在原表中只需要通过一个id建立关系即可。这种建立关系的字段称之为外键。
练习一: 保存商品的信息包括(商品id,商品名称,商品价格,库存,分类名称,上级分类)
- 创建商品表(item):商品id, 商品名称(name),商品价格(price),库存(num),分类id(category_id)
- 创建分类表(category):分类id ,分类名称(name),上级分类
- 以上表中插入数据:
一、电器分类下的电视机分类下的康佳电视价格4480,库存38
二、第二条数据 鞋分类下的男鞋分类下的男运动鞋分类下的耐克运动鞋价格380,库存99
- 插入第一条数据:
- 插入第二条数据:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!