一、数据库和数据库管理系统
引言:
- 传统txt文件存储后,查询不方便,所以引入了数据库。
- 数据库快是由其数据结构决定。

1,数据库(DataBase:DB)按照一定数据结构存储和管理数据的仓库;
根据数据之间的关系,数据模型结构分为:
- (1)层次模型(只能简单表示关系层次)
- (2)网状模型(关系复杂,但是看起来乱)
- (3)关系模型(常用)
关系模型(重点)
==将复杂的关系,以简单的二元形式进行表示(即表格)。行叫记录,列叫字段。==
2.数据分类
(1)结构化数据:(09年之前)
可以通过相同的结构来进行统一管理。
(2)非结构化数据:
不能通过相同的结构来进行统一管理。
(3)半结构化数据:
介于上述两者之间(html/xml)
3.数据库分类
(1)关系型数据库:操作结构化数据
(2)非关系型数据库:非结构化
4.数据库管理系统(DataBase Management System:DBMS)管理和操作数据库的软件。
(A)关系型数据库管理系统(R:relationship RDBS)
(a)Oracle:分布式关系型数据库管理系统
- (Sun公司的,后被Oracle公司收购,很多大公司都会用,收费价格不菲,按CPU核数收费,每核十几万美元。):
- 国企一般用Oracle数据库。
(b) Mysql:开源免费的数据库。
小。支持GPL(开源软件许可证),即修改后,还必须开源。支持千万级别的数据。
(c)Sql server:中型的关系型数据管理系统(微软)
(d)DB2:IBM的:针对中小型企业的数据库管理系统。
(B)非关系型数据库管理系统(Nosql :not only sql)
Redis Hbase mengdb neo4j
二、Mysql
- Mysql是一个关系型的收据库管理系统,Mysql由Mysql ab公司创立,后被sun公司收购,后又被Oracle公司收购。
- Mysql内部通过分库分表形式管理数据。一个数据库管理系统可以管理多个数据库,一个数据库中可以存放多张表。
(一)下载安装 :
(A)下载:Oracle官网(B)Mysql官网
(B)安装(服务器)
(安装过程中需要查看服务的话: window_R调出命令提示符,然后输入 services.msc查看服务)
安装目录下的重要文件
C:\Program Files\MySQL\MySQL Server 5.7
Mysql:
Data:存放数据信息,一个目录对应一个数据库
frm文件:存放数据信息
MYD文件:存放数据信息
my.ini :mysql的配置文件
(C)客户端工具
Navicat for Mysql软件:图形化界面软件。
(二)通过cmd建立连接:
(1)切换到mysql的dbms安装目录下的bin目录下:
打开cmd,执行命令:cd C:\Program Files\MySQL\MySQL Server 5.7\bin
(2)登陆:命令:mysql -uroot -p
(3)使用:
(A)数据库database:
- (a)查看数据库
mysql>show databases; (注意s和分号)
- (B)表table
- (a)进入mysql数据库/切换数据库 mysql>use mysql
- (b)查看数据库中的表 mysql> show tables;
- (c))查看表中所有的数据 mysql>select * from user;
三、SQL(structured qurery language:结构化查询语言)
- 数据库的标准化语言:实现数据库的访问和操作。
- 对大小写不敏感
- 使用分号作为结束标志
(一)分类
(A)DDL(Data defination language)数据定义语言。
对数据库对象(数据库,表,试图,索引等)结构操作。
创建creat/修改alter/销毁drop
(B)DML(Data Management Language)数据操纵语言
insert/delete/updata/select
(C)DCL(Data Control language)数据控制语言
授权(Grant)/取消授权(revoke)
提交(Commit)/回滚(rollback)
(二)DDL:数据定义语言
例1创建数据库
create database if not exists bd1804;
drop database if exists bd1804;
create table student (
sid int,
sname varchar(20),
age int
);
(A)数据类型
(a)整型数据

(b)浮点数
- Float(m,n)m,总长度,n,小数位数
- Double(m,n)
- Decimal 16字节:精度最高,一般银行用。
(c)字符串
- Char(n):定常字符串
- Varchar(n):可变字符串,最长n,n以内根据内容定长度
- Test:长文本
(d)日期类型
- Date :年月日
- Time :时分秒
- Datatime:年月日时分秒(1000年到9999年)
- Timestamp:时间戳1970年1月1日0时0分0秒到2037年
- Year
(e)其他类型
- Blob:二进制数据(图片,视频,一般不会用。一般存图片等的路径)
- Enume(‘male’.’femal’):枚举
- Set(‘1’,’2’,’3’):集合
- Json:jason类型
例3:
碰到与关键字重合的字时,颜色会变,用反单引号引起。只是颜色变了,名字还是不变。
create table `user` (
uid int,
uname varchar(20),
`password` varchar(20),
birthday Date
);
对表结构操作的全部例子
create table student (
sid int;
sname varchar(20);
age int
);
create table `user` (
uid int,
uname varchar(20),
`password` varchar(20),
birthday Date
);
#
#
alter table student add sex varchar(20);
alter table student add cid int first;
alter table student add birthday date after cid;
desc student;
alter table student change age sage int ;
alter table student change sname sname varchar(50);
//change 必须前面是原字段,后面是新字段。modify可以只修改要改的部分。
alter table student modify sname varchar(20);
alter table student change sname sname varchar(20) after cid;
alter table student modify sname varchar (20) after cid;
alter table student drop sid;
#修改表的名称
rename table student to stu;
#清空表:把表的内容清空
truncate table stu;
desc stu;
(B)对表内容的完整性约束
(a)完整性:数据的准确性
(b)完整性约束分类
- 实体完整性(实体:记录(记录之间不能重复))
- 主键约束:primary key 设置为主键的字段必须唯一且不能为空
- 域完整性
- 引用完整性
- 自定义完整性
(1)添加主键约束例子
create table student(
sid int primary key,
sname varchar(20),
age int
);
drop table student;
create table student(
sid int ,
sname varchar(20),
age int,
primary key(sid)
);
drop table student;
create table student(
sid int ,
sname varchar(20),
age int,
primary key(sid,sname)
);
drop table student;
create table student(
sid int ,
sname varchar(20),
age int
);
alter table student add CONSTRAINT pk_sid primary key(sid);
(2)添加唯一性约束的例子
alter table student add CONSTRAINT uq_card unique(card);
(3)主键自增例子
alter table student modify sid int primary key auto_increment;
其他
(一)几个概念
- A 数据库管理系统软件安装目录
- B 数据库连接目录:其他编程语言连接数据库jar包信息 connectorJ
- C 客户端的工具的目录 Workbench
- D 数据存放的目录 ProgramData
(二)一般命令语法
\ |
命令 |
选项 |
参数 |
举例1 |
mysql |
|
|
举例2 |
java |
|
|