一,前言
1.典型数据库
数据库圈子中典型代表:
MySQL
Oracle
SQL Server(一般在学校学习的时候用到的是这个数据库)
Oracle是世界上公认的最好的数据库,但是我们现在所学习以及以后上班中大部分时候用到的数据库是MySQL,因为MySQL是开源免费的(任何人都可以阅读和修改源代码,这也使得MySQL的功能在不断被维护和完善)。
2.MySQL的安装与配置
mysql安装视频_哔哩哔哩_bilibili
MySQL具体的安装过程和环境配置,大家可以参考这个视频!!!
二,数据库
1.什么是数据库
数据库本质上就是"一类软件",能够针对数据进行管理(主要的操作是增删改查),是基于数据结构实现出来的软件;是一个基于客户端服务器结构的程序。
原理:
2.数据库相比于文件存储的优点
数据库的存在就是为了更好的管理数据;
文件保存数据的缺点:
文件的安全性问题
文件不利于数据查询和管理
文件不利于存储海量数据
文件在程序中控制不方便
针对以上缺点,诞生了数据库,数据库可以提供远程服务,即通过远程连接来使用数据库,因此称为数据库服务器。
3.数据库的分类
数据库可以分为关系型数据库和非关系型数据库;
关系型数据库:采用了关系型模型来组织数据的数据库,关系模型指的是二维表格(都是基于标准的SQL),常用的关系型数据库有:Oracle、MySQL、SQL Server等。
非关系型数据库:不规定基于SQL实现,常用的非关系型数据库有:memcached、redis、mongodb、hbase、neo4j等。
区别:
关系型数据库 | 非关系型数据库 | |
使用SQL | 是 | 不强制要求,一般不基于SQL实现 |
事务支持 | 支持 | 不支持 |
复杂操作 | 支持 | 不支持 |
海量读写操作 | 效率低 | 效率高 |
基本结构 | 基于表和列,结构固定 | 灵活性比较高 |
使用场景 | 业务方面的OLTP系统 | 用于数据的缓存、或基于统计分析的OLAP系统 |
4.数据库的操作
数据库的常用操作:
1. 创建数据库
2. 显示所有数据库
3. 使用数据库
4. 删除数据库
4.1 创建数据库
语法:create database(if not exits)数据库库名 charset 字符集;
假设创建一个数据库名为:java
出现下面的提示说明创建成功;MySQL中不区分英文字母的大小写
在创建数据库的时候可以指定字符集,需要使用关键字characterset,如果不设置的话会指定为默认的字符集:
此时创建了一个名为java1的数据库,并且将字符集设置为utf8
if not exists:加上这条语句是为了说明创建数据库时,如果该数据库已存在将不会创建(并给出警告),否则就会创建:
因为之前创建了名为java的数据库,此时再创建时不会创建并发出警告(如果不加上if not exists就会报错,无法继续往下执行)
4.2 显示所有数据库
语法:show databases;
其中除了我们自己创建的数据库java和java1外,系统内部也会存在一些库
4.3 使用数据库
语法:use 数据库名;
在后续学习到表,如果需要对一个表进行操作时需要事先使用数据库,这样系统才知道对哪个数据库中的表进行操作!!!
显示这句话说明使用数据库成功
4.4 删除数据库
语法:drop database 数据库库名;
数据库删除是一个非常危险的操作,在以后的工作中(尤其是针对线上环境),要谨慎进行删库操作!!!
此时说明删除成功,此时我们再来查看一下所有的数据:
发现此时已经没有java1这个数据库了
三,常用数据类型
这里的数据类型只介绍常用的数据类型
1.数值类型(整型和浮点型)
整数:int
浮点数:double(M,D),decimal(M,D),这里的M表示有效数字的位数,D表示小数点后保留几位;decimal可以精确到表示浮点数,它牺牲了存储空间,牺牲了运算速度,换来的是更精确的表示方法
2.字符串类型
varchar(size):其中的size表示该字符串可以容纳的字符个数
3.时间日期类型
datatime
四,数据表
数据表的常用操作:
1. 创建表
2. 查看指定数据库下所有表
3. 查看指定表结构
4. 删除表
注意:这里所有对表的操作前提都需要先使用数据库(即在指定的数据库下进行表操作)
1.创建表
语法:
create table 表名 (
field1 datatype,
field2 datatype,
field3 datatype
);
注意:这里变量类型写在前,变量名写在后,不同变量之间用逗号隔开
假设在之前创建的java这个数据库中创建一个学生表(包含学号和姓名)
2.查看指定数据库下的所有表
语法:show tables;
这个语法类似于查看所有的数据库
因为我们这里只创建了一个student的表,所以结果只有一个表
3.查看指定表结构
语法:desc 表名;
Field:代表该字段名称(即变量名)
Type:代表该字段的数据类型(即变量类型)
Null:代表该字段是否可以为空
Key:代表该字段是否是主键约束(后续再细说)
Default:代表该字段的默认值是什么
Extra:代表额外的描述
4.删除表
语法:drop table 表名;
同删库语法类似
说明student这个表删除成功
注意:这里删表操作也是很危险的(尤其针对线上生产环境),删除表之后库还在!