1.简介
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
2.数据库是什么?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。 我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。 所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库, 是建立在关系模型基础上的数据库。
3.RDBMS的特点是什么?
数据以表格的形式出现;
(2)每行表示一条记录(一条信息);
(3)每列为记录所对应的属性;
(4)许多的行和列组成一张数据表;
(5)若干的表组成database;
4.安装Mysql软件
5.通过图形界面对Mysql数据库进行操作
图形界面工具有:sqlyog,navicat,mysql workbench;
(1)安装sqlyog;
(2)傻瓜式安装 ,安装完成后,创建新连接;
(3)输入MySQL服务器的ip,端口号,用户名和密码,进行连接;
(4)连接成功,进入到图形界面,进行操作;
(5)创建数据库;
注意点: (1)表的引擎选择: innodb;
(2)表的字符集: utf8;
(3)一张表只能有一个主键,主键必须唯一,非空。通过主键可以唯一确定一条记录;
(4)数据类型的选择,字符串: varchar 数字:float或int, 日期类型: date或datetime;
6.使用命令行操作数据库
(1)连接数据库
mysql -u root -p密码;
(2)查看数据库
show databases;
(3)切换数据库
use 数据库名称;
(4)创建数据库
create database 数据库名;
(5)删除数据库
drop database 数据库名;
7.通过结构化查询语句 sql 操作关系型数据库
<1> DDL
创建数据表
例:
列类型:
varchar(长度);
int;
float;
date/datetime;
数据字段属性
Unsigned:
无符号的 声明该数据列不允许负数;
ZEROFILL :
0填充的 不足位数的用0来填充 , 如int(3),5则为005;
Auto_InCrement :
自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认) 通常用于设置主键 , 且为整数类型;
可定义起始值和步长
当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表 SET; @@auto_increment_increment=5 ; 影响所有使用自增的表(全局);
NULL 和 NOT默认为NULL , 即没有插入该列的数值 如果设置为NOT NULL , 则该列必须有值 NULL ;
DEFAULT :
默认的 用于设置默认值 例如,性别字段,默认为"男" , 否则为 “女” ; 若无指定该列的值 , 则默认值为"男"的值;
primary key:
用于设置主键;
unique:
用于设置唯一性,不能重复,但是可以为空 ENGINE=innodb DEFAULT CHARSET=utf8 :SQL引擎及其约束和字符编码;
删除数据表(慎用)
drop table 表名 注意:同时删除表数据和结构。
修改表
修改表名:ALTER TABLE 旧表名 RENAME AS 新表名;
添加字段:ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ];
修改字段:ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ];
删除字段:ALTER TABLE 表名 DROP 字段名;
<2>DML
insert
update
delete
<3>DQL
数据库中表的设计遵循的设计规范:三大范式;
1.第一范式(1NF)
原子性:强调的是列的原子性,即数据库中每一列的字段都是单一属性,不可再分的。并且这个单一属 性必须是由基本的数据类型所构成的,如整数、字符串等。
2.第二范式(2NF)
依赖性:在满足1NF的基础上再满足依赖性的两个约束:一张表必须有一个主键;非主键类必须完全依 赖于主键。
3.第三范式(3NF)
在满足2NF的基础上,另外再满足一个条件:非主键列必须直接依赖于主键,不能存在传递依赖。
4.修改book表
<1>从书中拆分作者,作者与书是多对多的关系,创建 一张作者-书的中间表;
<2>从books中删除author和authordesc字段;
<3>创建分类表
5.查询语句
使用的关键字 select;
使用的关键字 select使用的关键字;
select使用的关键字 select;
数据库语言中最核心、最重要的语句;
<1>单表查询
<2>数据库中的表达式
<3>查询条件
<4>多表查
<5>排序
<6>limit限制
<7>分组聚合
<8>子查询