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,概述
????????--2,安装
????????--3,数据库的结构

二,SQL语言
????????--1,概述
????????--2,SQL的分类

三,数据库的常见操作
????????--1,查询
????????--2,新建
????????--3,删库 !!!

四,表的常见操作
????????--0,使用数据库
????????--1,查询
????????--2,创建
????????--3,修改
????????--4,删除
????????--5,描述表结构
????????
--6,练习
五,记录/数据的常见操作
????????--1,查询
????????--2,插入
????????--3,修改
????????--4,删除

六,总结:
????????--1,常用命令:
七,数据类型
????????--1,细节
八,字段约束
????????--1,概述
????????--2,非空约束
????????--3,唯一约束

作业:


一,数据库
–1,概述
专门用来存储数据和管理数据库的一个仓库.英文叫database
分类: 关系型和非关系型
1, 关系型数据库: 存的数据都有关系,代表是:Mysql / Oracle…
2, 非关系型数据库: 存的数据之间有着松散的关系, 代表是: Redis

–2,安装
1, 服务端: 存储数据,管理数据
端口号默认是3306,设置密码,服务名叫MySQL,安装路径中不要包含中文!!!
2, 客户端: 连接服务端,操作服务端的数据
两种形式: DOS窗口 / 可视化工具sqlyog

–3,数据库的结构
数据库 -> 表(字段1…) -> 数据 / 记录

二,SQL语言
–1,概述
全称是结构化查询语言,专门用来操作数据库的语言.
而且是一个标准语言,可以操作任何数据库.

–2,SQL的分类
DML:是指数据库的操纵语言,就是对数据的操作(新增,修改,查询,删除CRUD)
DDL:是指数据库的定义语言,比如说创建表…
DCL:是指数据库的控制语言,比如说权限管理
DQL:是指数据库的查询语言,比如进行复杂的查询语句

三,数据库的常见操作
–1,查询

?2,新建

?

–3,删库 !!!

?
四,表的常见操作
–0,使用数据库

?–1,查询

?
–2,创建
语法: create table 表名(字段名称 字段类型(字段长度),字段2,字段3)

mysql> create table student(
    -> id int(3),
    -> name varchar(10),
    -> age int(3)
    -> );
Query OK, 0 rows affected (0.01 sec)



?

练习:创建门店表
mysql> create table tb_door(
    -> id int(11),
    -> door_name varchar(100),
    -> tel varchar(20)
    -> );
Query OK, 0 rows affected (0.01 sec)


–3,修改

?
–4,删除


–5,描述表结构


–6,练习
?

mysql> create table tb_order_detail(
    -> id int(11),
    -> order_id int(11),
    -> num tinyint(4),
    -> item varchar(30),
    -> price double
    -> );
Query OK, 0 rows affected (0.01 sec)


五,记录的常见操作
–1,查询
语法: select * from 表名

?
–2,插入
? ? ? ? ? ?语法: insert into 表名 values(1,2,3)

注意:
1, values后面括号里,要写几个值? 参考表里字段的个数,要和字段的个数匹配
2, 值的意义是什么呢? 要和字段的顺序位置匹配.每个值交给每个对应字段来保存
3, 值的写法有一些细节??? 如果字段是varchar类型,值必须有字符串的标识(单引号 / 双引号)

??
?

insert into tb_door values(null,'永和大王1店',666);

insert into tb_door values(null,' 永和大王2店',8);

–3,修改

?

?–4,删除

?

排序

  • 将tb_door表记录按照tel排序



记录总数

  • 查询tb_door表中的总记录数

?

七,数据类型
? ? 命名规则
????????字段名必须以字母开头,尽量不要使用拼音
????????长度不能超过30个字符(不同数据库,不同版本会有不同)
????????不能使用SQL的保留字,如where,order,group
????????只能使用如下字符az、AZ、0~9、$ 等
????????Oracle习惯全大写:USER_NAME,mysql习惯全小写:user_name
????????多个单词用下划线隔开,而非java语言的驼峰规则

? ?字符
????????char长度固定,不足使用空格填充,最多容纳2000个字符,char(11)存储abc,占11位。查询速度极快但浪费空间
????????varchar变长字符串,最多容纳4000个字符,varchar(11)存储abc,只占3位。查询稍慢,但节省空间。Oracle为varchar2
????????大文本: 大量文字(不推荐使用,尽量使用varchar替代)
????????以utf8编码计算的话,一个汉字在u8下占3个字节

