什么是sql数据库
数据库简单来说就是一种为了方便存储数据的一种工具。既然是工具,肯定是为了方便我们的行为而产生的。现在的我们首要任务就是 掌握这种工具。
SQL的全称是Structured Query Language(结构化查询语言),简要来说就是结构很严谨的一种数据存储的格式,怎么严谨呢,接下来就来说明。
sql学习数据库的准备
学习数据库,我们需要两样东西,一个是Mysql,另一个就是数据库管理工具(Navicat)。
- 因为我们下的数据库,它本身是没有太多能用鼠标点击的操作,所以我们在某些时候,就用Navicat来管理它。
- 数据库我们在这里选择mysql,因为它比较简单,我们去这里来下载,这里只有32位安装版的,但官方说它也适用64位的,所以大家放心下。
- 在数据库管理这里我们能清晰的看清楚数据库的层次和结构,以及它下面表和表中行和列的结构,也方便我们来构建表和手动执行一些基本的操作。总而言之就是,数据库不方便看,然后用Navicat来可视化它。
- 64位的Navicat在这里下载。
sql数据库的结构
一个数据库是由多个表来组成,这个表和我们日常所见的Excel中的表大致格式差不多。
-
一个表,是由多个行和多个列来组成的。一行代表一个记录,一列代表来描述这条记录中的一个属性。可以这样说:一个表是一个’行‘的集合组成的,每一行都由一个或者多个列来描述。
QQ截图20161027145707.png 列的分析;一个列代表了一种属性,至于这种属性是什么样的数据类型,还是要我们自己来设置的。
数据类型
文本
char(size): 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。
varchar(size):保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。
text 存放最大长度为 65,535 个字符的字符串。注释:如果值的长度大于 255,则被转换为 text 类型。
mudiumtext存放最大长度为 16,777,215 个字符的字符串。
longtext 存放最大长度为** 4,294,967,295** 个字符的字符串。
数字
int(size): 大小从-2147483648 到 2147483647 。在括号中规定最大位数。
smallint(size):大小从-32768 到 32767 。在括号中规定最大位数。
tinyint(size): 大小从-128 到 127 。在括号中规定最大位数。
float(size,d): 带有浮动小数点的小数字(-131072, +131072)。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
double(size,d): 带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
decimal(size,d) 作为字符串存储的 double 类型,允许固定的小数点。
日期
date() 格式:YYYY-MM-DD,支持的范围是从 '1000-01-01' 到 '9999-12-31'。
datetime() 格式:YYYY-MM-DD HH:MM:SS,支持的范围是从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
注意:sql对大小写不敏感。
只列出部分,详见这里
字节和字符
- 字节是计算机存储信息的基本单位。
- 字符是指计算机中使用的数字和符号。包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。1个汉字字符存储需要2个字节,1个英文字符存储需要1个字节。
主键
主关键字(主键,primary key)是被挑选出来,主关键字
作表的行的唯一标识的候选关键字。一个表只有一个主关键字。主关键字又可以称为主键。 主键可以由一个字段,也可以由多个字段组成,分别称为单字段主键或多字段主键。又称主码。并且它可以唯一确定表中的一行数据,或者可以唯一确定一个实体。
外键
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。
查询
查询的基本结构就是:
select ....( 列名 )
from ....(表名)
where ....(条件)
添加
insert into 表名称
values (值1, 值2,....)
或者
insert into 表名
(列1, 列2,...) values (值1, 值2,....)
修改
update 表名
set 某一列的值 = 新值
where 列名称 = 某值(条件)
删除
delete from 表名称
where 列名称 = 值