数据库基本概念
数据库分类
网络数据库
层级数据库
关系数据库
建立在关系模型基础上的数据库,借助于集合代数等数学概念的方法来处理数据库中的数据
关系型数据库
数据库的另外一种区分方式:基于存储介质
存储介质分为:磁盘和内存
关系型数据库:存储在磁盘中
非关系型数据库:存储在内存中
关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成
关系数据结构:数据以什么方式来存储,是一种二维表的形式存储
关系操作集合:如何来关联和管理对应的存储数据,SQL指令
关系完整性约束:数据内部有对应的关联关系,以及数据与数据之间也有对应的关联关系
SQL分类
1、数据查询语言
用于查询数据:代表指令为select/show
2、数据操作语言
用于写数据:代表指令insert/update/delete
3、事务处理语言
用于事务安全处理:代表指令transaction
4、数据控制语言
用于权限管理:代表指令为grant/revoke
5、数据定义语言
用于结构管理:代表指令create和drop(alter)
mysql服务端架构
以下几层构成
1、数据库管理系统(最外层):DBMS,专门管理服务器端的所有内容
2、数据库(第二层):DB,专门用于存储数据的仓库
3、二维数据表(第三层):Table,专门用于存储具体实体的数据
4、字段(第四层):Field,具体存储数据(实际存储单元)
常用关键字
Row:行
Column:列
sql基本操作指令
库操作
创建数据库
基本语法:
create database 数据库名字[库选项]
库选项:数据库的相关属性
字符集:charset 字符集,代表着当前数据库下的所有表存储的数据默认指定的字符集(如果当前不指定,那么采用DBMS默认的)
例如:create database 数据库名字 charset gbk;
校对集:collate 校对集
显示数据库
每个数据库文件夹下都有一个opt文件。保存的是对应的数据库选项
指令:
显示全部
指令:show database
注意:
information_schema 保存数据库所有的结构信息(表,库)
mysql 核心数据库:权限关系
performance_schema 效率库
test 空库
显示部分
指令:show database like '匹配模式';
_:匹配当前位置单个字符
%:匹配指定位置多个字符
获取以my开头的全部数据库:
例如:show database like 'my%';
获取以m开头,后面第一个字母不确定,最后为database的数据库:'m_database'
获取以database结尾的数据库:'%database';
显示数据库创建语句
指令:show create database 数据库名字;
选择数据库
为什么要选择数据库?
进入到对应的数据库
基本语法:use 数据库名字;
修改数据库
修改数据库字符集(库选项):字符集和校对集
基本语法:alter database 数据库名字 charset(=)gbk;
一旦修改成功,对应的opt文件会体现
5.5之后不可以修改数据库名字
删除数据库
基本语法:drop database 数据库名字;
表操作
创建数据表
普通创建表
基本语法:create table 表名(字段名 字段类型 [字段属性],字段名 字段类型 [字段属性],...)[表选项]
注意:要选择放在哪个数据库
方式1、用.链接
create table 数据库名字.表名(
name varchar(10)
);
方式2、先用use进入数据库
表选项:与数据库选项类似
Engine:存储引擎
Charset:字符集,只对当前自己表有效
Collate:校对集
例如:
create table 数据库名字.表名(
name varchar(10)
)charset utf8;
复制已有表结构
只复制结构,如果表中有数据不复制
基本语法:create table 新表名 like 表名;//只要使用数据库.表名,就可以在任何数据库下访问其他数据库的表名
显示数据表
基本语法:show tables;
匹配显示表
基本语法:show tables like '匹配模式';
显示表结构
本质含义:显示表中包含的字段信息(名字,类型,属性等)
Describe 表名
Desc 表名
show columns from表名
一般用Desc
显示表创建语句
不是自己输入的,被加工过
基本语法:show create table 表名;
mysql有多种语句结束符
;与/g表示的效果一样,字段在上排横着,下面跟对应的数据
/G 字段在左侧竖着,数据在右侧横着