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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 简述DDL -> 正文阅读

[大数据]简述DDL

DDL数据定义语言

(一)概述

DDL(Data Definition Language):数据定义语言,用来定义数据库对象,库、表、列等;创建、删除、修改 库,表结构。主要分为操作数据库的DDL和操作表的DDL。

(二)操作数据库的DDL

1.创建数据库

CREATE DATABASE[IF NOT EXISTS] 数据库名 CHARACTER SET 字符集 COLLATE 排序规则

排序规则说明

例如:utf8字符集中指定的 utf8_general_ci 和 utf8_bin,对数据库中存储数据库的规则就有所不同。

????? utf8_general_ci:ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的。

???? ?utf8_bin:将字符串每个字符串用二进制数据编译存储,区分大小写,而且可以存二进制的内容。

2、查看数据库

(1)查看所有数据库:SHOW databases

(2)查看指定数据库:SHOW CREATE DATABASE 数据库名

3、修改数据库

ALTER DATABASE 数据库名 CHARACTER SET 字符集 [COLLATE 排序规则]

只能修改数据库的字符集和排序规则,不能修改数据库名字

ALTER DATABASE 数据库名 CHARACTER SET 字符集 [COLLATE 排序规则]

示例

修改mydb3的字符集为gbk 排序规则为 gbk_bin

alter database mydb3 character set gbk collate gbk_bin;

4、删除数据库

DROP DATABASE 数据库名

5、使用数据库

(1)查看正在使用的数据库:SELECT DATABASE()

(2)切换数据库:USE 数据库名

(三)操作表的DDL

1、创建表

注意:在创建表之前,一定要先使用数据库(也就是说,表一定要创建在某个数据库中)

CREATE TABLE 表名 (字段名1 数据类型,字段名2 数据类型,…,字段名n 数据类型)

建议写成如下格式:

CREATE TABLE 表名 (

字段名1 数据类型,

字段名2 数据类型,

???? ...,

??? 字段名n 数据类型

)

示例

创建student表包含id,name,age,sex字段

CREATE TABLE student (

????? id INT,

????? name VARCHAR(20),

????? birthday date

??? )

2、数据类型

(1)数值类型

a、整数类型

类型名称

字节

说明

tinyint

1

无符号:0~255?????????

有符号:-128~127

smallint

2

无符号:0~65535???????

有符号:-32768~32767

mediumint

3

无符号:0~1677215?????

有符号:-8388608~8388607

int、integer

4

无符号:0~4294967295??

有符号:-2147483648~2147483647

bigint

8

无符号:0~18446744073709551615

有符号:-9223372036854775808~9223372036854775807

在建表时默认都是有符号的。

如要使用无符号的,在建表语句中指定。例如:id int unsigned

b、近似数类型

在MySQL中,可以通过浮点数和定点数来表示近似值。

浮点数

MySQL中的浮点数包括float和double两种,定义格式为float(M,D)、double(M,D)。

M-表示所存储的值共有M位(M的取值范围是0~255)

D-表示小数点后有D位(D的取值范围是0~30)

例如:float(7,4)存储的数据范围时-999.9999~999.9999。

decimal是MySQL的定点数。相较与浮点数定点数表示的近似值更加精确。定义格式为decimal(M,D)

M-表示所存储的值共有M位(M的默认取值是10,取值范围是1~65)

D-表示小数点后有D位(D的默认取值是0,取值范围是0~30)

(2)字符串类型

MySQL提供了多种针对字符串的存储类型。如下表所示

字符串类型

取值范围和存储需求

char(M)

M为0~255之间的整数

varchar(M)

M为0~65535之间的整数

tinyblob

允许长度0~255字节

blob

允许长度0~65535字节

meduimblob

允许长度0~167772150字节

longblob

允许长度0~4294967295字节

tinytext

允许长度0~255字节

text

允许长度0~65535字节

mediumtext

允许长度0~167772150字节

longtext

允许长度0~4294967295字节

varbinary(M)

允许长度0~M个字节的变长字节字符串

binary(M)

允许长度0~M个字节的定长字节字符串

enum

允许的值选自一个允许值列表,这个列表最多能存储的值数量为65535个

set

和enum类似,set类型是一个多选字符串数据类型

a、char和varchar

char和varchar两种类型相似,都是MySQL数据库中用来存储较短字符串格式的类型。但这两种类型的主要区别在于存储方式不同,char类型的长度是固定的,而varchar类型的长度是可变的。例如,存储字符串”abc”,char(5)表示存储的字符将占5个字节(包括2个空字符),而varchar(5)只占用3个字节的长度,5只是最大值,当存储的字符小于5个时,按实际长度存储。同时在检索时,char类型会删除尾部的空格,而varchar类型会保留尾部的空格。因为长度的问题,所以导致两种数据类型的数据寻址速度不同,如果字符在10个以内,推荐使用char。

b、BLOB和TEXT

BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:tinyblob、blob、mediumblob和longblob。它们只是可容纳值的最大长度不同。

有4种TEXT类型:tinytext、text、mediumtext和longtext。这些对应4种BLOB类型,有相同的最大长度和存储需求。

因为大文件中的字符可能存在非法,所以推荐使用BLOB,比如ascii字符集下存储一张含有”0XFF”字节的图片,入库过滤。

(3)日期和时间类型

MySQL中有多种日期和时间类型的数据数据类型。如下表所示

类型

字节

最小值

最大值

date

4

1000-01-01

9999-12-31

datetime

8

1000-01-01 00:00:00

9999-12-31 23:59:59

timestamp

4

1970-01-01 00:00:01.000000

2038-01-19 03:14:07.999999'

time

3

-838:59:59

838:59:59

year

1

1901

2155

对于这些数据类型的选择,有如下使用准则:

1、如果要表示年月日,通常使用date。

2、如果要表示年月日时分秒,通常使用datetime。

3、如果要表示时分秒,通常使用time。

4、如果要表示年,通常使用year。

5、如果要表示当前系统的时间,通常使用timestamp。

最常用类型总结:整数 int 、 浮点数 double 、字符串 varchar、日期 date。

3、查看表

(1)查看所有表:show tables?

(2)查看表结构:DESC 表名;或 describe 表名

(3)查看创建表的SQL语句:SHOW CREATE TABLE 表名;

4、复制表结构:CREATE TABLE 新表名 LIKE 旧表名

5、修改表

(1)添加新列:ALTER TABLE 表名 ADD 列名 类型

为学生表s1添加一个新的字段remark,类型为varchar(20)

ALTER TABLE s1ADD remark VARCHAR(20);

(2)修改列类型:ALTER TABLE 表名 MODIFY 列名 新的类型

将s1表中的remark字段的改成varchar(100)

ALTER TABLE s1MODIFY remark VARCHAR(100)

(3)修改列名:ALTER TABLE 表名 CHANGE 旧列名 新列名 类型

将s1表中的remark字段名改成intro,类型varchar(30)

ALTER TABLE s1 CHANGE remark intro varchar(30)

(4)删除列:ALTER TABLE 表名 DROP 列名

删除s1表中的字段intro

ALTER TABLE s1 DROP intro

(5)修改表名:RENAME TABLE 表名 TO 新表名

将学生表student改名成student2

RENAME TABLE student TO student2

(6)修改字符集:ALTER TABLE 表名 character set 字符集

将sutden2表的编码修改成gbk

ALTER TABLE student2 character set gbk

6、删除表:DROP TABLE 表名

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:24:30  更:2021-11-22 12:24:40 
 
开发: 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/24 6:25:40-

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