数据库基础
MySQL登录选项
mysql -h 127.0.0.1 -P 3306 -u root -p
#mysql
#-h连接的主机IP
#-P 对应主机上MySQL绑定的端口号,即指明端口号
#-u 用户名
#-p 之后换行输入密码
一、什么是数据库
补充知识:
1.MySQL本质:基于C(mysql)S(mysqld)模式的一种网络服务;此服务提供的是数据存取;是一种关系型数据库;
2.数据库一般指的是,在磁盘或者内存中存储特定结构组织的数据;即将数据库实现方案称为数据库;
3.数据库服务指的才是mysqld;
为什么使用数据库而不是直接使用文件存储数据:
文件提供了数据的存储能力,但是并没有提供数据非常好的数据管理能力(用户直接根据文件内容,具体的字段进行增删查改);所以数据库本质就是对数据内容存储的一套好的解决方案;根据字段或者要求返回一个满足需求的结果;
简单使用一下mysql:
建立一个数据库,本质就是Linux下的一个目录;
建立一张表结构,本质就是在选中数据库内创建对应的文件;
插入一些数据;
#查看一下当前MySQL的数据库
show databases;
#创建一个数据库
create database 库名;
#建立一张表结构前需要先选中数据库
use 库名;选中该数据库
create table 表名(
属性1 varchar(32),
属性2 int,
属性3 varchar(2)
);
#插入数据
insert into 表名(属性1,属性2,属性3) values(val1,val2,val3);
#查看表中数据
select * from 表名 *表示所有的属性,可以5填单一属性
二、主流的数据库
关系型数据库:
SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。 开源的同时还能够支持百万千万级数据服务;
PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
非关系型数据库:NoSQL;Not Only SQL ;作为数据存储中间件使用,redis用于数据缓存,mongodb用于文档存储的数据库,memcache与redis功能有重叠;
三、服务器,数据库,表关系
安装数据库服务器就是,就是在机器上安装了一个数据库管理系统程序;这个程序管理了多个数据库,每个数据库中有多个表结构;一般一个业务对应一个数据库;
逻辑结构是行列式的二维结构;
四、MySQL架构
客户端有三种:1.二进制文件,命令行的形式启动;2.使用语言结合MySQL的方式启动;3.图形化界面的方式启动;
服务端:第一层是连接池(连接管理,权限认证,安全等),第二层对外提供接口,做词法语法分析,进行SQL语句的解析,优化,还有数据缓存;第三层是不同种类的存储引擎,处理优化之后的SQL语句,查找对应的数据库和表结构,并且进行增删查改,完成具体的数据存储方案;第四层是依赖的文件系统;
总结:MySQL就是操作系统提供的文件系统之上的一套解决数据储存的方案;
五、SQL分类
1.DDL:数据定义语言,用来维护存储数据的结构,代表指令:create 创建库或者表,drop丢弃库或者表,alter修改表结构;
2.DML:数据操纵语言,用来对数据进行操作,代表指令:insert,delete,update;
3.DQL:数据查询语言,代表指令:select;
4.DCL:数据控制语言,主要负责权限管理和事务,代表指令:grant赋权,revoke取消权限,commit;
六、查看存储引擎
show engines;常用的是innodb和myisam;