注:不同数据库版本长度限制可能会有不同

数字
????????tinyint,int整数类型
????????float,double小数类型
????????numeric(5,2) decimal(5,2)—也可以表示小数,表示总共5位,其中可以有两位小数
????????decimal和numeric表示精确的整数数字

日期
????????date 包含年月日
????????time时分秒
????????datetime包含年月日和时分秒
????????timestamp时间戳,不是日期,而是从1970年1月1日到指定日期的毫秒数

图片
blob 二进制数据,可以存放图片、声音,容量4g。早期有这样的设计。但其缺点非常明显,数据库庞大,备份缓慢,这些内容去备份多份价值不大。同时数据库迁移时过大,迁移时间过久。所以目前主流都不会直接存储这样的数据,而只存储其访问路径,文件则存放在磁盘上。
?

六,总结:
–1,常用命令:
查询所有数据库: show databases;
创建数据库: create database 库名 default character set utf8;
删库: drop database 库名;

查询所有表: show tables;
新建表: create table 表名(字段名称 字段类型(字段长度),2,3);
字段长度:整数限制不住,字符串必须在规定长度内否则报错
删除表: drop table 表名;
修改表: alter table 表名 add column 字段名 字段类型(长度)
描述表: desc 表名

查询所有记录: select * from 表名;
新增记录: insert into 表名 values(1,2,3);
要写几个值必须和表里字段的个数匹配. 值的顺序必须和字段顺序匹配.
删除记录: delete from 表名 ;
修改记录: update 表名 set 字段名=字段值;

八,字段约束
概述
是通过不同的方式,给不同的字段添加不同的约束,实现不同效果
常见的字段约束: 非空约束/唯一约束/主键约束…
通常在设计表时,就已经设计好了表里一些字段的约束情况

–1,主键约束
主键约束:如果为一个列添加了主键约束,那么这个列就是主键,主键的特点是唯一且不能为空。通常情况下,每张表都会有主键。

添加主键约束,例如将id设置为主键:

主键自增策略** **当主键为数值类型时,为了方便维护,可以设置主键自增策略(auto_increment),设置了主键自增策略后,数据库会在表中保存一个AUTO_INCREMENT变量值,初始值为1,当需要id值,不需要我们指定值,由数据库负责从AUTO_INCREMENT获取一个id值,作为主键值插入到表中。而且每次用完AUTO_INCREMENT值,都会自增1. AUTO_INCREMENT=1

create table abc(
id int primary key auto_increment
);
insert into abc values(null);
insert into abc values(null);
insert into abc values(null);
select * from abc;

–2,非空约束
哪个字段,添加了非空约束,哪个字段的值,从此,必须有值不能为空.但可以重复 使用not null来实现.

?

?

create table user(
id int primary key auto_increment,
password varchar(50) not null
);
show tables;
insert into user values(null,null);//不符合非空约束
insert into user values(null,123;);//OK

–3,唯一约束
哪个字段,添加了唯一约束,哪个字段的值,从此,必须唯一不能重复. 使用unique来实现.但可以为空。

?

?

create table test(
id int primary key auto_increment,
username varchar(50) unique--唯一约束
);
show tables;
insert into test values(null,'lisi');
insert into test values(null,'lisi');--username的值要唯一,重复会报错的
select * from test;

作业:
创建两个表 dept和emp表,并插入数据(参考课件的数据)

?

CREATE TABLE dept(
deptno int primary key auto_increment ,
dname VARCHAR(20),
loc VARCHAR(13)
);
INSERT INTO dept VALUES(null,'accounting','一区');
INSERT INTO dept VALUES(null,'research','二区');
INSERT INTO dept VALUES(null,'operations','二区');

\\

CREATE TABLE emp(
empno int primary key auto_increment,
ename VARCHAR(10),
job VARCHAR(10),
mgr int,
hiredate DATE,
sal double,
comm NUMERIC(7,2),
deptno int
);
INSERT INTO emp VALUES(100,'jack','副总',NULL,'2002-05-1',90000,NULL,1);
INSERT INTO emp VALUES(200,'tony','总监',100,'2015-02-02',10000,2000,2);
INSERT INTO emp VALUES(300,'hana','经理',200,'2017-02-02',8000,1000,2);
INSERT INTO emp VALUES(400,'leo','员工',300,'2019-02-22',3000,200.12,2);
INSERT INTO emp VALUES(500,'liu','员工',300,'2019-03-19',3500,200.58,2);

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

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