1数据库基础知识
1.1基本概念
数据库:多个存在一定联系的关系表的集合。
关系表:一个二维的关系型数据的集合
记录:关系表中的一行数据,代表一个完整的信息,比如“梁艳丽”的信息就是一条记录。
字段:关系表中的列,其包括字段名、字段类型等属性。比如“手机号码”等字段,它的类型是字符串。
1.2为什么需要用数据库
用户也可以使用文件来存储和组织数据,比如文本文件、Excel工作簿等。但是对于它的操作(比如添加数据、删除数据)实现起来是比较复杂的,而且效果不高。
数据库实际上是由大型厂商为我们提供的存储和组织大量(甚至海量)数据的管理软件。大大简化了用户的操作,关键是效率高(因为是经过深度优化的)。
常见的数据库产品有Oracle、DB2、SQLServer、MySQL是一个免费的、中小型的数据库。
2 数据库基本操作
2.1连接
1.新建连接
2.2数据库
1.新建数据库
2.新建表
3.添加记录
3 SQL语言
SQL(Structured Query Language)是实现对数据库操作(最典型的就是增删改查)的一个语言。
3.1 添加
insert into student values(‘89892342311’,’唐国童’,’13787293780’,0);
运行结果:
insert into student(‘cardid’,’name’,’sex’) values(‘89892342311’,’付伟伟’,1);
运行结果:
最后表格结果:没有添加进去
3.2 删除
删除所有女同学
DELETE from student WHERE sex=0;
3.3 修改
UPDATE student set phone = ‘00000000000’ WHERE name = ‘付伟伟’;
3.4 查询
1.基本查询
SELECT userId,appDate,status FROM ‘application’;
2.条件查询
一个条件:
SELECT userId,appDate,status FROM application
WHERE appDate>’2017-01-01’;
多个条件:
SELECT * from application WHERE appDate >= ‘2017-06-01’ and appDate < ‘2017-07-01’;
查找今年6月报名的学员:
SELECT * from application WHERE appDate BETWEEN ‘2017-06-01’ and ‘2017-07-01’;
3.模糊查询
查找吉林的学员:
SELECT * FROM student
WHERE address like ‘吉林%’;
查找在汽车公司的学员:
SELECT * FROM student
WHERE department like ‘%汽车%’;
查找所有的女学员:
SELECT * FROM student
WHERE SUBSTR(userId,17,1)%2 = 0;
查找在国有企业或者私营企业的学员:
SELECT * FROM student
WHERE departtype =’国有企业’ or departtype = ‘私营企业’;
查找除本科以外的学员1:
SELECT DISTINCT degree FROM student
;
查找除本科以外的学员2:
SELECT * FROM student
WHERE degree in(‘中技’,’初中’,’高中’,’中专’,’大专’);
4.排序
按学历的升序排序:
SELECT * FROM student
ORDER BY degree DESC;
5.统计
统计各个学历的人数:
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) as money from application GROUP BY SUBSTR(appDate,1,4);
统计2017年学员平均收费:
SELECT AVG(fee) as money from application WHERE appDate >= ‘2017-01-01’;
6关联查询
SELECT name,degree,appDate,itemId from application,student WHERE student.userId = application.userId;
视图:一种观察数据的视角(虚拟表)