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常用命令

DDL语言(操作表)

进入本机MySQL终端

mysql -h localhost -u root -p
//-h 地址 -u 用户名 -p 密码

mysql终端清屏

system cls;

暂停服务

net stop <mysql服务名>;

开启服务

net strat <mysql服务名>

建立数据库

create database <数据库名>;

查看所有的数据库

show databases;

查看建库语句

show create database <数据库名>;

修改数据库名

alter database <数据库名> 修改内容;

切换或使用数据库

use <数据库名>;

删除库

drop database <数据库名>

创建表

create table <数据表名>(字段名 数据类型 约束,... constraint s_s foreign key(外键名) references 连接的数据表名(主键名));

查看表结构

desc 数据表名;

查看建表的sql语句

show create table <数据表名>;

查看该库的所有数据表名

show tables;

删除数据表

drop table <表名>;

设置外键

constraint s_s foreign references key(外键名) 连接到数据表名(主键名);

查询表中所有数据

select * from 表名;

查看表中某字段的数据

select 字段1,字段2... from 表名;

向表中添加数据

insert into 表名(字段1,字段2...) values(数据1,数据2...);
//切记字段名和数据顺序需要保持一致

0填充

create table a(id int(11) zerofill);

修改表中的字段类型

alter table 数据表名 modify 字段名 数据类型;

修改表名

alter table 旧表名 rename(to) 新表名;

添加字段

向末尾添加字段
alter table 表名 add 字段名 数据类型 约束名;
向第一个位置添加字段
alter table 表名 add 字段名 数据类型 约束名 first;
向指定位置添加字段
alter table 表名 add 字段名 数据类型 约束名 after 字段名;
添加多个字段
alter table 表名 add 字段名1 数据类型1 约束名1,字段名2 数据类型2 约束名2,....

修改字段顺序

将字段移动到指定位置
alter table 表名 modify 字段名 数据类型 after 字段名
将字段移动到首位
alter table 表名 modify 字段名 数据类型 first;

删除字段

alter table 表名 drop 字段名;

修改字段

修改字段类型(未重命名)
alter table 表名 modify 字段名 数据类型;
修改字段名称(可修改数据类型和约束)
alter table 表名 change 旧字段名 新字段名 旧数据类型 旧约束;
//只修改字段名
alter table 表名 change 旧字段名 新字段名 新数据类型 新约束;
//修改字段名和数据类型与约束

约束

非空约束
alter table 表名 modify 字段名 数据类型 not null;
//非空
alter table 表名 modify 字段名 数据类型 null;
//空
添加默认约束
alter table 表名 modify 字段名 数据类型 default 默认值;
删除默认约束
alter table 表名 alter column 字段 drop default;

唯一约束

添加唯一约束
alter table 表名 modify 字段 类型 unique;
删除唯一约束
drop index key name on 表名;

主键约束

添加主键约束
alter table 表名 modify 字段名 字段类型 primary key;
//单一主键
删除主键约束
alter table 表名 drop primary key;
建表时给多个字段设置主键
create table 表名(字段1,类型1,约束1,字段2 类型 约束.... constraint 约束名 primary key(主键1,主键2,....))

自增约束

添加自增约束
alter table 表名 modify 字段 类型 auto_increment
删除自增约束
alter table 表名 modify 字段 类型;

清除数据

清空表后id从1开始,这个明显是用来清除前面数据。当程序员进行开发的时候,有很多的测试数据,当上线运行的时候,程序员都会I删掉。例如 id1000,现在想从001开始。

truncate 表名;

外键约束

增加外键约束
constraint s_s foeign key(外键名) references 连接表名(主键);
删除外键约束
alter table 表名 drop foreign key 外键约束名;

级联操作

delete cascade
alter table 表名 add constraint 外键约束名 foreign key(外键字段) references 父表名(父表字段)on delete cascade;
//如果把父表中的数据删除,子表的这个字段对应的数据更新成null
update cascade
alter table 表名 add constraint 外键约束名 foreign key(外键字段) references 父表名(父表字段)on update cascade;

DML

添加数据

insert into 表名(需要添加的字段) values(需要给的值);
//选中某些字段添加
insert into 表名 values(需要给的值);
//全部字段添加,值要与字段一一对应
insert into 表名(需要添加数据的字段) values(,,,,),(),();
//添加多条数据

删除数据

delete from 表名 where 条件;

更新数据

update 表名 set 字段1=,....where 条件;

