大数据

数据库
一、数据库的发展史
(1)手工管理:藏书阁,图书馆。
优点:分类管理,直观性强
缺点:信息流动慢,不方便
(2)文件管理:计算机文件系统,图书管理系统
优点:分类管理,层次分明
缺点: 查找不方便
(3)数据库管理:
优点:存取数据非常方便.
缺点:有数据的安全隐患。
二、数据库概念
数据库(DataBase),简称DB,按照某一特定数据结构来组织,存储
数据的仓库。
数据库管理系统(DataBase Management System),简称DBMS.
是为了建立,操作和维护数据库
而设计的一个程序。介于用户和数据库之间。
PS: 使用SQL语言,通过DBMS来管理DB。
三、关系型数据库
(1)所谓的关系,指的就是表,或者表与表之间。关系模型,就是表的
行与列。比如 教师(教师编号,姓名,年龄,性别,科目)。
(2)常用的关系型数据库:
大型:Oracle–甲骨文(Oracle)公司的产品
SqlServer–Microsoft旗下的产品
DB2–IBM旗下的产品
小型:Access–MicroSoft旗下的产品
Mysql–目前是甲骨文旗下的产品
四、Mysql
1)Mysql是一个关系型数据库,最开始是瑞典的MysqlAB公司的产品,后
来被Sun公司收购,在2009年4月20号Sun公司被Oracle收购.
2)Mysql特点
–mysql是开源的,不会产生额外的费用。
–mysql支持大型数据库,比如可以管理上千万条记录的数据库。
–mysql支持多操作系统,支持多语言连接:C,C++,java,PHP…
–mysql成本比较小,相比较Oracle和DB2。
3)Mysql的安装(略)
服务端的安装:DB和DBMS的安装
客户端的安装:自带的客户端
第三方客户端
4)Mysql的连接和使用
连接方式:
(1)使用命令提示符界面(保证环境变量配置成功)

  第一步:输入命令+参数,发送请求连接
  mysql -u username -p   回车
  enter password:  ......
  第二步:创建数据库
  create database bd1705 default character set utf8;
  第三步:显示所有数据库
  show databases;
  第四步:选择数据库
  use  bd1705

(2)使用客户端连接:(选择sqldeveloper).
   第一步:配置第三方jdbc驱动程序
      工具->首选项->数据库->第三方驱动程序->
      添加条目->选中你的jar包->确定
   第二步:新建连接

   连接名:随便起,就是一个连接昵称而已
   用户名:使用什么用户进行连接
   密码:.....
   主机名: 数据库所在的主机IP
   端口号:3306
   选择数据库:如 bd1802
(3)使用编程语言连接:
   如java的数据库连接技术:jdbc

五、表(Table)
表是关系型数据库的基本存储结构。
1)表是二维数据结构,有行和列
2)行(Row)是横排数据,也叫记录(Recond)
3)列(Column)是竖排数据,也叫字段(Field)
4)行与列的交叉点是 字段值
5)表与表之间也存在关系

创建表的语法:
create table tName(
colName1 Type,
colName2 Type,

colNameN Type
);

六、数据库支持的数据类型
MySQL支持多种类型,大致可以分为三类:
数值、日期/时间和字符串(字符)类型。

1、数值类型:

类型 大小 范围(有符号) 用途
TINYINT 1 字节 (-128,127) 小整数值
SMALLINT 2 字节 (-32768,32767) 大整数值
MEDIUMINT 3 字节 (-8388608,8388607) 大整数值
INT或INTEGER 4 字节 (-2147483648,2147483647) 大整数值
BIGINT 8 字节 (-9233372036854775808,9223372036854775807) 极大整数值
FLOAT 4 字节 单精度 浮点数值
DOUBLE 8 字节 双精度 浮点数值
DECIMAL 对DECIMAL(M,D) 小数值

2、日期和时间类型:
类型 大小(字节) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 ‘-838:59:59’/‘838:59:59’ HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 8 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

3、字符串类型:
类型 大小 用途
CHAR 0-255字节 定长字符串 char(10)
VARCHAR 0-65535 字节 变长字符串
TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串
TINYTEXT 0-255字节 短文本字符串
BLOB 0-65535字节 二进制形式的长文本数据
TEXT 0-65535字节 长文本数据
MEDIUMBLOB 0-16777215字节 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16777215字节 中等长度文本数据
LOGNGBLOB 0-4294967295字节 二进制形式的极大文本数据
LONGTEXT 0-4294967295字节 极大文本数据

