什么是数据库?
数据库其英文名称为(database)简称为DB,其是一种以以一定方式存储在一起,能与多个用户共享,具有尽可能小的冗余度,与应用程序彼此独立的数据集合。我们也可以将数据库理解为一个电子版文件柜,用户可以通过计算机操作对文件柜中所存放的文件进行新增,查询,更改,删除等操作。
什么是数据库管理系统?
数据库管理系统(Database Management System 简称为DBMS ),它是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系用可以依据它所支持的数据库模型来作以分类,也可依据所支持的计算机类型来做分类,也可依据所用的查询语言来进行分类,分类方式可以选择很多,但是,无论我们使用哪种分类方式,我们要知道,一些DBMS是可以支持跨类别的,例如一些数据库管理系统就支持多种语言查询。
当下流行的一些数据库的分类
关系型数据库 | 非关系型数据库 |
---|---|
MySQL | BigTable(google) |
PostgerSQL | Cassandra |
Microsoft SQL server | mongoDB |
Oracel | couchDB |
Sybase | Apache Cassandra |
dBASE | Dynamo |
foshub | LevelDB |
可见我们学习的这个MySQL是一种典型的关系型数据库
数据库模型
- 对象模型
- 层次模型(轻量级数据访问协议)
- 网状模型(大型数据存储)
- 关系模型
- 面向对象模型
- 半结构化模型
- 平面模型(表格模型,一般在形式上是一个二维数组)
数据库的架构
数据库的架构大致可以分为三个概括层次:内层,概念层和外层。
- 内层:最接近实际的存储体,就是有关数据的真实存储方式。
- 外层:最接近用户,就是用户查看数据的方式。
- 概念层:介于两者之间的间接层。
MySQL数据库简介
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
MySQL的安装及连接
具体步骤为:
1.下载得到MySQL的安装压缩包 下载官网 : https://www.mysql.com/
得到一个这样子的安装包后选择好解压
2.解压好之后将文件bin目录的路径添加到系统的环境变量path中
桌面上右键“我的电脑”选择属性,点击“高级系统设置”
打开后选择环境变量
双击系统变量中的path
之后选择新建,粘贴复制的路径
在bin目录的上级目录新建文件"my.ini",文件编辑以下内容后保存(注意文件保存时的编码格式一定要是ANSI,这个在保存的时候有提示)。
[mysqld]
basedir=D:\Program Files\mysql-5.7\ //等号后面的内容就是你自己的解压路径
datadir=D:\Program Files\mysql-5.7\data\ //等号后面的内容就是你自己的解压路径
port=3306
skip-grant-tables
3.然后在运行框输入cmd,右键点击程序选择以管理员身份打开命令窗口(否则之后对MySQL的指令会回复MySQL拒绝访问)将路径切换至mysql下的bin目录(这里是使用dos命令来进行操作),然后输入mysqld –install (安装mysql)
再输入 mysqld --initialize-insecure --user=mysql 初始化数据文件
4.然后使用命令 net start mysql启动mysql 然后用命令 mysql –uroot –p 进入mysql管理界面(密码可为空)
5.进入界面后输入语句:update mysql.user set authentication_string=password(‘123456’) where user=‘root’ and Host = ‘localhost’; 这里我们是将登陆连接MySQL的密码改成了123456
6.修改完成后,在输入 flush privileges; 刷新权限。
7.将刚才的my.ini文件内的最后一句“skip-grant-tables”删除后保存文件。
8. 输入 exit 退出Mysql。
9.输入 net stop mysql 终止mysql服务。
9.重启 MySQL 同样的我们以管理元 身份打开命令窗口,然后输 net start mysql 。
10.重启MySQL,然后使用命令 mysql -uroot -p123456 就可以成功进入MySQL服务。
最终成功显示页面
安装MySQL其实类同于安装其他的一些软件编译工具一般,大致过程都是解压压缩包,然后配置环境变量,最后校验登陆。当然过程本身没有任何的难度,关键问题是如果在安装过程中根据个人不同会遇到各种各样的其他问题,比如说,有的个人电脑少了一些驱动,需要补丁修复,有的安装时重复安装,服务无法启动此类问题。这些问题,基本上在网络问答上都有解决,我建议是遇到问题首先核对自己的操作是否符合流程,以及内容有没有疏忽遗漏,检查无误在考虑其他的因素。当然,一般时么有问题的啦。
mysql命令操作
首先我们试一下几个最简单的命令操作:
update user set password=password('123456')where user='root'; 修改密码
flush privileges; 刷新数据库
show databases; 显示所有数据库
use dbname; 打开某个数据库
show tables; 显示数据库mysql中所有的表
describe user; 显示表mysql数据库中user表的列信息
create database name; 创建数据库
use databasename; 选择数据库
exit; 退出Mysql
? 命令关键词 : 寻求帮助
# 表示注释
这些命令都可以在命令窗口直接输入,回车后即可执行,保证输入的命令正确,则可以执行指令。
接下来我们可以通过以上指令来进行一个名为class的数据库名称创建,然后还需要在此数据库中创建一个一个student表,里面有三列,记录上学生的姓名和性别以及年龄,这是一个最为简单的数据库中的表的创建。
创建数据库,库名为class
这样我们就成功创建了一个新的数据库,但这个数据库里什么数据表都没有,目前就是一个空的数据库;所以我们现在创建一个数据表将并将其放入该数据库;
创建数据表的语句
create table [if not exists] `表名`(
'字段名1' 列类型 [属性][索引][注释],
'字段名2' 列类型 [属性][索引][注释],
#...
'字段名n' 列类型 [属性][索引][注释]
)[表类型][表字符集][注释];
1.字段名表示的就是你所要创建的数据表的每列的列名称。
2.列类型用来规定该列所存数据的数据类型,SQL语句中的数据类型大致可以分为四大类
- 数值类型
类型 | 说明 | 存储需求 |
---|---|---|
tinyint | 非常小的数据 | 1字节 |
smallint | 较小的数据 | 2字节 |
mediumint | 中等大小的数据 | 3字节 |
int | 标准整数 | 4字节 |
bigint | 较大的整数 | 8字节 |
float | 单精度浮点数 | 4字节 |
double | 双精度浮点数 | 8字节 |
decimal | 字符串形式的浮点数 | m个字节 |
- 字符串类型
类型 | 说明 | 最大长度 |
---|---|---|
char(M) | 固定长度的字符串,检索快,但费空间(M<=225) | M字符 |
varchar(M) | 可变字符串(M<=65535) | 可变长度,长度值可以小于等于M |
tinytext | 微型文本串 | 1023字节 |
text | 文本串 | 1048575字节 |
- 日期和时间型数值类型
类型 | 说明 | 取值范围 |
---|---|---|
DATE | YYYY-MM-DD,日期格式 | 1000-01-01~9999-12-31 |
TIME | hh:mm:ss,时间格式 | -838:59:59~838:59:59 |
DATETIME | YY-MM-DD hh:mm:ss | 1001-01-01 00:00:00至9999-12-31 23:59:59 |
TIMESTAMP | YYYYMMDDhhmmss格式表示的时间戳 | 197010101000000~2037年的某个时刻 |
YEAR | YYYY格式的年份值 | 1901~2155 |
- NULL值(就是么有值或者是未知值,注意不要用NULL进行算术运算,运算结果仍然为NULL)
3.数据字段属性
属性名称 | 属性作用 |
---|---|
UnSigned | 无符号的,声明该数据列不允许负数 |
ZEROFILL | 0填充的,不足位数用0来进行填充 |
Auto_InCrement | 自动增长的,每添加一条数据,自动在上一个记录数上加1,通常用于设置主键,且为整数类型,单也可定义起始值和设置步长(AUTO_INCREMENT=100)此类设置只影响当前表;SET @@AUTO_INCREMENT_INCREMENT=100;影响所有使用自增的表(此步长值使用到全局的表) |
NULL和NOT NULL | 默认值为NULL,即没有插入该列的数值,如果设置为 NOT NULL 则该列必须有值 |
DEFAULT | 默认的,用于设置该列的默认值 |
接下来我们就要在之前创建的class数据库中加入一个数据表了
先选中数据库class,我们要先进入这个数据库
然后开始创建我们想要表的结构
输入 DESC student; 查看表的结构
并且这里我们注意在创建表的结构的时候,最后一行的指令
ENGINE=InnoDB DEFUALT CHARSET=utf8
这两句指令是明确了数据表的类型(也就是该表的引擎类型),数据表类型可以分为MyISAM , InnoDB , HEAP , BOB , CSV等…常见的 MyISAM 与 InnoDB 类型
名称 | MyISAM | InnoDB |
---|---|---|
事务处理 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约两倍 |
适用场合:
- 适用MyISAM : 节约空间及相应速度
- 适用InnoDB : 安全性 , 事务处理及多用户操作数据表
数据表的存储位置 :
MySQL数据表以文件方式存放在磁盘中
包括表文件 , 数据文件 , 以及数据库的选项文件
位置 : Mysql安装目录\data\下存放数据表 . 目录名对应数据库名 , 该目录下文件名对应数据表 .
注意 :
InnoDB类型数据表只有一个 *.frm文件 , 以及上一级目录的ibdata1文件
MyISAM类型数据表对应三个文件 :
- . frm – 表结构定义文件
- . MYD – 数据文件(data)
- . MYI – 索引文件(index)
接下来我们可以对我们的表进行一些小修改,比如说我们现在还想知道学生的个人电话号码,这就得我们往已有的表里添加一个字段,这里,我们使用ALTER 语句进行操作;
修改表( ALTER TABLE )
- 修改表名 :
ALTER TABLE 旧表名 RENAME AS 新表名 - 添加字段 :
ALTER TABLE 表名 ADD字段名 列属性[属性] - 修改字段 :
ALTER TABLE 表名 MODIFY 字段名 列类型[属性]
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性[属性] - 删除字段 :
ALTER TABLE 表名 DROP 字段名
这里我们通过指令来添加字段:
再看看表的结构:
可见我们添加成功了;