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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL(二) -> 正文阅读

[大数据]MySQL(二)

一、建表

1、数据类型

  • 整型:【unsigned】不允许负值

? ? ? ? ? ? 有符号和无符号类型使用相同的存储空间,并具有相同的性能

? ? ? ? ? ? 可以为整数类型指定宽度 INT( 11)? ?没有意义??

? ? ? ? ? ? INT 4字节

? ? ? ? ? ? BIGINT? 8字节

  • 浮点型

? ? ? ? ? float? ? ? ? DECIMAL(M,D)? M 表示总的数字,D 表示小数位

? ? ? ? ? double

??????????FLOAT 和 DOUBLE 只能使用标准的浮点运算进行近似运算,如果需要精确运算,要使用? ? ? ? ? ? ? ? ? ? DECIMAL 类型

  • 字符型

CHAR? ? ? ? ? ? ? ?0-255 字节? ? ? ? ?定长字符串? 存储时会删除所有的末尾空格

VARCHAR? ? ? ? 0-65535 字节? ? ?变长字符串? ?

BINARY? ? ? ? ? ? 0-255 字节? ? ? ? ?定长二进制

VARBINARY? ? ?0-65535 字节? ???变长二进制

TEXT? ? ? ? ? ? ? ??0-65535 字节? ? ?变长字符串? ?存储很大数据

  • 日期型

DATE? ? ? ? ? ? ? ? ? ? 3字节

TIME? ? ? ? ? ? ? ? ? ? ?3字节??

YEAR? ? ? ? ? ? ? ? ? ? 1字节

TIMESTAMP? ? ? ? ?4字节

  • 枚举型

ENUM('value1','value2''')? ?一个仅有一个值的字符串对象,一个 ENUM 最多能有 65535 个不同的值

  • 集合型

SET('value1','value2''')? ?一个集合。能有零个或多个值的一个字符串对象,一个 SET 最多能有 64个成员

  • 位数类型

BIT(1) 定义一个包含 1 个位的数据,,BIT(2) 包含 2 个位,最大长度为 64 个为

  • json 类型

会把 json 格式的字符串转换成 内部格式? ? ? ? ? ? ? ?json 对象,用单引号 引起来

二、创建表

CREATE [TEMPORARY 临时] TABLE [IF NOT EXISTS]? tb_name[(

字段1 数据类型 【约束条件】【默认值】【COMMENT ‘注解’】,

字段2 数据类型 【约束条件】【默认值】【COMMENT ‘注解’】,

[表约束条件]

)]? [engine=innodb] [default charset=utf8];

或者

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tb_name

as subquery;

(1)创建学生表

create table student(
    -- 学生编号
    id int,                      int(4) zerofill
    -- 学生名字
     name varchar(20),
     age int,
     phone  varchar(11)
);

(2)向学生表中插入数据

insert into student values(1,'tom',30,'2222222');

(3)创建 user 表 ,拥有编号、姓名、年龄、性别 等字段

create table user(

    id int auto_increment comment '编号',
    name varchar(20)  not null default 'tom',
    age int default 20 comment '年龄',
    gender enum('男','女') comment '性别',
    primary key(id)
);

(4)向 user 表的 gender 列插入数据

insert into user(gender) values ('女');

(5)查询 s-emp 中的数据

1、
select id,last_name,salary from s_emp;

2、基于查询,构建新表

create table emp?

as

select?id,last_name,salary?

from s_emp? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//数据、基本约束会过来,但是主键不会过来

3、原表中的名字到新表中改名字

create table emp?

as

select?id,last_name as "name ",salary?

from s_emp? ? ? ? ? ? ?

4、新表 只要表结构,不要数据

create table emp?

as

select?id,last_name as "name ",salary?

from s_emp? ? ? ? ? ? ? ?from-->where(行)-->select(列)

where? ?1=2??

(6) user1 表,爱好要求是 football 、basketball、basketball? 中选择一个或多个,

create table user1(
    id int primary key ,
    name varchar(20),
    gender enum('男','女'),
    hoby set('football','basketball','volleball')
);

