2-1

2.1查看表结构与修改表名

########## modify the table name ##########

alter table tb_emp rename jd_emp;

########## show tables in this database ##########

show tables;

########## describe the table ##########

describe jd_emp;

2.2修改字段名与字段数据类型

########## change the column name ##########

alter table tb_emp change Id prod_id int;

########## change the data type of column ##########

alter table tb_emp modify Name varchar(30);

######### End ##########

DESCRIBE tb_emp;

2.3添加与删除字段

########## add the column ##########

alter table tb_emp add Country varchar(20) after Name;

########## delete the column ##########

alter table tb_emp drop Salary;

########## End ##########

DESCRIBE tb_emp;

2.4修改字段的排列位置

########## modify the column to top ##########

alter table tb_emp modify Name varchar(25) first;

########## modify the column to the rear of another column ##########

alter table tb_emp modify DeptId int after Salary;

########## End ##########

DESCRIBE tb_emp;

2.5删除表的外键约束

########## delete the foreign key ##########

alter TABLE tb_emp drop foreign key emp_dept;

########## End ##########

SHOW CREATE TABLE tb_emp \G;

2-2

2-2.1插入数据

########## bundle insert the value ##########

insert into tb_emp(Id,Name,DeptId,Salary)

values(1,'Nancy',301,2300),

(2,'Tod',303,5600),

(3,'Carly',301,3200);

########## End ##########

SELECT * FROM tb_emp;

2-2.2更新数据

########## update the value ##########

update tb_emp set Name="Tracy", DeptId=302,Salary=4300.00 where Id=3;

########## End ##########

SELECT * FROM tb_emp;

2-2.3删除数据

########## delete the value ##########

delete from tb_emp where Salary>3000;

######### End ##########

SELECT * FROM tb_emp;

3- -

3-1.2带IN关键子的查询

使用in关键字检索数据表中指定的数据内容

SELECT 字段名 FROM 表名 WHERE 字段名 NOT IN (n1,n2,n3,...); 。

select Name,Salary from tb_emp where Id not in(1);

3-1.2Between and查询

select Name,Salary from tb_emp where Salary BETWEEN 3000 and 5000;

3-2.1带 LIKE 的字符匹配查询

和LIKE一起搭配使用的就是通配符%和_

select Name,Salary from tb_emp where Name like 'C%';

3-2.2查询空值与去除重复结果

关键字IS NULL检索数据表中指定的字段的空值;使用关键字DISTINCT检索数据表中指定的不重复的内容

select * from tb_emp where DeptId is null;

select distinct Name from tb_emp where Name is not null;

3-2.3带 AND 与 OR 的多条件查询

使用关键字AND检索数据表中指定的字段的内容;使用关键字IN检索数据表中指定的字段的内容

OR 可以和 AND 一起使用。但是 AND 的优先级要高于 OR 的优先级!IN和OR功能相同(多用IN)

select * from tb_emp where DeptId='301' and Salary>3000;

select * from tb_emp where DeptId in('301','303');

3-3.1对查询结果进行排序

如果我们需要对读取的语句进行排序,我们就可以使用Order By子句来设定你想要按照的字段进行排序并返回结果。

SELECT 字段名 FROM 表名 ORDER BY 字段名 [ASC[DESC]];

########## 查询1班同学的所有信息以成绩降序的方式显示结果 ##########

select * from tb_score where class_id='1' order by score desc;

3-3-2分组查询

关键字group by 查询的结构是每个分组中首次出现的一条记录,一般和聚合函数一起使用

########## 对班级名称进行分组查询 ##########

select * from tb_class group by class_id;

3-3.3使用 LIMIT 限制查询结果的数量

SELECT 字段名 FROM 表名 LIMIT [OFFSET,] 记录数;

第一个参数,OFFSET,可选参数,表示偏移量,如果不指定默认值为0,表示从查询结果的第一条记录开始,若偏移量为1,则从查询结果中的第二条记录开始,以此类推。第二个参数,记录数,表示返回查询结果的条数

SELECT 字段名 FROM 表名 LIMIT [OFFSET,] 记录数;。

########## 查询班级中第2名到第5名的学生信息 ##########

