一、数据库简介
1、为什么需要使用数据库
①磁盘->高级缓存->寄存器->CPU
数据存储在内存中,但是内存大小有限、不可能存储所有数据,并且掉电后数据丢失
②为了让程序在关机重启后数据依然可以使用,必须把数据保存在磁盘文件中
③随着程序功能越来越复杂、数据量也越来越多、数据关系也越来越复杂,从文件读写数据需要大量复杂、重复性高的操作,因此需要执行非常复杂的逻辑
④不同程序、系统访问文件的操作不同,意味着读写文件的代码很难做到代码复用
⑤所以程序员非常需要一个统一的快速地访问磁盘数据的工具
⑥使用数据库本质就是管理磁盘数据,不需要程序员自己管理,通过数据库提供接口进行操作即可,至于数据在磁盘中是如何保存、查找与程序员无关
2、什么是数据库(DB、DBMS)
数据库指的是管理数据的软件、工具,是一个文件系统,而不是额外存储数据的仓库
3、数据库的类型
①层次型:以上下级的层次关系来组织数据的一类数据库,类似倒悬树结构,早期的数据库采用
②网状型:通过网状关系连接组织数据,形成一张数据网,复杂度高
③关系型:把数据看作一张二维表,由行和列组成,这也是普通人最容易理解的一种数据组织方式,因此变成目前主流
④非关系型/key_value型:是一种内存数据库,适合存储高频访问的数据、对时间有要求的数据
公司中一般是关系型、非关系型结合使用:大量数据存储在关系型数据库中,从中提取经常查找的数据存储在非关系型数据库中,方便查找、使用,提升效率
4、主流的关系型数据库
①商用型:Oracle(甲骨文)、DB2(IBM)、SQL Server(微软)
②开源型:MySQL、mariaDB
③桌面型:Access(微软) 通过界面操作
④嵌入式:SQLite、适合嵌入式移动设备使用的小型数据库
二、SQL语言简介
1、什么是SQL
结构化查询语言的缩写,是数据库标准委员会制定,用于访问、控制数据库的统一语言,所有的数据库都支持SQL语言,所以我们只需要学习SQL语句基本可以操作所有数据库
虽然都支持SQL语言,但是不同的数据库厂商对SQL的支持程度不同,有的还增加新的语言,把各个数据库特有语法称为SQL方言
2、SQL 语句分类
①数据控制语句DCL:用于用户权限的赋予、回收
②数据定义语句DDL:用于建立、修改、删除数据库对象(数据库、表、视图)
③数据操作语句DML:用于改变表中数据(增、删、改)
④数据查询语句DQL:根据不同的条件来查询同一张、不同的表中的数据
⑤事务控制语句TCL:用于维护数据表的一致性的语句
3、SQL通用语法
SQL语句可以单行书写或者换行书写,以分号结尾
可以使用合适的空格、缩进来提高可读性
SQL的关键字不区分大小写,一般大写,但是标识符(表名、字段名等)是区分大小写
-- 单行注释
/* 多行注释*/
4、SQL语句中的基础数据类型
int
double
字段名 double(总位数,小数点后保留几位)
datetime
date
CHAR 0-255 bytes 定长字符串
存储性能更优,浪费空间
VARCHAR 0-65535 bytes 变长字符串
存储性能较差、节约空间
字符、字符串 使用 单、双引号都可以
三、MySQL数据库的登录方式
1、本地登录
mysql -u 用户名 -p 密码 方便但有泄漏密码风险
mysql -u 用户名 -p 更安全
2、远程登录
先通过ssh或者telent 远程登录具有MySQL服务器
再通过mysql命令登录MySQL数据库
3、客户端登录
例如:MySQL WorkBench的登录(Ctrl+Enter执行单行)
无论哪种登录,登录后都需要先 use 数据库名;选择操作的数据库
四、SQL脚本
SQL脚本就是由SQL语句组成的文本文件,一般是创建表、插入数据等语句,不需要执行权限也可以执行
方法1:在MySQL中执行 source SQL脚本文件名;
方法2:在客户端中打开 SQL脚本 全部执行