为了将数据持久的保存起来 java中的对象都是存储在内存中,程序结束数据都销毁
之间学习IO,将数据存储在文件中,但是内容整体是一个字符串,使用起来不方便
所以我们需要学习一种专业存储数据的软件---数据库.
数据库不仅可以持久的保存数据,还可以方便的提取数据.
为了方便数据的存储和管理(增删改查),将数据按照特定的规则存储起来,就是一个存储数据的仓库
数据库(DataBase DB)可以称为数据库
数据库管理系统 (DataBase Management system) 数据库管理软件---全称
以后得软件开发,数据库是不可或缺的.
国外:
MySQL: 快捷、可靠 开源、免费
oracle:功能强大,收费,
SOL Server(微软): 只能安装在windows操作系统
DB2 (IBM) :适合处理海量数揭,收费
政府一些项目慢慢的向国产化软件靠拢,
麒麟操作系统
国内:
南大通用GBASE: 天津南大通用数据技术股份有限公司
达梦: 武汉达梦数据库股份有限公司
人大金仓:北京人大金仓信息技术股份有限公司
神通:神舟通用公司
MySQL最早是由瑞典的MySQL AB公司开发的,现在被oracle公司收购了
MySQL是一款关系型数据库
在关系型数据库中,基本单位是表,一个表存储一类信息,表与表之间存在关联关系
MySQL是开源的,也就是免费的
具有快速,可靠和易使用的特点
使用标准的SQL语言,并且支持多种操作系统(在Windows和Linux中都可以安装)
支持多种语言(支持Java,c,c++,Python,PHP,c#连接)
现在MySQL有商业版(收费)与社区版(免费)
登录:mysql [-hlocalhost -P3306](本机可省略) -uroot -p(可以直 接写密码,不能有空格)
-h:主机名
-P:端口号
-u:用户名
-p:密码
退出:exit
查看当前所有的数据库:show databases;
选择指定的库:use 库名
查看当前的所有表:show tables;
查看其他库的所有表:show tables from 库名;
查看mysql版本 select version();
Structured Query Language (结构化查询语言)
数据库操作语言
也属于一种编程语言,专门用作数据库操作
sql语言中又分为3个不同分支
1.ddl 数据(结构)定义 创建表
2.dml数据操作 增删改
3.dql 查询语句
-- 创建数据库
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个字符,实际占有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
-- NOT NULL 不能为空约束
-- UNIQUE 唯一性约束
-- 检查约束 设置条件
CREATE TABLE student(
number INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号主键',
NAME VARCHAR(6) NOT NULL COMMENT '姓名',
gender CHAR(1) COMMENT '性别',
birthday DATE COMMENT '生日',
phone VARCHAR(11) NOT NULL UNIQUE COMMENT '电话',
height DECIMAL(3,2) CHECK(height<3) COMMENT '身高',
reg_time DATETIME
)