初识数据库
关系型数据库存在磁盘中,而非关系型数据库存在内存中。
关系数据结构:指的是数据是以什么方式来存储,是一种二维表的形式存储
本质就是二维表
关系操作集合:如何来关联和管理对应的存储数据,SQL指令
关系完整性约束:数据内部有对应的关联关系,以及数据与数据之间也有对应的关联关系。
表内约束:对应的具体列只能放对应的数据(不能乱放)
表间约束:自然界各实体都有有着对应的关联关系(外键)
小型关系型数据库:Microsoft Access,SQLite
中型关系型数据库:SQL Server,MySQL
大型关系型数据库:Oracle,DB2
结构化查询语言,简称SQL,是一种特殊目的的编程语言。SQL就是专门为关系型数据库而设计的
数据查询语言(DQL):专门用于查询数据,代表指令:select、show
数据操作语言(DML):专门用于写数据,代表指令:insert、update、delete
事务处理语言(TPL):专门用于事务安全处理:transaction
数据控制语言(DCL):专门用于权限管理:grant、revoke
数据定义语言(DDL):专门用于结构管理:create、drop(alter)
MySQL是一个关系型数据库系统
MySQL是一种开源免费的数据库产品
MySQL是对PHP的支持是最好的
MySQL中用到的操作指令就是SQL指令
启动和停止MySQL服务
MySQL是一种c/s结构:客户端和服务端
服务端对应的软件:Mysqld.exe
命令行方式
通过windows下打开cmd服务器,然后使用命令进行管理
Net start mysql服务(mysql):开启服务
Net stop mysql:关闭服务
系统服务方式
前提:在安装mysql的时候讲mysql添加到windows的服务中去了
通过命令行:services.msc 寻找MySQL的服务。
登录和退出MySQL系统
通过客户端(mysql.exe)与服务器进行连接认证,就可以进行操作。
通常:服务端和客户端不在同一台电脑上
登录
1、找到mysql.exe(通过cmd控制台:如果在安装的时候指定类mysql.exe所在的路劲为环境变量,就可以直接访问,如果没有,那么就必须进入到mysql.exe所在路径)
2、输入对应的服务器地址:-h:host -h【ip地址、域名】
3、输入服务器中MySQL监听的端口:-P :port -P 3306
4、输入用户名:-u:username -u:root
5、输入密码:-p :password -p:root
连接认证基本语法: Mysql.exe/mysql -h 主机地址 -P端口 -u用户名 -p密码
mysql -hlocalhost -P3306 -uroot -proot
注意事项:
1、通常端口都可以默认:mysql监听的端口通常是3306
2、密码的输入可以先输入-p,直接换行,然后再以密文方式输入密码
退出:断开与服务器的连接:通常mysql提供的服务数量有限,一旦客户端用完,建议就应该断开连接。
建议方式:使用SQL提供的指令
Exit; //exit待分号
\q; //quit缩写
quit;
MySQL服务端架构
MySQL服务端架构有以下几层构成;
1、数据库管理系统(最外层):DBMS,专门管理服务器端的所有内容
2、数据库(第二层):DB,专门用于存储数据的仓库(可以有很多个)
3、二维数据表(第三层:table),专门用于存储具体实体的数据
4、字段(第四层):Field,具体存储某种类型的数据(实际存储单位)
数据库中常用的几个关键字
row :行 column:列(field)
创建数据库
基本语法:create database 数据库名字【库选项】 create database mydatabase;
库选项:数据库的相关属性
字符集:charset字符集,代表着当前数据库下的所有表存储的数据默认指定的字符集 create database 数据库名字 charset 字符集名称(gdk);
校对集:collate校对集,
我们创建的数据库:其实每个数据库文件下都有一个opt文件,数据库没有指定字符集,那么就会使用DBMS默认的字符集(安装时指定),校对集随字符集。
查看全部
基本语法:show databases;
系统库:
information_schema:保存数据库中所有的结构信息(表、库)
mysql:核心数据库:权限关系
performance_schema:效率库
test:测试:空库
显示部分库:
show databases like’匹配模式’;
_: 匹配当前位置单个字符
%:匹配指定位置多个字符
获取my开头的全部数据库:‘my%’;
获取m开头,后面第一个字母不确定,最后为database的数据库;‘m_database’;
获取database结尾的数据库:‘%database’
显示数据库创建语句 show create database 数据库名字 (看到的指令并非是我们自己敲的,因为系统已经为我们改造了)
为什么要选择数据库?因为数据是存储在数据表中,表存在数据库下。如果要操作数据,那么就必须要进入到对应的数据库才行。
基本语法:use 数据库名字
会出现 database changed :表明已经进行了当前数据库环境
修改数据库:修改数据库字符集(库选项):字符集和校对集
alter database 数据库名字 charset = 字符集;
是否可以修改数据库名字?mysql 5.5之前是可以修改的,但是5.5之后是不行的。
一旦修改成功,对应的opt文件就会体现。
删除数据库
drop database 数据库名字;
删除虽然简单,但是切记要做好安全操作,确保里面数据没有问题
删除文件后,对应的存储数据的文件也会被删除(opt文件)。
创建数据表
普通创建表
create table 表名(字段名 字段类型【字段属性】,字段名 字段类型【字段属性】, … 表选项)
表必须要放在对应的数据库下:有两种方式可以将表挂入到指定的数据库下。1、在数据库名字前面加上数据库名字,用 . 连接
2、在创建数据表之前进入一个数据库
表选项:与数据库选项类似
Engine:存储引擎 mysql 提供的具体存储数据的方式
charset:字符集,只对当前自己表有效