为什么学习数据库
①实现数据持久化到本地(写入磁盘、硬盘中)
②使用完整的系统统一管理
数据库概述
数据库(DataBase)为了方便数据的存储和管理。它按照特定的规则将数据存储在磁盘上,通过数据库管理系统,可以高效的管理存储在数据库中的数据。
相关概念
DB:数据库(DataBase)存储数据的容器,保存了一系列有组织的数据。
DBMS:数据库管理系统(DataBase Management System)又称数据库软件或数据库产品,用于创建或管理DB。
按照存储结构分类
关系型数据库:RDBMS(R指Relation)基本单位是表,表与表之间存在关系。
Oracle 功能强大、收费
MySQL 快捷、开源、免费
SQL Server(微软) 只可以在windows系统运行
DB2(IBM) 处理海量数据,例如电信、收费
非关系型数据库:以 key:value 来存储数据。
MongdoDB
Redis
MySQL数据库
MySQL是一个关系型数据库管理系统,属于Oracle旗下产品,是当下流行的关系型数据库管理系统。开放源代码,具有快速、可靠和易于使用的优点。
安装与配置
1.安装安装包并解压在英文路径下。
2.配置MySQL环境变量:将bin目录路径新建在系统环境变量path中。
3.MySQL初始化:
以管理员身份运行命令提示符cmd;
cd至安装的bin目录路径中;
输入命令mysqld --initialize-insecure(初始化数据库,并设置默认root密码为空),执行后会在MySQL安装目录生成一个data目录。
4.为Windows系统安装MySQL服务:
输入命令mysqld install(为Windows系统安装MySQL服务,默认服务名为:mysql)。
5.启动MySQL服务:
输入命令net start mysql(启动MySQL服务,注意此时的“mysql”表示服务名,到此mysql8安装完成);
删除服务命令sc delete mysql(卸载时使用)。
6.为默认root账号设置密码:
输入命令ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘密码’
刷新指令FLUSH PRIVILEGES(刷新权限)。
7.连接MySQL:
登录命令mysql -uroot -p密码
退出命令exit
安装可视化客户端工具
安装包安装SQLyog,运行并输入密码进行连接。
SQL
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL优点:不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL;简单易学,灵活使用可以进行非常复杂和高级的数据库操作。
分为DDL、DML、DQL三种。
DDL
数据(结构)定义语言DDL(Data Definition Language),是用于创建和修改数据库表结构的语言。
常用的语句:create ,alter,drop,rename.
创建数据库并设置编码格式:
CREATE DATABASE IF NOT EXISTS 数据库名 CHARSET 编码格式
删除数据库:
DROP DATABASE 数据库名
(在MySQL中数据库名不允许更改!)
修改字符集:
ALTER DATABASE 数据库名 CHARSET 编码格式
数据库存储数据的特点
● 将数据放到表中,表再放到库中。
● 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。
● 表具有一些特性,这些特性定义了数据在表中如何存储,类似Java中“类”的设计。
● 表由列组成,我们也称列为字段。所有表都是由一个或多个列组成的,每一列类似java中的”属性”。
● 表中的数据是按行存储的,每一行类似于Java中的“对象”。
数据库表的基本概念
1、数据表
表(table)是数据存储的最常见和最简单的形式,是构成关系型数据库的基本元素。
表的最简单形式是由行和列组成,分别都包含着数据。 每个表都有一个表头和表体,表头定义表名和列名 。表中的行被看作是文件中的记录,表中的列被看作是这些记录的字段。
2、字段
字段是表里的一列,用于保存每条记录的特定信息。如客户订单表的字段包括“订单ID”、“姓名”、“客户ID”、“职务”、“上级”、“地区”、“运货商”、“国家”等。
数据表的一列包含了特定字段的全部信息。
3、记录
记录也被称为一行数据,是表里的一行。在关系型数据库的表里,一行数据是指一条完整的记录。
设计表
对于具体的某一个表,在创建之前,需要确定表的下列特征:
● 表名(表信息)
● 表中的字段
● 字段的数据类型和长度
● 哪些约束(字段的特殊规则)
字段的数据类型
char(n) 长度为n的定长字符串
varchar(n) 最大长度为n的可变长字符串
date 日期,包含年月日
datetime 年月日 时分秒
如身高1.82米,DOUBLE(3,2)
TEXT列字符字符串,有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。
它的长度:
TINYTEXT:最大长度255个字符(2^8-1)
TEXT:最大长度65535(2^16-1)
MEDIUMTEXT:最大长度16777215(2^24-1)
LONGTEXT最大长度4294967295(2^32-1)
主键
在一张表中代表唯一的一条记录,不能为空,不能重复。主键可以设置自增,但其数据类型必须是整数型。
设置主键:
PRIMARY KEY
使主键自增:
AUTO_INCREMENT
约束
NOT NULL 不能为空约束
UNIQUE 唯一性约束
CHECK(条件) 检查约束 设置条件
外键约束
字段注释
comment ‘注释’
创建表语法(具体实例):
CREATE TABLE teammate(
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '编号',
NAME VARCHAR(10) NOT NULL COMMENT '名字',
birthday DATE NOT NULL COMMENT '生日',
height DOUBLE(3,2) CHECK(height<3) NOT NULL COMMENT '身高/m',
weight INT CHECK(weight<200) NOT NULL COMMENT '体重/kg',
nbaposition CHAR(4) NOT NULL COMMENT '位置'
)
删除表:
DROP TABLE 表名
修改表名
RENAME TABLE 旧表名 TO 新表名
复制表结构
CREATE TABLE 新表名 LIKE 被复制表名
DML
数据操纵语言DML(Data Manipulation Language)
常用语句: insert,delete,update.
插入数据
方式1: INSERT INTO 表名(列1,列2……,列n) VALUE(值1,值2……,值n)
方式2: INSERT INTO 表名 SET 列名1=值1,…列名n=值n
方式3: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2……,值n),(值1,值2……, 值n)…
方式4:INSERT INTO 表名(列1,列2……,列n) 查询语句(查询的列数与插入列数匹配)
INSERT INTO team (NAME,address) VALUE ('湖人','洛杉矶')
INSERT INTO team SET NAME = '火箭',address = '休斯顿'
INSERT INTO team (NAME,address) VALUES ('凯尔特人','波士顿'),('骑士','克利夫兰'),('马刺','圣安东尼奥'),('魔术','奥兰多')
方式4具体实例:
INSERT INTO team1 (NAME,address) SELECT NAME,address FROM team2
修改数据
UPDATE 表名 SET 列名 = ‘新值’WHERE 条件
UPDATE team SET address = '加利福尼亚州洛杉矶市' WHERE id = 1
删除数据
DELETE FROM 表名 WHERE 条件
DELETE FROM team WHERE id = 5
TRUNCATE TABLE 表名——清空整张表(此为DDL语句)