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基础命令语句(1) -> 正文阅读

[大数据]Mysql基础命令语句(1)

例子

创建学生表格
create table student (
sno char(5),
sname char(10),
ssex char(2),
sage int,
sdept char(20),
constraint pk_student primary key(sno),
constraint student_age check(sage>=1 and sage<=150)
)engine=innoDB charset=utf8 collate=utf8_bin;

插入数据
insert into student(sno,sname,sage,ssex,sdept) values(‘10001’,‘李勇’,20,‘男’,‘CS’);
insert into student(sno,sname,sage,ssex,sdept) values(‘10002’,‘刘晨’,19,‘女’,‘CS’);
insert into student(sno,sname,sage,ssex,sdept) values(‘10003’,‘王敏’,18,‘女’,‘MA’);
insert into student(sno,sname,sage,ssex,sdept) values(‘10004’,‘张立’,19,‘男’,‘IS’);
在这里插入图片描述
创建课程表
create table course (
cno int,
cname char(20),
cpno int,
ccredit int,
constraint pk_course primary key(cno)
)engine=innoDB charset=utf8 collate=utf8_bin;

插入课程数据
insert into course(cno,cname,cpno,ccredit) values(1,‘数据库’,5,4);
insert into course(cno,cname,cpno,ccredit) values(2,‘数学’,null,2);
insert into course(cno,cname,cpno,ccredit) values(3,‘信息系统’,1,4);
insert into course(cno,cname,cpno,ccredit) values(4,‘操作系统’,6,3);
insert into course(cno,cname,cpno,ccredit) values(5,‘数据结构’,7,4);
insert into course(cno,cname,cpno,ccredit) values(6,‘数据处理’,null,2);
insert into course(cno,cname,cpno,ccredit) values(7,‘PASCAL语言’,6,4);
在这里插入图片描述
创建成绩表
create table sc(
sno char(5),
cno int,
grade int,
constraint pk_sc primary key(sno,cno),
constraint fk_student foreign key(sno) references student(sno),
constraint fk_course foreign key(cno) references course(cno),
constraint sc_grade check(grade>=0 and grade<=100)
)engine=innoDB charset=utf8 collate=utf8_bin;

插入成绩
insert into sc(sno,cno,grade) values(‘10001’,1,92);
insert into sc(sno,cno,grade) values(‘10001’,2,85);
insert into sc(sno,cno,grade) values(‘10001’,3,88);
insert into sc(sno,cno,grade) values(‘10002’,2,90);
insert into sc(sno,cno,grade) values(‘10002’,3,80);

在这里插入图片描述

1.在select语句中使用*号通配符查询所有字段

set names gbk;
在这里插入图片描述

2.在select语句中指定字段

select sno,sname from student
在这里插入图片描述

3.查询指定记录

select * from student where sname=‘李勇’;
select sname from student where sage >18
在这里插入图片描述
在这里插入图片描述

4.IN关键字//用于char格式

select * from student where sno in(‘10001’,‘10004’);
在这里插入图片描述

5.between and 关键字//用于int格式

select * from student where sage between 19 and 20;
在这里插入图片描述

6.字符串匹配

select * from student where sno like ‘1_’; //’_'是单个未知字符的查询符号
select * from student where sno like ‘1%4’;
在这里插入图片描述

7.空值查询

select * from course where cpno is null
select * from courese where cpno is not null
在这里插入图片描述

8.and查询

select * from student where ssex='男‘ and sdept=‘CS’;
在这里插入图片描述

9.OR查询

select * from student where sdept=‘CS’ or sage=19;
在这里插入图片描述

10.查询结果不重复

select sno from sc;
select distinct sno from sc;
请添加图片描述

11.排序

12.查询学号为‘10001’学生的姓名和成绩

select sname,grade from student inner join sc on student.sno=sc.sno where student.sno=‘10001’ order by sname;

select sname,grade //投影 --1
from student inner join sc on student.sno=sc.sno //连接 --2
where student.sno=‘10001’ //选择 --3
order by sname; //排序 --4
运行顺序是 2 3 1

一 单表查询

结构 : select 列 from 表名 where …
最简单的顺序

1.查询所有的列

select * from sc
seelct sno,cno,grade from sc
*****代表所有的列

2.查询指定列

查询学生表所有的学号,学生名
select sno,sname from student;

3.查询指定条件的行

查询"王X"学生的学号(两个字符长度)
select sno from student where sname like ‘王_’
'_'表示一个字符

4.查询所有"王"姓学生的学号(名字为多个字符)

select sno from student where sname like ‘王%’
'%'表示0个或多个字符

5.查询年龄从18到20岁的学生的学号

select sno from student where sage>=18 and sage<=20

select sno from student where sage between 18 and 20

6.消除重复行distinct关键字

查询成绩表的sno字段,不允许重复
select distinct sno from sc

7.排序

查询学生年龄按升序排序
select * from student order by sage asc;
查询学生年龄按降排序
select * from student order by sage desc;

8.IN关键字

查询年龄18,20学生的信息
select * from student where sage=18 or sage=20

select * from student where sage in (18,20)
提示:in关键字表示集合操作
or 表示或

聚集函数 对查询结果做统计操作

查询有多少个学生

select count(*) from student;

查询学生的平均年龄

select avg(sage) from student;

查询学生的年龄总和

select sum(sage) from student;

查询学生的年龄最大值

select max(sage) from student;

查询学生的年龄最小值

select min(sage) from student;

查询:按照学生所在系进行分组 统计 每个小组的平均年龄每小组的人数不低于2个人

select sdept ,avg(sage) from student
group by sdept having count(*)>=2;

select sdept ,avg(sage) //投影–1
group by sdept //分组–2
having count(*)>=2 //小组筛选–3
from student //连接 (单表没有连接(这里))–4
where … //选择 这里没有选择–5
order by …//排序 这个语句没有–6
运行的顺序是 4 5 2 3 6 1

更新操作

对学生表所有的年龄都加1

update student set sage=sage+1

对学号是‘10001’学生年龄加1

update student set sage=sage+1 where sno=‘10001’

删除操作

删除学生表所有数据

delete from student;

删除学生表学号为10001学生的数据

delete from student where sno=‘10001’

插入数据

insert into sc(sno,cno,grade)
values(‘10005’,9,99)

分组
分组的目的是为了做统计
统计工作是由聚集函数完成的
所以分组要使用聚集函数

要按系别分组统计每个系的人数

select sdept,ssex,count(*) from student group by sdept,ssex;
注意:聚集函数前是分组的列

连接
select … from 表1,表2 where …;

步骤
步骤1 表1和表2做笛卡尔积
步骤2 对步骤1的结果做条件筛选(where条件)
步骤3 对步骤2的结果投影

学生表和成绩表的笛卡尔积

select * from student,sc;
select count(*) from student,sc;
20

表1 6行
表2 7行
表1和表2的笛卡尔积6*7行(考试内容)

连接
学生表和成绩表连接
select sno ,grade from sc,student where sc.sno=student.sno

   步骤1 表1和表2做笛卡尔积
   步骤2 对步骤1的结果做条件筛选(where条件)
   步骤3 对步骤2的结果投影

查询学生学生姓名为“王敏”的学生的所有成绩
查询学生学生姓名为“王敏”的学生的所学课程号
查询学生学生姓名为“王敏”的学生的所学课程名

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

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