一.数据和数据库
1.什么是数据?
客观事物的符号表示.
2.数据分类
结构化数据:可以通过统一格式来进行管理数据
非结构化数据:不能通过统一格式表示
半结构化数据:介于两者之间-例如:xml
3.什么叫数据库(DB:Database)?
按照数据结构存储数据的仓库
4.数据库管理系统(DBMS:database management system)
操作和管理数据软件
5.数据库管理系统分类
关系型数据库管理系统 (RDBMS:Relationship)----处理结构化数据.
常见的关系型数据库:
oracle:oracle公司,大型性分布式数据库管理系统.产品免费,但是服务收费(按cpu核数收费)
mysql:oracle公司,主流互联网公司(在MySQL基础上修改的版本),开源免费(GPL:开源软件的许可证)
sql server:microsoft公司,中小型数据库管理系统
db2:ibm公司,中小型,开源免费
非关系型数据库管理系统:(Nosql:not only sql)----高并发,高可靠,高性能;nosql是对关系型数据库的补充,不是替代
常见的非关系型数据库:
redis/hbase/mongdb/neo4j(图,社交网络 脉脉)
二.MySQL
1.mysql介绍
mysql ab公司关系型数据库管理系统(数据库,数据库表)
mysql 中可以管理多个数据库,每个数据库中管理多张表,数据存储在表中.
表:数据库表 采用二维表格形式实现数据的管理.表中行:称为记录;列:称为字段.
背景:
1996年,mysql 1.0
2000年,正式开源(GPL:开源软件许可证)
2008年,sun公司以10亿美元收购
2009年,sun公司被oracle以74亿美元收购
特点:
开源免费(开源不等于免费,开源只是源代码开源,可以修改等)
mysql相对来说比较小巧
支持的局数量比较大(5.7版本之后 每张表支持存储500万条记录)
2.mysql的下载和安装
下一篇博客专门整理一下.
三.sql
1.什么是sql(structed query language)
结构化查询语言。关系型数据库操作标准语言。
sql语言对大小写不敏感;
sql语句以分号结尾;
sql语句以分号结尾;
2.分类
DDL:数据定义语言(创建和维护数据库对象(数据库,表,视图,索引等)结构)
create创建 /alter修改 /drop销毁 --对数据库本身和表
DML:数据操纵语言(对里面的数据的增删改查)
insert添加 /delete删除 /update修改 /select修改
DCL:数据控制语言(授权及取消授权)
grant授权 /revoke取消授权
TCL(transaction):事务控制语言
commit提交 /rollback回滚
3..DDL:数据定义语言(创建和维护数据库对象(数据库,表,视图,索引..)结构)
3.1对数据库的操作
创建数据库
CREATE DATABASE 名字;
例如:CREATE DATABASE [if not exists] db1808;
销毁数据库
DROP DATABASE 名字;
例如:DROP DATABASE [if exists] db1808;
3.2对表的操作
表:table,数据库表 二维关系模型管理数据 行:称为记录;列:称为字段
创建表
通过下面例子大体了解一下:
CREATE TABLE student(
sname varchar(20),
sex varchar(20),
age int
);
创建表的一些细节:
CREATE TABLE `user`( #--``反引号来区分关键字
uname varchar(15),
uage int,
usex bit(1), #-- 数据库中一般用这个来表示性别,一个bit位
tel varchar(11),
ubir date
);
3.3数据类型
1.数值类型
整型数据:int(tinyint,smallint,bigint,这三个了解一下就可以了)
浮点数:
float(m,n):m 代表长度;n 代表小数点位数 4个字节
double(m,n):m 代表长度;n 代表小数点位数 8个字节
decimal(m,n):m 代表长度;n 代表小数点位数(不会产生精度的丢失,比如价格等 和金额相关的)
2.日期类型:
date:日期
time:时间
datetime:时间和日期 1000-9999-->年份的范围和下面的时间戳区分
timestamp:时间戳 1970-2038
year:年份...
3.字符串:
varchar(n):可变长字符串--最长n个字符
char(n):定长字符串,每个固定长度是n字符
text:大文本
4.其他类型:
blob:存储二进制数据(图片,音频,视频)--需要注意的是:数据库很少存视频,一般都是存储视频的地址
enum:枚举类型
set:集合
Json:json类型 比较主流的数据传输的一种格式(本质是个字符串)
3.4表结构的修改(添加字段,删除字段,修改字段:字段名称,字段长度,长度,位置,约束等)
添加字段:(add)
ALTER TABLE student ADD tel VARCHAR(11);#--追加,添加到表末尾
#查看表结构:
DESC student;
#字段名称 字段类型(长度) 约束(描述信息) #--只要是字段都可以这种模式
#添加email字段到表首--first
ALTER TABLE student ADD email VARCHAR(20) first;
#放置字段到第X列
#例如添加身高到email之后--after XX
ALTER TABLE student ADD height DOUBLE(4,1) AFTER email;
删除字段(DROP)
#删除身高字段
ALTER TABLE student DROP height;
修改字段(modify/change)
modify : modify 字段名称 新类型 新约束
change : change 旧字段 新字段 新类型 新约束
#1.修改字段的名称--只能用change
#修改student表的sname字段的名称为ssname.
ALTER TABLE student CHANGE sname ssname VARCHAR(20);
#2.修改字段的类型和长度--两个都可以
#修改ssname字段的长度为50
ALTER TABLE student MODIFY ssname VARCHAR(50);
#3.修改字段位置
#将age放到ssname的后面
ALTER TABLE student MODIFY age int AFTER ssname;
3.5表名称的修改:
将student表名称改为stu;
RENAME TABLE student TO stu;
3.6表的销毁
DROP TABLE student;
总结一下必记的概念:
数据库(database):按照数据结构存储数据的仓库
数据库管理系统(DBMS):操作数据库软件
数据库管理系统的分类:关系型数据库管理系统(RDBMS);非关系型数据库管理系统(Nosql)
sql:结构化查询语言,关系型数据库的通用语言
sql的分类:
DDL:数据定义语言 create alter DROP
DCL:数据控制语言 grant revoke
DML:数据操纵语言 insert update delete select
TCL:事务控制语言 commit rollback
数据库的操作:
创建数据库 create database 名字
销毁数据库 DROP database 名字
数据库表的操作
数据类型