数据库:管理数据的仓库,其本质是一种数据结构。
一、数据
数据:即信息,包括视觉信息、听觉信息等等。当前数据库主要存储的是视觉信息(数字、文字等等)
二、数据库的组成
数据库是由一张张数据表组成的。
数据表由字段(属性)与记录(元组)组成。
字段包括主键、联合主键、外键、其他字段
主键:能够唯一标识记录的字段。
只要能够唯一标识记录的字段都可以作主键,所以主键存在一个选择问题。我们要选择不可更改的能够唯一标识记录的字段作主键,因为主键是用来定位记录的,不可更改,否则会出现找不到的情况。一般选择XX编号作为主键,不用身份证、手机号等等作主键,它们可能也会更改 在关系数据库中,记录不可以相同,指的是两条记录主键字段值不可以相同
联合主键:用多个字段(属性)唯一标识记录,这多个字段就是联合主键。
不推荐使用,因为分析起来比较麻烦
外键:(在其他数据表中是主键)且(在本数据表中不是主键)的字段。
其他字段:除了主键(单)、联合主键、外键以外的字段。
字段的数据类型包括数值型、字符型、时间型。
- (数值型)数据类型
整数型,常用Int(x),表示范围是【-2^31,(2^31)-1 】
-->Int
4个字节,实际范围是【-2^31,(2^31)-1】
-->Smallint
2个字节,实际范围是【-2^15,(2^15)-1】
-->Tinyint
1个字节,实际范围是【-2^7,(2^7)-1】
浮点数型,常用Double
-->Float
单精度浮点数,4个字节
-->Double
双精度浮点数,8个字节
- (字符型)数据类型
-->Char(n),表示范围同Varchar(n)
-->Varchar(n),表示范围【n位字符,n位字符】,负号“-”也算一位字符
n表示“表示范围”为n个字符,必须赋值。 Char(n)相较于Varchar(n)更占空间,如果用Char(5)与Varchar(5)分别存abc,Char(5)会用空格占剩余的两位,而Varchar(5)不会占用。 推荐使用Varchar(n)
- (时间型)数据类型
-->Date
存放数据格式为“YYYY-MM-DD”(年月日)
-->DateTime
存放数据格式为“YYYY-MM-DD HH-MM-SS”(年月日时分秒)
字段的常见约束包括“非空约束”、“唯一约束”、“自增约束”、“主键约束”、“外键约束”
-->非空约束(NOT NULL)
该字段值不能为空
-->唯一约束(UNIQUE)
该字段值不能重复
-->自增约束(AUTO_INCREMENT)
该字段值默认从1开始,增长单位为1,随着记录增加开始增加。
-->主键约束(PRIMARY KEY)
该字段值是记录的主键
-->外键约束(FOREIGN KEY)
该字段值是记录的外键
(两个)数据表之间的关系类型有“一对一关系(1:1)”、“一对多关系(1:N)”、“多对多关系(N:N)”。
-->一对一关系(1:1)
独生子女家庭中,孩子表与母亲表。一个孩子只能有一个母亲,一个母亲也只有一个孩子,所以独生子女家庭中孩子与母亲之间的关系“有”是1:1关系。
-->一对多关系(1:N)
孩子表和母亲表,一个孩子只能有一个母亲,一个母亲可以有多个孩子,所以孩子与母亲之间的关系“有”是1:N关系。
-->多对多关系(N:N)
学生表与教师表,一个学生可以被多个老师教过,一个老师也可以教过多个学生,所以学生与教师之间的关系“教学”是N:N关系。
三、数据库的应用
数据库应用需要选择一个数据库管理系统,并学习一些SQL语句
数据库管理系统:管理数据库的应用软件。有MySQL、SQLServer、ORACLE等,这里我选择MySQL。
SQL:结构化查询语句,是一种使用数据库的语句。
MySQL官网下载:
https://dev.mysql.com/downloads/installer/dev.mysql.comMySQL安装包链接,懒得去官网下的同学自取
链接: https:// pan.baidu.com/s/1PCJjnl BJAafEuZ473E-wNQ
提取码:anl3
如果不会安装MySQL,可以参考如下文章
猴子:超级详细的mysql数据库安装指南zhuanlan.zhihu.com接下来,我们学习下数据库、数据表的基本SQL语法
->数据库的基本操作
创建数据库|CREATE DATABASE 数据库名称;
例如:CREATE DATABASE ff;
使用数据库|USE 数据库名称;
例如:USE ff;
显示所有数据库(名称)|SHOW DATABASES;
例如:SHOW DATABASES;
显示已创建数据库信息|SHOW CREATE DATABASE 数据库名称;
例如 SHOW CREATE DATABASE ff;
删除数据库|DROP DATABASE 数据库名称;
例如 DROP DATABASE gjp;
创建数据表|CREATE TABLE 数据表名(字段1名 字段1数据类型 字段1约束,字段2名 字段2数据类型 字段2约束,...,字段n名 字段n数据类型 字段n约束);
对数据表进行操作前,要先使用数据库
即USE DATABASE 数据库名;
CREATE TABLE people_infor(id int(10) PRIMARY KEY,name varchar(5) NOT NULL,telephone int(13) NOT NULL);
显示数据表信息(详细结构)|SHOW CREATE TABLE 表名;
例如 SHOW CREATE TABLE people;
删除数据表|DROP TABLE 表名;
例如:DROP TABLE people;
在数据表中新增一个字段|ALTER TABLE 表名 ADD COLUMN 字段名 字段数据类型 字段约束;
例如:ALTER TABLE Demo ADD COLUMN
在数据表中删除一个字段|ALTER TABLE 表名 DROP COLUMN 字段名;
例如:ALTER TABLE people DROP COLUMN father_name;
在数据表中修改一个字段名|ALTER TABLE 数据表名 MODIFY 原字段名 新字段名 新字段数据类型;
例如:ALTER TABLE people CHANGE mother_name father_name Varchar(5);
在数据表中修改一个字段的数据类型与约束|ALTER TABLE 数据表名 MODIFY 字段名 新字段数据类型 新字段约束;
例如:ALTER TABLE people MODIFY mother_name Varchar(8) NOT NULL;
更改数据表表名|ALTER TABLE 原表名 RENAME 新表名;
例如ALTER TABLE people RENAME people1;(把下面用到的数据表名people改成people1)
新增一条记录|INSERT INTO 表名 VALUES(字段1值,字段2值,...,字段n值);
删除数据|DELETE FROM 表名 WHERE 条件;
例如:DELETE FROM people WHERE father_name='张六';
修改数据|UPDATE 数据表名 SET 字段名=新字段值 WHERE 条件;
例如:UPDATE people SET father_name='李三' WHERE name='李四'
查询数据|SELECT 字段名1,字段名2,...,字段名n FROM 数据表名 WHERE 条件;
SELECT father_name FORM people WHERE name='张五';