数据库中持久存储数据的介质。 计算机中的数据库,就是能够高效的组织与管理数据的介质(内存、硬盘)
是指以处理记录类型为节点的网络模型来存储与管理数据。
层次数据库是网状数据库之后的一种数据库,将数据组织成一种有序有向的树状结构。
就使用二维表模型来存储与管理数据库。
关系型数据库就是使用关系模型来组织与管理数据的数据库。 关系模型就是二维表模型,而一个关系型数据库是由多个二维表及表之间的联系组成的数据库的集合。 关系:关系就是具有行列结构的表格,每个关系都有一个关系名,对应数据库中的数据表。 元组:元组可以理解为二维表中的一行,也就是数据表中的一条记录。 属性:属性可以理解为二维表中的一列,也就是数据表中的一个字段。 域:是限制属性的取值范围,也就是对列的一种约束。 关键字:能够唯一标识元组(记录),一组属性(字段)。
大型数据库:Oracle(甲骨文)、DB2(IBM公司) 中型数据库:MySQL(甲骨文)、SQL Server(微软公司) 小型数据库:Access(微软公司)
MangoDB、Redis
Structure Query Language 结构化查询语言,主要用于对数据进行操作 DML Date Manuplation Language 数据操作语言 update、insert、delete DQL Date query Language 数据查询语言 select DDL Date Defination Language 数据库定义语言 create DCL Date Control Language 数据控制语言 grant TCL Transaction Control Language 事物控制语言
语法
show databases;说明: 查看当前有多少个数据库存在 information_schema、mysql、performance_schema是系统数据库
语法: create database 数据库名 【库选项】; 说明: 用于创建数据库,数据库名不要与MySQL的关键字重复,如果真的需要使用关键字,必须使用反引号(``)将数据库名括起来。 【库选项】: charset 用于设置存储字符集 collate 用于设置校验集 当创建一个数据库后,会在硬盘中创建一个同名的文件夹。 MySQL语句规则: 每条语句后必须使用;结束。分号加回车的作用是将客户cmd窗口中输出的命令或数据传递远程的服务器。
语法
show create database 数据库名;说明: 用于查看数据库创建语句,可能获取库选项的相关信息。
语法:
drop database 数据库名;语法:
use 数据库名;说明: 由于表是存储在某个具体的库中,所以要对表操作,需先进入到指定的数据库中 拓展: \s 可以查看数据库信息,其中包含当前所在数据库的信息。
语法:
set names 客户端的字符集说明: 用于明确的告诉服务器,当前客户端与之通讯的编码是什么。
语法:
show tables;说明: 查看当前数据库有多少个数据表存在。
语法:
create table 表名( 字段名 列类型 【列属性】, 字段名 列类型 【列属性】, ... )【表选项】说明: 列类型就是所定义的列的取值限制(对应程序中的数据类型) 【表选项】 charset 设置存储字符集 collate 设置校验集 engine 设置引擎 提示: 当创建一个表后,仅仅是创创建了一个表的结构(表头)。
语法:
desc 表名;语法:
show create table 表名;语法:
drop table 表名;语法:
insert into 表名【(字段列表)】 values(值列表);说明: 字段列表中字段名不需要加引号。 值列表中的字符型的值必须加引号。 字段列表中字段的个数要与值列表中的个数一致,顺序一致。 字段列表可以省略,即表示全部字段插入数据。值列表中值的顺序要与表中字段的顺序一致
说明: * 所有的字段 字段列表 部分字段
根据where子句表达式,对记录进行筛选.既然是表达式,就会涉及到运算符 MySQL的运算符: >,<,>=,<=,<>,=,and,or,between m and n,in(值列表),is null,like = 用于判断是否相等,同时也是复制运算符 and,or 逻辑与,逻辑或 between m and n 字段的值介于m和n之间 in(值列表) 字段的值等于值列表中的某一个 is null,is not null 用于判断null值的运算符 like 用于模糊查询,必须与两个占位符匹配使用 占位符:%,_ % 代表当前位置极其后面0个或多个字符 _ 代表当前位置的1个字符
语法:
select 表名 set 字段1=值,字段2=值,...【where子句】;说明: 根据where子句匹配到的记录进行修改,若省略where则表示所有记录都匹配
语法:
delete from 表名 【where子句】说明: 将where子句匹配到的记录删除
总结: 对于结构的查看,使用的是show 对于数据的查看,使用的是select
语法:
float(m,d); double(m,d);说明: m 表示总数位 d 表示小数位 整数位=m-d 说明: 浮点型会出现精度丢失的问题 对于float类型仅能精确到5到6位,多余的位会用0代替 对于double类型仅能精确到14到15位,多余的位会用0代替
语法:
decimal(m,d);说明: m 表示总数位,最大取值为65 d 表示小数位,最大取值为30 小数一般用decimal
语法:
char(len);说明: len表示字符的个数,最大是255
语法:
varchar(max);说明: max表示字符的个数,最大是65535(有很多限制条件)
表的存储字符集设置的列属性实际存储的数据实际所占的空间utf8char(10)510*3=30utf8varchar(30)55*3=15text也是一个系列,包含: tinytext、text、、mediumtext、longtext,唯一的不同就是能存储的字符的多少的不同
blob也是一个系列,包含: tinyblob、blob、mediumblob、longblob,唯一的不同就是能存储的数据的多少的不同,blob可以存储二进制数据
用于规范数据,只允许用户从多个预定义的数据中选取一个 语法:
enum(值列表);用于规范数据,允许用户从多个预定义的数据中选取多个 语法:
set(值列表);查看MySQL所支持的字符集
show charset校验集就是某一种字符集中的比较规则。也就是是否区分大小写。
查看校验集
show collation提示: 虽然有很多校验集,但通过观察发现主要以三种方式结尾
_csCaseSensitive大小写敏感(区分大小写)_isCaseInsensitive大小写不敏感(不区分大小写)—bin二进制区分大小写校验集主要体现在比较上。