条件语句

>    <    >=    <=   =
and(&&) or(||)//建议使用add和or
between1 and2//在值1和值2之间
is null    not is null//是否为空
in(1,2...)//在这些值内查找

DQL

查询所有表内数据

select * from 表名;

查询指定字段的数据

select 字段1,字段2 from 表名 where 条件;

查询指定字段的数据并给指定字段起名

select 字段1 as 别名1,.... from 表名 where 条件;

去重查询

select distinct 查询到字段名1,distinct 查询到字段名2... from 表名 where 条件;

查询到数据进行四则运算

select 查询到字段名1进行四则运算,查询到字段名2进行四则运算... from 表名 where 条件;

拼接查询内容

select concat(1,2,...) from 表名 where 条件;
//拼接值1,值2,...成一个字段

查询在两者之间

select 字段.... from 表名 where 字段 betweenand;

查询不在两者之间

select * from 表名 where 字段名 not betweenand

模糊查询

//_占位符,只能占一位
//%通配符,可占任意位

select * from 表名 where 字段名 like '%a%';
//查询含有a的某一字段

分页查询

//limit num1,num2  显式从第num1条数据开始,查询出num2条数据。num1是从0开始的

select * from 表名 limit num1,num2;
//从第num1行开始,查找num2条数据

排序

select * from 表名 order by 字段名 asc;
select * from 表名 order by 表名 desc;
//asc 升序
//desc 降序

分组(group by)

select * from 表名 group by 字段名;

聚合函数

//统计条数
(count(字段))
//计算平均值
avg(字段)
//最大值max(字段)//最小值min(字段)

HAVING 子句

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

表与表之间的关系

由于咱们再实际开发中,需要使用的数据会很多,也就导致数据对应的字段特别多。如果你把所有的字段全部建立再一张表里面,这样会导致一个数据的冗余度特别大。就需要把这些字段按照功能或者需求来进行分离,也就是咱们需要建立多张表,需要咱们在多张表之间进行操作(查询)。

一对一

一张表里面的一条记录对应另外一张表的一条记录

用户表和用户详细信息表

学生信息和学籍

人的信息表和身份证

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UheocrMc-1634978606736)(C:\Users\Administrator\Desktop\day42\笔记\images\image-20211020091923223.png)]

方案一:

用户登陆表里面有id,把这个id作为主键来设置,用户详情表id也作为主键,然后让用户表中的id和用户详情表的id对应

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QOlwVbtW-1634978606739)(C:\Users\Administrator\Desktop\day42\笔记\images\image-20211020092210851.png)]

方案二:唯一外键

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xMGzTLpe-1634978606741)(C:\Users\Administrator\Desktop\day42\笔记\images\image-20211020092720595.png)]

一对多

一张表里面的一条记录对应另外一张表的多条记录

多对一

一张表里面的多条记录对应另外一张表的一条记录

学生表和班级表

一个班级对应多个学生,多个学生对应的是一个班级

使用外键来实现表与表之间的关系

多对多

一张表里面的一条记录对应另外一张表的多条记录

另外一张表的一条记录对应一张表的多条记录

多表联查(join)

内连接(inner join)
select * from 表名1 inner join 表名2;
//这种情况会出现笛卡尔积,其结果为两张表的总数的乘积。查看查询出来的结果集中只有当表名1.主键= 表名2.主键.主键时符合需求
select * from 表名1 inner join 表名2 where 表名1.主键= 表名2.主键;

使用on关键字可以有效降低笛卡儿积带来的内存消耗

select * from 表名1 inner join 表名2 on dept.deptno = emp.deptno;

也可以使用as关键字给表起别名

select e.ename,e.job,d.loc from 表名1 e inner join 表名2 d on e.主键 = d.主键;
左连接(left join)
select * from 表名1 left join dept on 表名2.主键 = dept.主键;
//左边的表全部显式,右边的表没有与左边表对应,全部显式成null
右连接(right join)
select * from 表名1 right join dept on 表名2.主键 = dept.主键;

Union

把具有相同字段数目和字段类型的表合并到一起,去除相同记录。

SELECT name FROM table_name1 UNION SELECT name FROM table_name2 ....;
//在查询相同表内不同查询内容时,其形成的新的两张表字段名和字段类型完全相同,所以可以使用Union合并这两张查询表
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-24 14:59:55  更:2021-10-24 15:01:27 
 
开发: 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 3:37:15-

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