select * from tb_score where score order by score desc limit 1,4;

4-1

4.1COUNT( )函数

########## 查询该表中一共有多少条数据 ##########

select count() from tb_class;

########## 查询此表中367班有多少位学生 ##########

select classid,count() from tb_class where classid=367;

4.2SUM()函数

########## 查询所有学生总分数 ##########

select sum(score) from tb_class;

select course,sum(score) from tb_class where course='语文';

########## 查询学生语文科目的总分数 ##########

4.3AVG( )函数

########## 查询学生语文科目的平均分数 ##########

select course,avg(score) from tb_class where course ='语文';

select course,avg(score) from tb_class where course ='英语';

########## 查询学生英语科目的平均分数 ##########

4.4MAX()函数

########## 查询学生语文科目的平均分数 ##########

select course,avg(score) from tb_class where course ='语文';

select course,avg(score) from tb_class where course ='英语';

########## 查询学生英语科目的平均分数 ##########

4.5MIN()函数

########## 查询语文课程中的最低分数 ##########

select course,min(score) from tb_class where course='语文';

select course,min(score) from tb_class where course='英语';

########## 查询英语课程中的最低分数 ##########

4-2

4-2.1内连接查询

select tb_student.name as studentName,tb_class.name as className from tb_student join tb_class on tb_student.class_id = tb_class.id;

4-2.2外连接查询

########## 使用左外连接查询所有学生姓名和对应的班级

select tb_student.name as studentName,tb_class.name as className from tb_student left join tb_class on tb_student.class_id = tb_class.id;

########## 使用右外连接查询所有学生姓名和对应的班级 ##########

select tb_student.name as studentName,tb_class.name as className from tb_student right join tb_class on tb_student.class_id = tb_class.id;

4-2.3复合条件查询

########## 查询所有班级里分数在90分以上的学生的姓名和学生的成绩以及学生所在的班级 ##########

select tb_student.name as studentName,tb_student.score,tb_class.name as className from tb_student join tb_class on tb_student.class_id = tb_class.id where tb_student.score>90 order by score desc;

子查询允许把一个查询嵌套在另一个查询当中。子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询。

子查询可以包含普通 select可以包括的任何子句,比如: distinct、 group by、 order by、 limit 、 join 等;但是对应的外部查询必须是以下语句之一: select、 insert、 update或者 delete。

子查询的位置: select 中、 from 后、 where 中 group by和 order by中无实用意义。

1.带有比较运算符的子查询是指父查询和子查询使用比较运算符连接的嵌套查询;

使用场景:当用户能够确切的知道内层查询返回的是单个值时,可以使用比较运算符。

select id,name, dept_id from employee where dept_id=(select dept_id from employee where name='Tom');

select name,age from tb_emp where age>(select avg(age) from tb_emp);

2.关键字查询

列子查询返回的结果集是 N 行一列,因此不能直接使用 = 、>、=、<=、<>这些比较标量结果的操作符。

在列子查询中可以使用 ALL、ANY、SOME 和 IN关键字操作符。

ALL必须接在一个比较运算符的后面,表示与子查询返回的所有值比较都为 TRUE则返回TRUE

1.使用 ALL 关键字进行查询

select position,salary from tb_salary where salary>all(select max(salary) from tb_salary where position='Java');

2.使用 ANY 关键字进行查询

select position,salary from tb_salary where salary>ANY(select min(salary) from tb_salary where position='Java');

3.使用 IN 关键字进行查询

select position,salary from tb_salary where position='Java';

