数据库
一、关系型数据库
Oracle
MySQL
SQL Server
二、非关系型数据库
NoSQL(NoSQL = Not Only SQL)
NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL数据库分类
文档存储——MongoDB
列存储——HBASE
三、数据仓库——Hive
传统数据库都使用的SQL语句,而Hive使用的是HQL语句,在大部分情况下其增删改查的语句都是类似的,因此广义上而言,学会了SQL语句的语法也就学会了HQL语句。
MySQL数据库介绍
MySQL是目前最流行的关系型数据库管理系统,瑞典MySQLAB公司开发开源软件,现归属于Oracle公司。
MySQL支持大型的数据库,支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
MySQL使用标准的SQL数据语言形式。
MySQL可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
MySQL是可以定制的,采用了GPL协议,你可以修改源码来开发自己的MySQL系统
数据库基本操作
(ps:可以通过MySQL Workbench来进行编码,也可以直接通过cmd命令行,我使用的是Workbench)
show databases; #查看数据库
use sys; #使用数据库,sys为数据库名称
show tables; #显示数据表
#创建数据库,数据库名为db_mysql_2019
create database db_mysql_2019;
#删除数据库
drop database db_mysql_2019;
#设置编码格式为UTF-8
create database db_mysql_2019 character set utf8mb4;
数据表的基本操作
use db_mysql_2019; #选择之前创建好的数据库
#建表,表名为stuinfo
create table stuinfo(
stuId int unsigned primary key,
stuName varchar(10) not null,
gender char(1),
birthDate date,
class varchar(2),
city varchar(20)
);
show tables;
select * from stuinfo; #查询stuinfo表
describe stuinfo; #查看表结构
#插入数据
insert into stuinfo(stuId,stuName,gender,birthDate,class,city)
values(20161001,'Zhaoyi','男','1990/1/1','1','Beijing');
#插入多条记录
insert into stuinfo(stuId,stuName,gender,birthDate,class,city)
values(20161002,'Wangwu','女','1991/1/3','1','Beijing'),
(20161003,'Lisi','男','1990/11/4','1','Shanghai'),
(20161004,'Ximen','男','1989/8/7','1',null),
(20161005,'zhangsan','女','1989/1/2','1','Tianjin'),
(20161010,'Leilei','男','1990/12/5','1',null),
(20161005,'Niuer','女','1990/7/6','1','Guangzhou');
#修改表
alter table stuinfo add major varchar(20);
alter table stuinfo add major varchar(20) after class; #在class字段之后
alter table stuinfo add major varchar(20) before class; #在class字段之前
#修改表名
alter table stuinfo rename stuinfo1;
#删除字段
alter table stuinfo drop major;
#删除表
drop table stuinfo;
#删除表中数据
delete from stuinfo where stuId = 20161002;
#修改表中数据
update stuinfo set stuName='Jack' where stuId=20161001;
MySQL中的数据类型
一、字符型
存储字符型数据,例如姓名、地址、电话号码等
char(255)——定长字符串,最大长度为255个字符
varchar(255)——可变长度的字符串
text——最大长度为64K的变长文本
mediumtext,longtext
使用引号括起来,一般用单引号
二、数值型
存储数值型的数据,例如人数、金额、销售额等
整型——int——整数值
浮点型——decimal——精度可变的浮点值
——float——单精度浮点值
——double——双精度浮点值
三、日期时间型
存储日期和时间值,例如2008年1月1日,或者14:00:00
date——yyyy-mm-dd
datetime
time
数据的导入和导出
一、通过图形界面导出和导入
1、数据导出
先查询,再导出/导入
#数据导出
/**
先查询
然后再通过图形界面导出
*/
select * from stuinfo;
然后保存到指定文件夹即可
2、数据导入
#首先建表stuScore
create table stuSocre(
stuId int unsigned primary key,
stuName varchar(10) not null,
class varchar(2),
Math decimal(5,1),
English decimal(5,1)
);
注意,导入的文件后缀必须为csv格式
二、通过SQL语句导出和导入
1、数据导出
select * from stuinfo into outfile 'D:/BigDataStudy/mysql/data/db_mysql/stuinfo_export.txt'
fields terminated by ',' lines terminated by '\r\n';
第一个' '内为保存路径,注意:路径中不能出现任何中文字符,第二个' '为字段之间的分隔符,其中\t表示格式化,第三个' '内为行之间的分隔符,\r\n表示换行
2、数据导入
#使用SQL语句导入也需要先建表
load data infile 'D:/BigDataStudy/mysql/data/stuScore.csv'
into table stuScore fields terminated by ',' lines terminated by '\r\n';
三个' '的内容同导出
注意:可能会出现无法导入的情况,解决方法为
先查找my.ini文件的位置——我的电脑-管理-服务,找到mysql示例,右击鼠标-属性
打开my.ini文件,修改路径如下
修改完以后将mysql重启再运行语句即可