数据库:
为什么学习数据库?
为了将数据持久的保存起来 java中的对象都是存储在内存中,程序结束数据都销毁
之前学习IO,将数据存储在文件,但是内容整体是一个字符串,使用起来不方便
所以我们需要学习一种专业的存储数据的软件—数据库
数据库不仅可以持久的保存数据,还可以方便的提取数据
数据库:
为了方便数据的存储和管理(增删改查),将数据按照特定的规则存储起来,就是一个存储数据的仓库
数据库(DB DataBase)可以称为数据库
数据库管理系统(DBMS DataBase Management System)数据库管理软件—全称
以后的软件开发,数据库不可或缺
常见的数据库产品
国外:
MySQL 快捷、可靠 开源、免费
Oracle:功能强大,收费.
SQL Server(微软): 只能安装在Windows操作系统,收费
DB2 (IBM):适合处理海量数据,收费.
国内:
南大通用GBASE: 天津南大通用数据技术股份有限公司
达梦:武汉达梦数据库股份有限公司
人大金仓:北京人大金仓信息技术股份有限公司
神通:神舟通用公司
Mysql数据库
Mysql最早是由瑞典的MYSQL AB开发,现在被oracle收购
Mysql是一款关系型数据库
在关系型数据库中,基本单位是表,一个表中存储一类信息,表与表之间存在关联关系
Mysql是开源的,也是免费的,
具有快速.可靠.易于使用的特点
使用标准的sql语言,并且支持多种操作系统(在windows和linux中都可以安装)
支持多种语言(支持java,c,c++,python,php,c#连接)
现在mysql有商业版(收费)和社区版(免费)
Mysql安装
- 解压mysql安装包,解压到一个没有中文路径的文件夹中
- 配置环境变量 D:\program Files\mysql-8.0.22-winx64\bin
- 以管理员身份运行cmd
- 进入到bin目录中
- 初始化数据库 mysqld –initialize-insecure
- 安装 mysqld install
- 启动 net start mysql
在命令行中连接mysql
实际开发中,都是在一些可视化的客户端工具中连接
Sql语言
Structured Query Language(结构化查询语言)
数据库操作语言
也是属于一种编程语言,专门用作数据库操作
Sql语言中又分为3个不同分支
1.ddl 数据(结构)定义 创建表
2.
DDL:
--创建数据库
CREATE DATABASE IF NOT EXISTS schooldb CHARSET utf8
-- 删除数据库
DROP DATABASE IF EXISTS schooldb
-- mysql中的数据库一旦创建,名字不能修改
-- 修改数据库字符集
ALTER DATABASE schooldb CHARSET utf8;
-- 创建表
-- 确定表名 学生信息表
-- 确定表中字段(列) 学号,姓名,性别,生日,电话,身高,注册时间
-- 确定字段(列)
-- 确定表的约束
-- 创建表语法
-- char(n) 定长的字符串 固定存储n个字符串,长度如果不够n,默认补空格
-- VARCHAR(n) 可变长度的字符串 n是最大长度 如果只存储2个字符,实际占有两个空间位置
CREATE TABLE student(
number INT,
NAME VARCHAR(6),
gender CHAR(1),
birthday DATE,
phone VARCHAR(11),
height DECIMAL(3,2),
reg_time DATETIME
)
-- 删除表结构
DROP TABLE student
-- 创建表 并添加约束规则
-- PRIMARY KEY 设置主键约束,添加主键约束后,值就不能重复,一个表中只能由一个列是主键
-- 主键列可以唯一的表示某一行数据
-- mysql中主键可以设置为自动增长 AUTO_INCREMENT
-- UNIQUE 唯一性约束
-- 检查约束 设置条件
CREATE TABLE student(
numble INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(6) NOT NULL COMMENT'姓名',
gender CHAR(1) NOT NULL,
birthday DATE NOT NULL,
phone VARCHAR(11)NOT NULL UNIQUE,
height DECIMAL(3,2) CHECK(height<3),
reg_time DATETIME
)