mysql 子查询空_mysql的子查询相关推荐

  1. mysql多表查询书籍_MySQL多表查询及子查询

    1. MySQL数据库执行查询操作时的查询流程: 请求-->查询缓存 请求-->查询缓存-->解析器-->预处理器-->优化器-->查询执行引擎-->存储引擎 ...

  2. mysql数据库表子查询语句_MySQL使用子查询教程

    #MYSQL#这是我MyySQL教程的第四篇了,可能对于一些大神来说这些都是小儿科,但是我还是相信这些东西会对一些人有帮助的,本篇主要会介绍上面是子查询以及如何使用它们.大概会从,什么是子查询,利用子 ...

  3. mysql 单表子查询语句_MySQL基本SQL查询语句:多表查询和子查询示例

    一.简单查询:基本语法: 代码如下 SELECT * FROM tb_name; 查询全部 代码如下 SELECT field1,field2 FROM tb_name; 投影 代码如下 SELECT ...

  4. mysql的基本的查询语句_Mysql的基本查询语句

    聚集函数 mysql有5个聚集函数,分别是AVG,MAX,MIN,SUM,COUNT. 分组 分组的使用group by作为关键字,having作为条件关键字. having和where的区别:1.w ...

  5. mysql多表联合查询事例_MySQL——多表查询详细介绍以及实例

    1.表与表之间的关系 一对一:用户表和身份信息表,用户表是主表 例如:男人表 .女人表create table man( mid int primary key auto_increment, mna ...

  6. mysql 连接查询索引_Mysql (四)连接查询和索引

    一.什么是连接查询:就是将二个或二个以上的表,"连接起来"当做一个数据源,并从中去取得所须要的数据.连接查询包括交叉连接查询.内连接查询.外连接查询 (一)交叉连接:交叉连接不带W ...

  7. mysql多表查询总结_MySQL多表查询总结

    MySQL术语: Redundacncy(冗余):存储两次或多次数据,以便实现快速查询. Primary Key(主键):主键是唯一的.表中每条记录的唯一标识. Foreign Key(外键):用于连 ...

  8. mysql数据库查询游戏_MySQL数据库高级查询和多表查询

    MySQL多表查询 添加练习表 -- 用户表(user) CREATE TABLE `user`( `id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户id( ...

  9. mysql跨库查询 索引_MySQL中跨库查询怎么搞?

    导读 在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询. 在MySQL中跨库查询主要分为两种情况,一种 ...

  10. 清理mysql慢查询日志_MySQL清理慢查询日志slow_log的方法

    一.清除原因 因为之前打开了慢查询,导致此表越来越大达到47G,导致磁盘快被占满,使用xtrabackup进行备份的时候文件也超大. mysql> show variables like 'lo ...

最新文章

  1. python使用openCV加载图像、并将BGR格式转换成HSV格式、定义HSV格式中需要分离颜色的掩码(掩模)区间(mask)、并使用mask信息进行颜色分离、BGR格式的图像转化为RGB、并可视化
  2. Boost:boost::bimaps::multiset_of的测试程序
  3. C++求最小公倍數LCM的实现算法(附完整源码)
  4. 去了大公司就一定能学到很牛的技术么?
  5. 人工智能技术在互联网医疗中的应用
  6. js 导出pdf上传至oss_js实现oss文件上传及一些问题
  7. Java:键盘输入一个小数,输出其整数部分
  8. 平凡函数依赖是什么?
  9. socket网络编程-字典
  10. cent os7 安装kafka_2.13-2.6.0
  11. win10怎么修改计算机桌面存储路径,win10系统修改桌面文件存储路径的操作方法...
  12. linux下phylip软件构建NJ树,SNP数据构建系统进化树
  13. pycharm(Idea)破解到2100年
  14. OS学习笔记-3(清华大学慕课)系统启动流程及中断处理
  15. 如何查看存储过程内容
  16. Matlab标题加变量
  17. python从wind导入数据
  18. 商战计划商业逻辑和商业模式
  19. iOS 项目多环境配置
  20. 外星人计算机桌面,戴尔在发布Alienware Aurora R9游戏电脑和G5桌面电脑

热门文章

  1. Jzoj3883 线段树
  2. 第4章 同步控制 Synchronization ----同步机制的摘要
  3. “adb server is out of date.
  4. sublime ctrl b突然不能用解决方法
  5. 简单的三层框架以及使用dbutils进行数据库操作(入门)
  6. OPENROWSET访问CSV格式文件
  7. ASP.NET对IIS中的虚拟目录进行操作
  8. 咖啡品牌“三顿半”完成千万级Pre-A轮融资,峰瑞资本投资...
  9. 使用apache benchmark(ab) 测试报错: apr_socket_recv: Connection timed out (110)
  10. 区块链开发公司解析区块链在银行应用的优势