数据库基本架构:
1.常见的数据库
学习数据库的需求分析:使用CMD命令来创建一个数据库,并对数据库中的一张分类表进行增删改查的操作。
数据库概述:
什么是数据库? 简而言之,数据库就是一个文件系统,只不过我们需要通过命令来(SQL)来操作这个文件系统。
数据库的作用: 存储数据,是数据的仓库,带有访问权限限制,不同的人有不同的权限操作。
为什么要学习数据库:Java EE 操作的都是后台数据,取出后台数据后进行封装,然后交给前端去展现。
关系型数据库:
MySQL:之前是适用于中小型企业的开源免费数据库,由于sun公司收购了MySQL,sun公司被Oracle收购之后,又开始收费了。
mariadb:由MySQL创始人搞出来的,是MySQL开源版本的一个分支,所有命令基本上一样。
Oracle:甲骨文公司(收购了sun,java),为收费软件,适用于大型商业网站。
db2:IBM公司所有,在软硬件和服务器架构提供了新的解决方案,银行系统大多数使用db2。
SQLserver:属于windows,政府网站大多采用这种,图形化工具做得好。
非关系型数据库: key :value形式
mongodb
redis
2.E-R关系图
E:Entity,代表实体;
R:Relationship ,代表关系。
关系型数据库:主要描述实体与实体之间的关系,实体表示确实存在的事务,比如学生和老师、员工和部门。
画E-R关系图时:
实体:用方框;
属性:即实体的属性,用椭圆表示;
关系:用菱形。
举例如下:
3.数据库服务器
MYSQL数据库:是一种数据库管理软件;
服务器:相当于一台电脑,这台电脑安装了服务器相关的软件,这些软件会监听不同的端口号,根据用户访问的端口号来提供相应的服务。
MYSQL数据库服务器:对于MYSQL数据库服务器,就是安装了MYSQL数据库管理软件的服务器;
注:通常,一个应用对应于一个数据库,比如:商城应用对应于商城数据库、相亲应用对应于相亲数据库。
4.MYSQL中的SQL分类
SQL:Structure Query Language(结构化查询语言),主要分为以下几类:
DDL(数据定义语言):定义数据库、数据表的结构,有:create(创建)、drop(删除)、alter(修改);
DML(数据操纵语言):主要是用来操作数据,有:insert(插入)、update(修改)、delete(删除);
DCL(数据控制语言):定义访问权限,取消访问权限,安全设置 grant;
DQL(数据查询语言):selec(查询)、from子句、where子句。
5.数据库的基本操作
1.数据库的创建
首先,要登录数据库服务器:mysql -uroot -p666666 ,这里666666为数据库服务器密码。
创建数据库:有几种格式,如下,
格式:create database 数据库名字:
create database firstdata_1;
格式:create database 数据库名字 character set 字符集;
create database firstdata_2 character set utf8;
格式:create database 数据库名字 character set 字符集 collate 校对规则;
create database firstdata_3 character set utf8 collate utf8_bin;
2.数据库的查看和修改
查看所有数据库:
show databases;
查看创建的单个数据库:
show create database firstdata_03;
修改数据库:以修改字符集为例
alter database firstdata_3 character set gbk;
3.数据库的删除
格式:drop database 数据库名字:
drop database firstdata;
注意:这里有三个数据库不能删除,分别是:information_schema、mysql、performance_schema。另外,test数据库可以删除。
4.其他数据库操作命令
切换数据库(选中数据库)
格式:use 数据库名字;
use firstdata_1;
查看一下当前正在使用的数据库:
格式:select database();
5.创建表
创建表前先选中某一个数据库:use 数据库名字;
格式:
create database 数据库名字;
create table 表名(
列名1 列的类型(长度) 约束,
列名2 列的类型(长度) 约束
);
列的类型:对于Java与SQL中列的类型,有如下比较,
其中SQL中的char(10)表示有10个大小的字符,长度固定,若只存入5个字符,则另外5个为空格;而对于varchar(10),为长度可变,若存入了5个字符,不会有空格。
列的约束:
主键约束:primary key
唯一约束:unique
非空约束:not null
主键约束和唯一约束的区别:
主键约束:默认不能为空,而且值唯一。外键指向另外一张表的主键,并且在一张表中,主键只能有一个;
唯一约束:列里面的内容必须是唯一的,不能出现重复的情况,可以为空。唯一约束不可以作为其他表的外键,并且可以有多个唯一约束。
创建表的过程:
1.分析实体,比如学生;
2.看看学生包含哪些属性:学生ID、姓名、性别、年龄。
举例:
use firstdata;
create table student1(
sid int primary key,
sanme varchar(31),
sex char,
age int
);
6.查看表
查看表前先选中某一个数据库:use 数据库名字;
查看所有表:show tables;
查看表的创建过程:show create table student;
查看表结构:desc student;
7.修改表
添加列(add):
格式:alter table 表名 add 列名 列的类型 列的约束
alter table student add chengji int not null;
修改列(modify):
alter table student modify sex varchar(2);
修改列名(change):
alter table student change sex gender varchar(2);
删除列(drop):
alter table student drop chengji;
以下两个不常用:
修改表名(rename):
rename table student to abc;
修改表的字符集:
alter table abc character set gbk;
删除表:
drop table abc;