mysql学习之路

                Mysql

php阶段将数据库分为三个阶

基础阶段:

mysql数据库的基本操作(增删改查),以及一些高级操作(视图,触发器,函数,存储过程等),PHP操作没有sql数据库。

优化阶段:

如何提高数据库效率,如索引,分表等。

部署阶段:

如何搭建真实的系统环境,如服务集群,负载均衡。

数据库基础

什么是数据库:

数据库:database ,存储数据的仓库(高效的存储和处理数据库的介质如磁盘、内存)

数据库分类:

1,关系型数据库:(sql型)

2,非关系型数据库(nomysql型)not only

不同数据卡产品:

关系型数据库:大型:Oracle ,DB2

中型:SQLserver,Mysql

小型:access

非关系型数据库:mencahed,moogodb,redis2

数据库的区别->两种阵营

关系型database:安全(保存在磁盘,不会丢失),浪费空间。

非关系型数据库:效率高(不够安全)

关系型数据库:

1,什么是关系型数据库:

建立在关系模型上的数据库(数学模式)

关系模型:建立在关系上的模型,三个方面。

1,数据结构:数据存储问题,二维表的行列结构

2,Sql指令集合:sql语句。

3,完整性约束:表内数据约束,表与表之间的约束。

2,关系型数据库的设计:

关系型数据库:从需要存储的数据需求分析,如果是一类数据(实体)->设计成二维表->表头(字段名field)和数据部分(实际存储单元);

二维表:行与列,

例:


表头


字段1


字段2


字段3


数据单元


数据1


数据2


数据3

实际案例:教师负责讲学,教学生,在教室。

1,找出实体。教师表,学生表,教室表。

2,找出实体数据信息: (教师)姓名,性别,年龄,工资

(学生)姓名,性别,年龄,学号

(班级)班级编号,教室号

3,关系型数据库:维护实体内部、实体与实体之间的联系。

1,实体内部的联系:每个学生都有姓名、性别、学科、学号。

学生表


姓名


性别


学号


学科


班名


张三



001


软件工程


软件工程001


小强



001


机械工程


机械工程001

第二行所有字段:都是在描述张三这个学生(内部联系)第二列只能是性别(内部约束)。

关系型数据库特点之一:如果表对应的某个字段没有值(数据),但是系统依然要分配存储空间;关系型数据库比较浪费空间。

实体与实体之间的联系:每个学生肯定属于某个班级,每个班级肯定有多个学生。


班名


教室编号


软件工程001


001


机械工程001


002

班级实体与学生实体之间的联系:实体与实体之间的联系

3,关键字说明:

数据库:database

数据库系统:DBS (database system):虚拟系统,将多种内容关联起来的称呼

DBS=DBMS+DB

DBMS:database mangerment system数据库管理系统,专门管理数据库。

DBA:database Administrator 数据库管理员。

行/记录:row/record本质是一个东西->表中的一个记录,行是从结构角度出发,记录从数据角度出发。

列/字段 column/filed,本质是一个东西。

SQL:

Structured Query language(结构化查询语言)数据库以查询为主,98%都是查询操作。

SQL分为三个部分:

DDL:data Definition Language 数据定义语言-->用来维护存储数据的结构(数据库,表)

代表指令:create ,drop ,alter

DML:data manipulation Language 数据库操作语言-->用来对数据进行操作(数据表中的内容)

代表指令:insert delete updata等其中DML内部又进行分类:DQL(database Query Language)数据查询语言,如select。

DCL:data contral Language 数据控制语言-->主要负责权限的管理(用户)

代表指令:grant ,revoke等。

SQL简介:

Sql是关系型数据库的操作指令

Sql是一种约束,但不强制(类似玩w3c组织)如Oracle,mysql内部有细微的区别。

Mysql:

Mysql数据库是一种c/s结构,客户端/服务端若想要访问服务器必须通过客户端(服务器一直运行,客户端在需要的时候运行),

交互方式

1,客户端连接认证:连接服务器认证身份

2,发送sql指令

3,服务器接受服务器指令,处理sql指令返回操作结果。

4,客户端接受操作结果,显示结果。

5,断开连接(释放资源,服务器并发限制)。

Mysql服务器对象

没有办法完全理解服务器内部的内容:

只能粗略的分析数据库服务器内部结构

将mysql数据库分为四层:

系统(DBMS)->数据库(BD)->数据表(table)->字段(filed)

SQL基本操作:

基本操作:CRUD

将sql的基本操作根据对象分为三类

1,库操作2,表操作3,数据操作

库操作:

数据库的增删改查。

新增数据库:create database 库名 [库选项]

库选项:约束数据库,分为两个选项。

字符集的设定:charset /character set +具体字符集(数据存储的编码格式,一般两种格式GBK和utf8)

校对集设定:collate +具体校对集(数据库比较规则)

