mysql的增删改查,高级操作(视图、触发器、函数、存储过程等),优化、部署
- 数据库:database 存储数据的仓库
数据库:高效的存储和处理数据的介质(介质主要是两种:磁盘和内存) - 分类:数据库存储介质的不同,进行了分类,分为两类“关系型数据库(sql)”和非关系型数据库(NoSQL: Not Only SQL)
- 不同的数据库阵营中的产品有哪些
关系型数据库
- 大型:Oracle,DB2
- 中型:sql-sercer mysql等
- 小型:access等
非关系型数据库:memcached,mongodb,redis(同步到磁盘)
- 两种数据库阵营的区别?
关系型数据高:安全(保存磁盘基本不会丢失,)容易理解,比较浪费空间(二维表)
非关系型数据库:效率高,不安全(断电丢失)
关系型数据库
- 关系型数据库:是一种建立在关系模型(数学模型)上的数据库
关系模型包含3个结构:
- 数据结构:数据存储的问题,二维表(有行和列))
- 操作指令集合:所有SQL语句
- 完整性约束:表内数据约束表与表之间约束(外键)
2. 关系型数据库的设计
从需要存储的数据需求分析,如果是一类数据(实体)应该设计成一张二维表:表是由表头(字段名:用来规定数据的名字)和数据组成部分(实际存储的数据单元)
学生表
班级表
解决办法:在学生表中增加一个字段来指向班级(必须能够唯一的找到一个班级信息)
学生实体和班级实体的关联关系:实体一天实体之间的关系
关键字说明
关键字不区分大小写 关键字推荐大写
数据库 database
数据库系统 DBS (database system) 是一种虚拟系统,将多种内容关联起来的称呼
DBS=DBMS+DB
DBMS: Database Management System 数据库管理系统,专门管理数据库
DBA Database Administrator 数据库管理员
行/记录:row/record,本质是一个东西,都是指表中的一行(一条纪律):行是从结构角度出发,记录是从数据角度出发
列/字段:column/field,本质是一个东西
SQL
SQL:stuctured Query Language 结构化查询语言(数据以查询为主,半分之99是在进行查询)
SQL分为三个部分
- DDL Data Defintion Language 数据定义语言,用来维护存储数据的结构,代表指令:create,drop,alter等
- DML Data mainpulation Language 数据操作语言,用来对数据进行操作(数据表中的内容),代表指令:insert,delete,update等:其中DML内部又单独进行了一个分类:DQL(data Query Language 数据查询语言,如select)
- DCL Data control Language,数据控制语言,主要是负责全县管理(用户),代表指令:grant,recoke等
sql是关系型数据库的操作指令,sql是一种约束,但不强制(类似w3c):不同的数据库产品(如Oracle,mysql)可能内部会有一些细微的区别
Mysql数据库
Mysql数据库是一种c/s结构的软件:客户端/服务端,若想访问服务器必须通过客户端(服务器一直运行,客户端在需要使用的时候运行)
交互方式
1. 客户单连接认证:连接服务器,认证身份:mysql.exe-hPup
2. 客户端发送sql指令
3. 服务器接收sql指令:处理sql指令:返回操作结果
4. 客户端接收结果:显示结果
5. 断开连接(释放资源,服务器并发限制 )
mysql服务器对象
没有办法完全了解服务器内部的内容:只能祖略的去分析数据库服务器的内部的结构
将mysql服务器内部对象分成四层:系统(DBMS)-》数据库(DB)-》数据表(table)-》字段(field)
sql基本操作
基本操作:CGUD
将SQL 的基本操作根据操作对象进行分类,分成三类:库操作。表操作(字段),数据操作
库操作
对数据库的增删改查
新增数据库
基本语法 create database 数据库名字[库选项];创建数据库
库选项:用来约束数据库。分为两个选项
字符集设定:charset/character set 具体字符集(数据存储的编码格式):常用字符集,gbk和utf-8
校对集设定:collate 集体校对集(数据比较的规则)
cls 清屏
注释: # 注释
– 注释 带空格
/注释/
char 的存取速度快
字段名的修饰(列明)
unsigned 无符号
auto_increment (自增)
default 默认值
comment(字段解释说明)
not null null 非空
unique(唯一索引)
index(普通索引)
key
primary key (主键)
auto_increment 必须制定 primary key
!= <> 不等于