七、结构化查询语言(SQL)
结构化查询语言(Structured Query Language),简称SQL,是数据库
的标准查询语言。可以通过DBMS对数据库进行定义数据,操纵数据
查询数据,数据控制等
SQL可以分为:
1)数据定义语言(DDL):Data definition Language
如创建表create
删除表drop
修改表alter
清空表truncate,彻底清空,无法找回。
2)数据操纵语言(DML):Data M… Language
如插入数据insert
删除数据delete
修改数据update

 PS: null值操作:
   1:在条件中,不能使用=或者!= 或者<>,而是使用
      is或者is not
   2:在select子句中,使用=
3)事物控制语言(TCL):Transation Control Language
4)数据查询语言(DQL):Data Query Language
    select:
select * from tableName;
5)数据控制语言(DCL):Data Control Language

小知识:
修改命令提示符界面显示编码集:set names GBK;
/*SQL(结构化查询语言)
通过DBMS用来管理DB的标准查询语言,可以对
数据库进行创建,删除,操纵等操作。
SQL语言分为五种语句:DDL,DML,DCL,TCL,
DQL。

(1)DDL的学习,
DDL是数据定义语言,用来创建,删除,修改
清空"数据表结构"的。
包含关键字:
create
drop
alter
truncate
*/ /*建表:语法
create table tname(
fName1 Type,
fName2 Type,

fNameN Type
);
*/
/*案例1:
表名:student
字段:sid int
sname varchar(20)
sgender char(1)
birth date
score float(5,2)
*/
CREATE TABLE student ( sid INT, sname VARCHAR ( 20 ), sgender CHAR ( 1 ), birth date, score FLOAT ( 5, 2 ) );
/*增加表字段:
语法:alter table tname add fname type;
*/
/案例1:向student中追加school/
ALTER TABLE student ADD school VARCHAR ( 20 );
/*删除多余的表字段
语法:alter table tname drop fname;
*/
/案例:删除school/
ALTER TABLE student DROP school;
/查看表结构
语法:desc tname
/
DESC student;
/修改字段名,可以同时修改类型。
语法:alter table tname change oldName newName type
/
/案例:将birth修改为sbirth/
ALTER TABLE student CHANGE birth birth date;
/*修改表名
语法:alter table oldName rename newName
*/
/案例:将student修改为student_01/
ALTER TABLE student RENAME student_01;
/*复制表:
语法:create table tname2 as select * from tname1
*/
/将student_01复制一份为student/
CREATE TABLE student AS SELECT
*
FROM
student_01;
/删除表结构
语法:drop table tname
/
/案例:删除student_01/
DROP TABLE student_01;
/清空表结构:即清空表中的所有记录,无法回收
语法:truncate table tname;
/
/案例:使用truncate清空student/
TRUNCATE TABLE student;
/*DML语言的学习:
数据操纵语言,用途是对表中的数据进行增加,删除,修改操作。包含关键字:
insert into
delete
update
*/
/*insert into:插入数据
语法1:所有字段都赋值
insert into tname values (val1,val2,…valN);
语法2:部分字段赋值,其他字段值默认是null
insert into tname (fname1,fname2) values (v1,v2);
*/
/*案例:插入某一个学生的信息
20150123 张三 m 2008-8-8 99.5
李四,f
*/
INSERT INTO student
VALUES
( 20150123, ‘张三’, ‘m’, ‘2008-8-8’, 99.5 );
INSERT INTO student ( sname, sgender )
VALUES
( ‘李四’, ‘m’ );
SELECT
*
FROM
student;
INSERT INTO student
VALUES
( NULL, ‘王五’, ‘m’, NULL, NULL );
/*复制表结构:
语法: create table newName like oldName;
*/
CREATE TABLE student_03 LIKE student;
SELECT
*
FROM
student_03;
/*删除表数据:
语法1:删除所有记录
delete from tname;
语法2:删除指定记录
delete from tname where 条件
*/
/案例1:删除student_02表中的姓名为’李四’的记录/
DROP TABLE student_02;
CREATE TABLE student_02 AS SELECT
*
FROM
student;
DELETE
FROM
student_02
WHERE
sname = ‘李四’;
SELECT
*
FROM
student_02;
/案例2:删除student_02中所有记录/
DELETE
FROM
student_02;
/*修改表数据:
语法1:修改某一列上的所有数据
update tname set fname1=v1,fname2=v2;
语法2:按照条件修改数据。
update tname set fname1=v1,fname2=v2 where 条件
*/
/案例1:修改student中score字段的值为100/
UPDATE student
SET score = 100;
/案例2:修改student中李四的生日为2000-10-9/
UPDATE student
SET birth = ‘2000-10-9’
WHERE
sname = ‘李四’;
/当null作为条件,或者修改数据为null时的操作/
/案例1:将生日为null的记录的分数改为80分/
UPDATE student
SET score = 80
WHERE
birth IS NULL;
/案例2:将张三的性别修改为null/
UPDATE student
SET sgender = NULL
WHERE
sname = ‘张三’;
/*DQL语言的学习:
数据查询语言,用来查询表中的数据
关键字:
select 单词:选择的含义
*/
/*语法:
select fname1,fname2,…fnameN from tname;
select * from tname;
*:通配符,表示所有字段。
*/
/案例1:查询student表中姓名,性别,分数/
SELECT
sname,
sgender,
score
FROM
student;
SELECT
*
FROM
student;
/*基本查询语句的学习
1、一个查询语句中,至少要有两个子句:
即select子句和from子句
2、查询语句还会有其他子句,如
where子句,group by子句,having子句
order by子句。
3、基本格式:
select… from…[where…][group by…][having…][order by…]
4、子句执行顺序
(1)from子句
(2)where子句
(3)group by子句
(4)having子句
(5)select子句
(6)order by子句
*/
/*where子句:对数据进行条件约束
位置:跟在from子句后。
关系运算符:

,>=,<,<=,=,!=,<>
多条件连接符:
and,or
[not] between…and…
集合操作:
in (集合数据)
not in(集合数据)
all(集合数据)
<all(集合数据)
any(集合数据)
<any(集合数据)
*/
DROP TABLE dept;
CREATE TABLE dept ( deptno INT, dname VARCHAR ( 14 ), loc VARCHAR ( 13 ) );
INSERT INTO dept
VALUES
( 10, ‘ACCOUNTING’, ‘NEW YORK’ ),
( 20, ‘RESEARCH’, ‘DALLAS’ ),
( 30, ‘SALES’, ‘CHICAGO’ ),
( 40, ‘OPERATIONS’, ‘BOSTON’ );
DROP TABLE emp;
CREATE TABLE emp (
empno INT,
ename VARCHAR ( 10 ),
job VARCHAR ( 9 ),
mgr INT,
hiredate DATE,
sal FLOAT ( 7, 2 ),
comm FLOAT ( 7, 2 ),
deptno INT
);
INSERT INTO emp
VALUES
( 7369, ‘SMITH’, ‘CLERK’, 7902, ‘1980-12-17’, 800, NULL, 20 );
INSERT INTO emp
VALUES
( 7499, ‘ALLEN’, ‘SALESMAN’, 7698, ‘1981-2-20’, 1600, 300, 30 );
INSERT INTO emp
VALUES
( 7521, ‘WARD’, ‘SALESMAN’, 7698, ‘1981-2-22’, 1250, 500, 30 );
INSERT INTO emp
VALUES
( 7566, ‘JONES’, ‘MANAGER’, 7839, ‘1981-4-2’, 2975, NULL, 20 );
INSERT INTO emp
VALUES
( 7654, ‘MARTIN’, ‘SALESMAN’, 7698, ‘1981-9-28’, 1250, 1400, 30 );
INSERT INTO emp
VALUES
( 7698, ‘BLAKE’, ‘MANAGER’, 7839, ‘1981-5-1’, 2850, NULL, 30 );
INSERT INTO emp
VALUES
( 7782, ‘CLARK’, ‘MANAGER’, 7839, ‘1981-6-9’, 2450, NULL, 10 );
INSERT INTO emp
VALUES
( 7788, ‘SCOTT’, ‘ANALYST’, 7566, ‘1987-4-19’, 3000, NULL, 20 );
INSERT INTO emp
VALUES
( 7839, ‘KING’, ‘PRESIDENT’, NULL, ‘1981-11-17’, 5000, NULL, 10 );
INSERT INTO emp
VALUES
( 7844, ‘TURNER’, ‘SALESMAN’, 7698, ‘1981-9-8’, 1500, 0, 30 );
INSERT INTO emp
VALUES
( 7876, ‘ADAMS’, ‘CLERK’, 7788, ‘1987-5-23’, 1100, NULL, 20 );
INSERT INTO emp
VALUES
( 7900, ‘JAMES’, ‘CLERK’, 7698, ‘1981-12-3’, 950, NULL, 30 );
INSERT INTO emp
VALUES
( 7902, ‘FORD’, ‘ANALYST’, 7566, ‘1981-12-3’, 3000, NULL, 20 );
INSERT INTO emp
VALUES
( 7934, ‘MILLER’, ‘CLERK’, 7782, ‘1982-1-23’, 1300, NULL, 10 );
INSERT INTO emp
VALUES
( 8002, ‘IRONMAN’, ‘MANAGER’, 7839, ‘1981-6-9’, 1600, NULL, 10 );
INSERT INTO emp
VALUES
( 8003, ‘SUPERMAN’, ‘MANAGER’, 7839, ‘1981-6-9’, 1600, NULL, NULL );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值