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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数据库学习笔记Day01--SQL语句,数据类型,约束条件 -> 正文阅读

[大数据]数据库学习笔记Day01--SQL语句,数据类型,约束条件

什么是数据库?

数据库是长期存储在计算机内部有结构,大量的,共享的数据集合。

长期存储:持久化存储

有结构:

????????类型:不仅可以存放数据,而且存放的数据是有类型的。

????????关系:存储数据与数据之间的关系

大量:大多数数据库都是文件系统的,也就是说存储在数据库中的数据实际上就是存储在磁盘文件

共享:多个应用程序可以通过数据库实现数据的共享

关系型数据库和非关系数据库

关系型数据库:采用了关系模型来组织数据的存储,以行和列的形式存储数据与数据的关系--将数据存储在表格中,可以通过建立表格与表格之间的关系来维护数据与数据之间的关系。

非关系数据库:采用键值对的模型来存储数据,只记录数据本身,不会记录数据与数据之间的关系·,在非关系型数据库中,利用其特点的存储结构来解决一些大数据应用的难题。

NoSQl(Not only SQL)代指非关系型数据库。

常见数据库产品

关系型数据库:

Mysql:MariaDB,Percona Server

PostgreSQL

Oracle数据库

SQL Server

Access

Sybase

达梦数据库

非关系型数据库:

????????面向检索的列式存储:

????????????????HaBase

? ? ? ? ? ? ? ? BigTable

? ? ? ? 面向高并发的缓存存储Key-Value:

? ? ? ? ? ? ? ? Redis

? ? ? ? ? ? ? ? MemcacheDB

? ? ? ? 面向海量数据访问的文档存储

? ? ? ? ? ? ? ? MongoDB

? ? ? ? ? ? ? ? CouchDB

专业术语:

数据库:存储数据的集合,提供数据存储的服务。

数据:实际上指的是描述事物的符号记录。

数据库管理系统:是位于人与操作系统之间一层数据管理软件。

数据库管理员:负责数据库创建,使用及维护的专门人员。

数据库系统:数据库管理员,数据库系统及数据库组成的整个单元。

分类

DDL Data Definition Language 数据定义语言

? ? ? ? 用于完成对数据库对象(数据库,表,视图,索引等)的创建修改删除

DML Data Manipulation?Language 数据操作语言

? ? ? ? 用于完成对数据表中的数据的添加,删除,修改操作

DQL Data Query?Language 数据查询语言

? ? ? ? 用于将数据表中的数据查询出来

DCL Data Control?Language 数据控制语言

? ? ? ? 用于完成事务管理等控制性操作

SQL基本语法

SQL指令不区分大小写

每条SQL表达式结束之后都以;结束

SQL关键词之前以空格进行分隔

SQL之间可以不限制换行(可以有空格的地方就可以有换行)

DDL操作

显示当前mysql中的数据库列表:

show databases

创建数据库:

create database xxx

创建前判断是否存在:

create database if not?exists xxx

指定数据库编码:

create database xxx character set utf-8

显示指定数据库的创建语句

show create database xxx

修改数据库字符集:

alter database gyq character set gbk

删除数据库(同时会删除数据库中所有表和数据)

drop database if exists xxx

切换数据库:

use xxx

创建数据表:

CREATE TABLE students(
? stu_num CHAR(10) NOT NULL UNIQUE,
? stu_name VARCHAR(20) NOT NULL,
? stu_age INT NOT NULL,
? stu_gender CHAR(2) NOT NULL,
? stu_tel CHAR(11) NOT NULL UNIQUE,
? stu_qq VARCHAR(11) UNIQUE
);?

显示表

SHOW tables

查询表结构

DESC students

?删除表

DROP TABLE IF EXISTS xxx

修改数据表名

.ALTER TABLE students RENAME TO stus

修改数据表字符集

ALTER TABLE stus CHARACTER SET utf8

添加列

ALTER TABLE stus ADD stu_remark VARCHAR(200)

修改列名和类型
ALTER TABLE stus CHANGE stu_remark stu_info TEXT

修改列的数据类型

ALTER TABLE stus MODIFY stu_info VARCHAR(100)?

删除列

ALTER TABLE stus DROP stu_info????????

MySQL数据类型

数值类型

? ? ? ? tinyint:占用一个字节,-128-127,无符号:0-255

? ? ? ? smallint:两个字节,-32768-32767,无符号:0-65535

? ? ? ? mediumint:三个字节,-2^23-2^23-1,无符号:2^24-1

? ? ? ? int :

? ? ? ? bigint:

? ? ? ? float:4字节,单精度

? ? ? ? double:8字节,双精度

? ? ? ? decimal:decimal(10,2)表示一共10位,小数位占两位

字符串类型

? ? ? ? char:0-255字节,定长字符串,最多可以占255个字节,内容少于指定时自动以空白补齐

? ? ? ? varchar:0-65535字节,可变字符串,指定最大长度()

? ? ? ? tinyblob:0-255字节,存储二进制字符串

? ? ? ? blob:0-65535字节,存储二进制字符串

????????mediumblob:0-1677215

? ? ? ? longblob:0-4294967295

? ? ? ? tinytext:0-255字节,文本数据

? ? ? ? text:0-65535

? ? ? ? mediumtext:0-1677215

? ? ? ? longtext:0-4294967295

日期类型

在MySQL数据库中可以使用字符串来存储时间,但如果需要基于时间段进行查询操作,不方便

? ? ? ? date:只能存放年月日,2022-01-22

? ? ? ? time:只存时分秒,11:22:30

? ? ? ? year:年份,2022

? ? ? ? datetime:年月日时分秒,2022-06-66 11:22:55

? ? ? ? timestamp:时间戳,20220506 111022

字段约束

保证数据有效性,完整性,正确性的手段

常见约束:

? ? ? ? 非空约束:not null 此列值必须提供

? ? ? ? 唯一约束:unique 在多条数据中此列值不能重复

? ? ? ? 主键约束:primary key 非空+唯一,唯一标识数据中的一条数据

? ? ? ? ????????声明主键的两种方法在列后+primary key或在表最后一行+primary key(列名)

? ? ? ????????? 在表创建之后添加主键约束:alter table xxx modify xxx primary key

? ? ? ? ? ? ? ? 联合主键:将数据表中的多列组合在一起作为主键:在表最后一行+primary key(列名1,列名2)

? ? ? ? ? ? ? ? 创建联合 组建

? ? ? ? 外键约束:foreign key 建立不同表之间的关联关系

?????????

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

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