-- 双中下划线注释(单行注释,也可以用#)

其中数据库不能用关键字(已经被使用的字符或保留字(将来可能会用到))。

原文地址:https://www.cnblogs.com/lqh969696/p/9612649.html

时间: 2024-11-08 12:22:25

mysql学习之路的相关文章

MySQL学习之路:多实例无法启动排错

由于我们的服务器会借给我们部分公司使用,但是部分公司有没有运维,都是开发直接操作,导致出现一些问题后直接来找我处理.为此,也学习到很多. 近来,一哥们由于不知道操作什么导致服务器直接挂掉,于是我联系机房启动机器后查看日志,没有发现什么明显的日志,只是有一条watchdog的日志信息.于是又多方搜寻关于watchdog的相关知识.发现的也大致是皮毛而已,也有部分提交一些内核信息是关于watchdog的bug.此处也无法做什么排查的(主要还是我的技术不精).只能推测是开发使用应用程序触发了watch

MySQL学习之路(五)MySQL高级查询

MySQL统计函数 count():统计数量: max():统计最大值: min():统计最小值: avg():统计平均数: sum():统计和: Select count(*) from student; MySQL排序 group by: order by: 默认是升序排序: Select * from student group by sid asc;--升序排序 Select * from student group by sid DESC;--降序排序 Select * from st

mysql学习之路_高级数据操作

关系 将实体与实体的关系,反应到最终数据表的设计上来,将关系分为三种,一对多,多对多,多对多. 所有关系都是表与表之间的关系. 一对一: 一张表的一条记录一定只对应另外一张表的一条记录,反之亦然. 例 Id 姓名 性别 年龄 电话号码 1 张三 男 23 13320848263 一对多 一张表中有一条记录,对应另一张表多条记录但是反过来,另一张表的一条记录只能对应这张表的一条记录. 例母亲与孩子的关系 多对多 一张表中的一条记录对应另外一张表的多条记录,同时另一张表的一条记录对应另外一张表的多条

mysql学习之路_外键

回顾4 连接查询: 连接多张表到一起,不管记录数如何,字段数一定会增加. 分类:内连接,外连接.自然连接,交叉连接, 交叉连接:cross join (笛卡尔积) 内连接:inner join,左右两张表有连接条件匹配(不匹配自动忽略) 外连接:left/right join 主表的一条记录一定会存在匹配保留副表数据,否则置空 自然连接:natural join 自动匹配(相同字段名) PHP操作:mysql Php充当客户端,开启mysql扩展 连接认证:mysql_connect;执行sql

MySQL学习之路(二) MySQL基础操作

进入数据库 use 库名: 创建表结构 语法:create table 库名.表名( 字段名 数据类型 约束, 字段名 数据类型 约束 ) create table text.t_user( id int(10), t_name varchar(10) --最后一行不需要逗号 ) 查看所有表 show tables; 查看表中字段属性 desc t_user; describe t_user; show columns from t_user; 重新命名表名 rename table t_use

MySQL学习之路(四) MySQL数据类型

整数型 tinyint:迷你整形,最多有256中状态:使用一个字节存储: smallint:小整形,最多有6556种状态:使用两个字节存储: mediumint:中整形:使用三个字节存储: int:标准整形:使用四个字节存储: bigint:大整形:使用八个字节存储: 浮点型 float(M,D):单精度:占用四个字节:精度范围在7位左右: double*M,D:双精度:占用八个字节:精度在15位左右: M:代表整数长度,D:代表小数个数: 超出小数长度会自发四舍五入: 日期型 datetime

MySql 学习之路-高级2

  目录: 1.约束 2.ALTER TABLE 3.VIEW 1.约束 说明:SQL约束用于规定表中的数据规则,如果存在违反约束的数据行为,行为会被约束终止,约束可以在建表是规定,也可以在建表后规定,通过ALTER TABLE 实现. 语法: CREATE TABLE TABLENAME ( COLUMN_NAME1 DATA_TYPE(SIZE) CONSTRAINT_NAME, COLUMN_NAME2 DATA_TYPE(SIZE) CONSTRAINT_NAME, COLUMN_NAM

MySQL数据库学习之路

MySQL学习之路 目录 MySQL学习之路[第一篇]:MySQL单双实例安装 MySQL学习之路[第二篇]:MySQL登陆关闭.密码修改破解 MySQL学习之路[第三篇]:MySQL增删改查.用户权授.系统函数.字段修改 MySQL学习之路[第四篇]:MySQL进程连接.交互.变量 MySQL学习之路[第五篇]:MySQL主健和索引 MySQL学习之路[第六篇]:MySQL存储引擎.事务.锁 MySQL学习之路[第七篇]:MySQL日志管理 MySQL学习之路[第八篇]:MySQL备份恢复 M

Java学习之路:2、Mysql 链接与查询

1.事实上我发现有了php的功力在里面,学习java起来还是不是很费劲,只是java就没有面向过程这一说 package second; import java.sql.*;//导入 public class mysql { public static void main(String[] args) throws SQLException{ String driver = "com.mysql.jdbc.Driver";//声明要被导入的类 String dsn = "jd