Mysql基础知识一
1.数据库的定义
数据:描述事物符号记录。(包括数字、文字、图形、图像、声音、档案记录等)以记录形式统一的格式进行存储。 广义上的数据:出现在计算机内部的一切二进制数据流都为数据 狭义上的数据:只是数字或符号形式记录的数据2.数据层次模型:
数据存在文本文件中,采用什么结构组织数据,称为数据结构模型。
文件系统:树状模型(层次模型)
层次模型、网状结构、关系模型(数据组织成二维表,将数据组织成二维关系,类似与excel表,分为行和列)
二维关系:行(row) 列(column)
表与表的关系性 (降低数据冗余)表与表的约束性
3.数据库的构成:
数据:
表:将不同的记录(数据)组织在一起,就形成了表;用于存储数据。 (表是存储数据的唯一单元)
库:表的集合体,是存储数据的仓库,以一定的组织方式存储的互相有关的数据。
MySQL可以支持多库, ORACLE只有一个数据库
4.数据库管理系统(DBMS)
将二维关系数据结构模型规范得以实现,我们称为数据库管理系统DBMS
遵循三种基本范式才能被称为关系型数据库,关系型数据库管理系统称为RDBMS
三大范式:
第一范式:在满足关系模型基础之上,任意一列必须是原子的(不可分割)
第二范式:在满足第一范式的情况下,必须有一列的数据可以区分每一行的数据(主键)
第三范式:在满足前两范式的情况下,在表和表有连接关系的情况下,如果第一张表依赖第二张表,那么被依赖的表的字段必须是能够区别每一行的数据的字段(主键)
数据库管理系统的分类:
DBMS:数据库管理系统
RDBMS:关系型数据库管理系统
NOSQL:非关系型数据库
NEWSQL:新型数据库
关系型数据库管理系统(RDBMS)
包括 开源解决方案: mysql、mariadb、Percona-server、pgsql .....
商业解决方案: ORACLE、DB2、MS-SQL(SQLSERVER) ......
基本组成结构:磁盘空间管理器、缓冲管理器、文件和存取接口、锁管理器、事务管理器、恢复管理器、SQL引擎
关系型数据库的事务:ACID
A:原子性
C:一致性
I:隔离性
D:持久性
SQL引擎:传递SQL语句进行解释执行
数据存储 C/S架构
S:服务端,监听于套接字,接受并处理客户端应用请求、
C:客户端:CLI 命令行字符界面 GUI:图形化处理界面
5.数据库内容的部分基本概念
(1):约束:constraint 向数据表提供的数据要遵守的限制
完整性约束:表约束和键约束
主键(primary key):一个或多个字段的组合,填入的数据必须在本表中唯一标识本行,必须提供数据,不能为空(not null),一个表只能有一个。
唯一键(unique key):一个或多个字段的组合,填入的数据必须在本表中唯一标识本行,可以为空,一个表可以有多个。
外键:一个表中的某字段可填入数据取决于另一个表的主键已有的数据。
(2):索引:将表中的一个或多个字段中的数据复制一份另存,并且此些需要按照特定次序排序存储。
EG:图书馆找书,没有了索引,就要用遍历的方式,有了索引,更方便找到
3():关系运算:(非常重要,主要运用在数据的查询操作)(非常重要)
选择:挑选出符合条件的行。
投影:挑选出需要的字段。//select 可以查询字段
连接:(设计连表操作的运算)
一.正式学习Mysql
(1)如何连接mysql
在客户端 输入mysql
看到ODBC说明环境变量已经配置好了
选项 :
-uUSERNAME: 用户名 默认为超级用户root(Linux)
-hHOST:服务器主机 默认为localhost
-pPASSWORD:用户的密码 (Linux默认为空)
注意:mysql用户帐号由两部分组成:’USERNAME’@’HOST’;其中HOST用于此用户通过哪些远程主机连接mysql服务。
(2)mysql的基本使用操作 格式和基本语句
USE、、、、使用某个数据库(、、、、use是客户端,可加可不加分号,针对的对象是mySQL
SHOW、、、
显示库里面所有的表,显示所有的库
SELECT (查询表中的数据)
DESC(查询表的结构相关属性)
二.关系型数据库常见组件(视图层的组件)
数据库:database
表 :table
行:row
列:colum
索引:index
视图:view
用户:user
权限:privilege
跟程序开发相关的(sql引擎一般都支持过程式编程,支持条件判断、循环等。调用sql代码)
存储过程:procedure 直接调用,仅仅做了数据加工,不返回结果。
存储函数:function 调用完后有返回结果的代码片段
触发器:trigger 也是一片代码片段,特殊事件发生,满足条件触发。
事件调度器:event scheduler 定期执行内建任务,完成周期性调度任务
SQL语句
DDL:数据定义语言 create , drop,alter(针对的组件基本为数据库 数据表...... )
DML: 数据操作语言 INSERT,DELETE,UPDATE,SELECT////最重要
DCL:数据控制语言 GRANT,REVOKE(授权和撤销授权).....
三.SQL语句的操作:
查看mysql的状态和版本 status 相当于\s
创建库 CREATE DATABASE [IF NOT EXISTS] ‘DB_NAME’;(只是创建了一个数据库,所以里面是空的)
添加IF NOT EXISTS回避报错的风险
删除库 DROP DATABASE [IF EXISTS] ‘DB_NAME’;(非常危险,生产环境不建议使用)//【】可有可无
删了就没有回收站,永远丢失了
资料一般放在数据库里,像财务信息,银行卡号
创建表:CREATE TABLE 表名(字段1 数据类型 修饰符,字段2 数据类型 修饰符......) [ENGINE=’’]
创建表时候要弄清在哪一个库里 所以先use 哪个库
创建表先把它的列给定义好,而且这个表是一张空表,行是添加数据上才有的
查看存储引擎:SHOW ENGINES
删除表 DROP TABLE [IF EXISTS] ‘tbl_name’; (也非常危险,谨慎操作)
查询数据 SELECT col1,col2,.... FROM tbl_name;//col1...加投影字段
MySQL(windows版本)命令行的快捷操作键
ESC:光标删除至最左侧
F3:上一次命令再操作补全
F7:之前操作过的sql命令列表
exit:退出sql接口(或者quit 或者 \q