(7)创建表 user2? 用户信息基于 json 数据存储,插入数据并查询

json 对象? {"key":val,"key":val,"key":val}

key 必须用 双引号 引起来, 值如果是 字符串、时间 使用双引号引起来,其他直接写

[

? ?{"id":1,"name":"liia","age";1}

? ?{"id":1,"name":"liia","age";1}

]

{"teacher " : [ {},{},{} ] , "student" : [ {},{},{} ] }

values('[{"id":1,"name":"lisi","addr":{"city":"suzhou","":""}},{"id":1,"name":"lisi"},{"id":1,"name":"lisi"}]')

create table user1(
    data json
);

insert into user1 values ('{"id":1,"name":"lisi","age":30,"addr":
{"province":"jiansu","city":"kuns"}}');

select * from test.user1;
select  data->'$.id' from user1;
select  data->'$.addr' as addr  from user1;    //起别名
data->'$[1].city' as addr , data->'$[1].name' as name from user1;

? select? data ->'$[0]'? from user1;? ? ? ? //获取 json 数组中的第一个 json 对象

(8)创建表,test_bit ,存储 bit 型数据

create table test_bit(

f1 bit,

f2 bit(5)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 二进制? ? 储存时使用 十六进制

);

insert into test_bit(f1 ) values (1);

insert into test_bit(f1 ) values (2);? / /报错? ??

insert into test_bit(f2 ) values (10);? ? ?11111 报错? ?11111111错误? ?00111 正确

insert into test_bit(f2?) values (b'00111');

三、修改表

(1)在 user3? 表中添加列 name

alter table user3 add name varchar(20)? ?;???默认在 after 后面添加

desc user3?

(2)在 user3? 表中第一列的位置插入? uid

alter table user3 add uid int primary key auto_increment first? ;? ?//? ?after id

(3)将 uid 修改为字符串类型,默认值为 1? 修改列的类型(前提:修改之前表里没有数据 )和约束

alter table user3 modify column?uid varchar(20) default 1

(4)将列名为 name ,改为 username ,同时将类型改为 text?,默认值 tom

alter table user3 change? name?username text dafaule 'tom' ;

? ?(5)? 将表 user3 中的 age 列删除?

alter table user3? drop column age;? ?

alter table user3? drop column uid,id;? ?//这样写错误

(6)表 重命名

rename table user3 to user1;

alter table user3?rename??user1 ;?

(7)删除表

drop table if exists?user3;

?drop table if exists?user3,order1;

删除不存在的表 order1会报错,user3 会删除

删除表时,当前表不能被其他表引用

删除表不能回滚

(8)截取表

清空并释放 user1 中数据及空间? ? ?

truncate table user1;

? ?// delete? ?删除数据

四、表数据操作

1、插入数据

(1)向表中插入数据

insert into emp values(1,'lisi',30);? ?(2,null,null)

插入数据如果是 字符串、日期、json 对象,需要使用单引号

(2)为表中指定字段 插入值

insert into emp(id) values(2);? ?

insert into emp(id,bame,age) values(3,'tom',30);? ?

(3)同时插入多条记录

insert into emp values(1,'lisi',30),(2,'a',23),(3,'b',24);?

insert into emp(id) values(4),(5),(6);?

(4)将查询结果插入到表中

insert into emp(id,name)?

select id,last_name

from s_emp;?

(5)将员工表 id 为 6-8 的数据录入到 emp表中

insert into emp?

select id,last_name name,salary

from s_emp

where id<=8 and id>=6;?

2、更新数据

(1)将员工表 id 为 1-2 的员工,薪资 同一设置为3000

update emp set salary=3000,id=24;? ?不加 where ,表示对所有数据操作

3、删除数据

(1)将员工表名字以xiao 开头的员工删除

delete from emp where name like 'xiao%';

(2)将员工表 数据清空

delete from emp;?

4、整理表数据

回收闲置的空间,制作原来表的一个临时副本,原来的表被删除,拷贝到新表中

将表闲置的资源 回收

optimize table user5;

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 -2025/3/4 7:01:29-

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