数据库定义(DB: DataBase):
依照某种数据模型进行组织,并存放到计算机存储设备中的集合。
主流的DBMS系统:
Oracle: Oracle,Mysql
Microsoft: SQL server
IBM: DB2
Sybase: Sybase
加州大学伯克利分校
数据管理的三个阶段:
数据,程序绑定在一起
-管理简单
-缺点:数据不能贡献,不能单独保存
文件管理系统:
-数据保存在文件,单独存放在外部存储设备
-优点: 能够实现数据共享,数据和程序分离
-缺点:数据联系较弱,数据冗余,一致性差
数据库管理阶段:
-单独使用一套软件,进行数据的管理
-优点:
数据库独立共享,冗余度低
提供方便友好的接口
更强的安全性,可靠性
提供了丰富的工具(性能优化,备份恢复)
数据库的概念模型:
a)层次模型
b)网状模型
c)关系模型
-当前主流模型
-使用二维表(关系)表示数据,数据之间的联系
d)非关系模型
关系术语:
-实体:现实中可以区分的事物(对象)
-关系:规范的二维表,每一列都不可再分
-元祖:表中的一行叫元祖,表示一个实体信息
-属性:表中的一列,描述一个实体的某个数据值也称为‘字段’
-键(Key):可以唯一区分实体的属性,称为键
-主键(primary Key):多个键中选取一个作为主键从逻辑上唯一区分一个实体,主键非空,不重复
关系模型的优点:
- 建立在严格的数学理论知识
- 概念简单,单一,结构清晰能够用简单的模型表达出复杂的数据关系
2.MySQL简介:
1)开源的,使用广泛的关系型数据库MariaDB,与MySQL兼容
2)特点
-开源,成本低
-体积小,速度快
-支持主流的操作系统,UNIX/Linux/windows等
-使用的c/c++编写,可移植性强,
-支持丰富的编程语言接口、C,C++,Python,Java,PHP
3)版本
-社区版:开源免费,不提供官方支持
-企业版:付费版
-集群版:开源免费,将多台服务器封装成一个逻辑上的服务器
-高级集群版:付费版
MySQL操作:
1)sql语言:结构化查询语言(structured Query Language)
2)功能: 用来对DBMS系统进行操作 库,表管理数据的增、删、改、查(CRUD操作)
3)特点:
不区分大小写,对大小写不敏感
不支持TAB自动补齐
以(分号);结束
使用\c可以废弃写错了的语句
4)库操作:
-查看库 :show databases;
-创建库 :create database 库名称 charset = 字符集
示例:创建名称为bank的库,使用utf8字符集
create database bank default charset = utf8;
-查看当前库:select database();
-删除数据库: drop database bank;
-进入/切换库: use 库名称
eg:use bank;
5)库中包含的内容
-库中包含表、视图(View)、索引(Index)、触发器(Trigger)、存储过程(sp)、用户(user)
-命名规范:
1、由字符,数字,下划线构成。不能全是数字
2、库名称区分大小写
3、库名称必须唯一
4、避开MySQL的关键字
6)表操作(重点!!!)
a)创建表
create table 表名称(
字段1 类型(长度) 约束,
字段2 类型(长度) 约束,
...
)default charset=字符集;
注意:语句中除了注释的部分,不能出现中文字符,括号必须匹配,并且嵌套正确,最好成对书写
data日期类型
查询数据:
-格式:
select * from 表名[where 条件]
select 字段列表 from 表名 [where 条件]
- 示例1:查询全部字段
select * from acct;
- 示例2:指定字段查询部分字段
select acct_no,acct_name,balance form acct;
- 示例3: 查询指定字段,并且为字段起名字
select acct_no "账号",
acct_name "户名",
balance "余额"
from acct;
mysql 数据类型:
1)主要数据类型:
- 数值类型:整数,浮点数
- 字符类型
- 日期时间
- 枚举类型: 值相对较少,范围较固定
2) 数值类型
- 整数 : TINYINT(1字节) SMALLINT(2字节)int(4字节), BIGINT(8字节)
- 浮点: Decimal 长度可变,精确数字,可指定小数位数
Decimal(16,2) 表示最长16位,小数2位
3) 字符串类型
-char: 定长字符串最大保存255字符,如果长度不足,使用空格填充,超过规定长度,无法存入
-varchar: 可变长字符串(使用最多),最大可保存65535个字符按照实际大小分配存储空间字符超过最大长度,无法写入
4)枚举类型