IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数据库学习-数据库中的表 -> 正文阅读

[大数据]数据库学习-数据库中的表

1 列的定义

1.1列名

列名一般使用小写英文单词,若有多个单词,用_连接单词;不能使用数据库中的关键词

1.2列的类型

1.2.1 整数类型

整数类型字节无符号数取值范围有符号数取值范围
TINYINT10~255-128~127
SMALLINT20~65535-32768~32767
MEDIUMINT30~16777215-8388608~8388607
INT40~4294967295-2147483648~2147483647
INTEGER40~4294967295-2147483648~2147483647
BIGINT80~18446744073709551615-9,223,372,036,854,775,808~9,223,372,036,854,775,807

1.2.2 浮点类型

类型字节非負数取值范围負數取值范围
FLOAT40和1.175494351E-38~3.402823466E+38-3.402823466E+38~-1.175494351E-38
DOUBLE80和2.2250738585072014E-308~1.7976931348623157E+308-1.7976931348623157E+308~-2.2250738585072014E-308
DECIMAL(M,D)/DEC(M,D)M+20和2.2250738585072014E-308~1.7976931348623157E+308-1.7976931348623157E+308~-2.2250738585072014E-308

其中float与double类型为浮点数类型,decimal为定点数类型;

decimal括号中的M表示总长度(精度),D表示小数点后的长度(标度);其中M范围为1~65(不填写默认为10),D范围为0-30(不填写默认是0)

float与double也可以在后面加上(M,D),不指定时默认按照实际精度显示

1.2.3 日期与时间类型

类型字节取值范围零值
YEAR11901~21550000
DATE41000-01~9999-12-310000-00-00
TIME3-838:59:59~838:59:59000:00:00
DATETIME81000-01 00:00:00~9999-12-21 23:59:590000-00-00 00:00:00
TIMESTAMP419700101080001~203801191140700000000000000

常用的时间函数:

CURDATE()    --获取当前date,可直接插入到DATE类型中
NOW()   //获取当前datetime,可直接插入到DATETIME和TIMESTAMP类型中
TIME()  //获取参数给定时间串中的时分秒,可直接插入TIME类型中
YEAR()  //获取参数给定时间串中的年份,可直接插入YEAR类型中

MONTH()、DAY()、HOUR()、MINUTE()、SECOND()
为获取参数中月、日、时、分、秒

1.2.4 字符串类型

CHAR类型为固定长度,长度可以为0~255之间的任意值,
例:char(100),指定长度为100,不足部分以空格靠右填充

VARCHAR类型长度可变,长度可以为0~65535之间的任意值,例:varchar(100),存储值时,值的最大范围是多少就分配多少

使用建议:
① char使用指定空间,varchar根据数据定空间
② char的查询速度大于varchar的查询速度,varchar还需通过记录数计算空间
③ 确定数据占多大空间使用char类型
④ 不确定数据有多少使用varchar类型
⑤ 数据超过255,但也不是特别大可以使用varchar类型
⑥ 字符串尾部需要留空格,必须选择varchar类型

1.2.5 text类型

类型长度
TINYTEXT0~255字节
TEXT0~65535字节
MEDIUMTEXT0~16772150字节
LONGTEXT0~4294967295字节

TEXT中类型无法指定长度

1.2.6 ENUM和SET类型

ENUM为枚举类型,定义为此类型,在给栏位设值时只能从所给枚举内容中选择其中一个
例:ENUM(‘值1’,‘值2’,‘值3’…)

SET和ENUM类似,定义此类型,在给栏位设值时只能从所给枚举内容中选择其中一个
例:SET(‘值1’,‘值2’,‘值3’…)

2 列的完整性约束

2.1 主键约束

PRIMARY KEY 能唯一标识表中的信息,表中某个栏位中的值为特殊值,不会重复出现且能通过该栏位标识该表,一般定义为主键,主键可以定义一个或多个

用法:
①单个主键:

propName propType PRIMARY KEY

②多个主键:

propName1 propType, propName2 propType, ... 
CONSTRAINT pk_name PRIMARY KEY(propName1,propName2)

2.2 外键约束

一般在一张表中某个字段需要与另一张表中的数据有所关联时,可以在表中加一个字段表示另一张表中内容,通常把这个字段设为外键

例:有一张学生表与一张班级表,学生表中需要记录每个学生学生所在的班级

班级表:

id名称班主任
101萌新一班马老师
102萌新二班张老师
103萌新三班汪老师

学生表:

id姓名班级id
1张三102
2李四101
3王五101
4赵龙102
--创建班级表
create table class(id int primary key, name char(4), teacher char(3));

--创建学生表
create table student(id int primary key, name char(4), class_id int, constraint fk_stu_class foreign key(class_id) references class(id));

创建外键之栏位一般为另一张表中的主键,
格式一般为:

constraint fk_name foreign key(class_id) 
references tableName(propName)

其中 constraint fk_name 可以省略不写

2.3 非空约束

非空约束一般为根据需求,在创建栏位时在字段名和类型后可加上 NOT NULL 表示该字段不可为空

2.4 唯一约束

唯一约束一般为根据需求,在创建栏位时在字段名和类型后可加上 UNIQUE 表示该字段内容唯一,该字段在表中不可有重复数据

2.5 自动增加

auto_increment:给某列设置自动增加,每次插入数据时不给这一列指定数据则会在前一条记录(或已存在的最大值)上自动加1

只有当列定义为主键/外键/唯一约束时,才能给其设置 auto_increment

2.6 默认值

创建表时,可以给列设置默认值,在列名后或在列名类型后加上 DEFAULT defaultValue

3 插入数据

格式:

-- 给所有列插入数据
insert into tableName values(propValue1,propValue2, ..., propValuen);

-- 给部分栏位插入数据
insert into tableName(propName1,propName3,propName5)
values(propValue1,propValue3,propValue5);

4 更新数据

格式:

update tableName set propName1 = newValue1,propName2 = newValue2
where CONDITION;

其中propName为表中的某个字段名,newValue表示需要更新的值

5 删除数据

格式:

delete from tableName where CONDITION;

其中如果没有condition条件,则会将表中的数据都删除,有condition则会根据condition删除指定数据

7 查询数据

格式:

--查询tableName表中的所有数据
select * from tableName;

--查询部分列
select propName1,propName2 from tableName;

--查询满足condition的数据
select * from tableName where CONDITION;

以上查询为最简单查询,更多查询可点击下方链接,包括简单查询与联合查询

https://blog.csdn.net/jjswift/article/details/119721780

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-03 11:59:18  更:2021-09-03 12:00:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:19:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码