1 数据库基本知识
1.1基本概念
数据库:多个存在一定联系的关系表的集合。
关系表:一个二维的关系型数据的集合。
记录:关系表中的一行数据,代表一个完整的信息。比如“梁艳丽”的信息就是一条记录。
字段:关系表中的列,其包括字段名、字段类型等属性。比如:“手机号码”等字段,它的类型就是字符串。
华点H5-1703班国庆假期报道登记表 | ||||||
姓名 | 手机号码 | 离校时间 | 紧急联系人 | 返校时间 | 签字 | 备注 |
梁艳丽 | 182...531 | 2017-09-29 | 母亲182...55 | 2017-10-07 |
|
|
王珊珊 | 。。。。 | 2017-09-29 | 母亲152..12 | 2017-10-07 |
|
|
刘成 | 。。。。 | 2017-09-29 | 母亲152..12 | 2017-10-07 |
|
|
王静 | 。。。。 | 2017-09-29 | 母亲152..12 | 2017-10-07 |
|
|
杨文生 | 。。。。 | 2017-09-29 | 母亲152..12 | 2017-10-07 |
|
|
1.2为什么需要用数据库
用户也可以使用文件来存储和组织数据,比如文本文件、Excel工作簿等。但是对于它的操作(比如添加数据、删除数据)实现起来是比较复杂的,而且效率不高。
数据库实际上是由大型产商为我们提供的存储和组织大量(甚至海量)数据的管理软件。大大简化了用户的操作,关键是效率高(因为是经过深度优化的)。
常见的数据库产品有Oracle、DB2、SQLServer、MySQL,MySQL是一个免费的、中小型数据库。
2 数据库基本操作
2.1链接
1、新建连接
2.2建立数据库
2.3建表
2.4添加记录
3 SQL语言
SQL(Structured Query Language)是实现对数据库操作(最典型的就是增删改查)的一个语言。
3.1添加
insert into student values(‘8982782121’,’唐某某’,’1232234444’,0);
insert into student(cardId,name,sex) values(‘8982782121’,’付某某’,1);
3.2 删除
DELETE from student WHERE sex=0;
删除所有的女同学。
3.3修改
UPDATE student set phone='000000000000' WHERE name='付伟伟';
3.4查询
1、基本查询
SELECT * FROM `application`;
SELECT userId,appDate,`status` FROM `application`;
2、条件查询
SELECT userId,appDate,`status` FROM `application` WHERE appDate>'2017-01-01';
找今年6月份报名的学员
SELECT * FROM application WHERE appDate>='2017-06-01' AND appDate<'2017-01-01';
SELECT * FROM application WHERE appDate BETWEEN '2017-06-01' AND '2017-07-01';
查找所有吉林省的学员
SELECT * FROM `student` WHERE address LIKE '吉林%';
查找所有的女学员
SELECT * FROM `student` WHERE SUBSTR(userId,17,1)%2=0 ;
查找在国有企业或者私营企业上班的人
SELECT * FROM `student` WHERE departtype='国有企业' or departtype='私营企业';
查找所有本科以下学历的成员
SELECT * FROM `student` WHERE degree in('中技','初中','高中','大专','中专');
按学历进行排序
SELECT * FROM `student` ORDER BY degree DESC;(DESC --降序;ASC --升序)
总计各个学历的人数
SELECT degree,count(userId) as num from `student` GROUP BY degree;
统计2017年营业额
SELECT SUM(fee) from application WHERE appDate>='2017-01-01';
统计历年的营业额
SELECT substr( appDate,1,4) as year ,SUM(fee) from application GROUP BY substr( appDate,1,4);
统计2017年学员平均收费
SELECT AVG(fee) as money from application WHERE appDate>='2017-01-01';
关联查询
SELECT name,degree,appDate,itemId from application,student WHERE student.userId=application.userId;
视图:一种观察数据的视角(虚拟表)