SQL语句

表结构

student sc course tesacher
sid sid - tname
sname cid cid -
sage score cname -
ssex - tid tid

增删改操作

建表

create table student(sid varchar(20),sname varchar(20),sage number,ssex varchar(20)
)

插入

insert into student(sid, sname, sage, ssex)values('001', 'kangyue', 29, 'male')

修改

update sc
set sc.score = '60'
where sc.sid = '001'

删除

删除叶平老师的sc记录

delete sc
from sc, teacher as t, course as c
where sc.cid = c.cid and t.tid = c.tid and t.tname = '叶平'

查询

查询”001”课程比”002”课程成绩高的所有学生的学号

select s.sid
from
(select sid,score from sc where sc.cid = '001') as a,
(select sid,score from sc where sc.cid = '002') as b
where a.sid = b.sid  and a.score > b.score

查询平均成绩大于60分的同学的学号和平均成绩

select sc.sid, avg(sc.age)
from sc
group by sc.sid
having avg(sc.score) > 60

sql中的分组

  • where 对分组前的属性进行筛选
  • having
    对分组后的属性进行筛选
    使用聚合函数判断
    不是用group by默认整个表为一组

查询姓李的老师的个数

select count(t.tid)
from teacher as t
where t.tname like "李%"

sql中的通配符

_ 匹配单字符-> ‘_im’ 匹配 Tim Jim
% 匹配一个或多个字符 -> ‘李%’
[] 匹配单字符 -> ‘[JT]im’
[^] 反向匹配 -> ‘m[^c]%’
也可以使用REGEX()函数匹配正则

查询所有同学的学号,姓名,选课书,总成绩

select s.sid, s.sname, count(sc.id), sum(sc.score)
from student as s, sc
where s.sid = sc.sid
group by sc.sid

使用左连接:
select s.sid, s.sname, count(sc.id), sum(sc.score)
from student as s left join sc on s.sid = sc.sid
group by s.sid

内连接,外连接,左连接,右连接

  • 内连接 inner join = join 两边有匹配才选择
  • 外连接
    • 左连接 left join 左边都选择
    • 右连接 right join 右边都选择

查询没学过叶平老师课的学生的学生,姓名

select st.sid, st.sname
from student as st
where st.sid not in
(select s.sid
from sc, course as c, teacher as t
where sc.cid = c.cid and c.tid = t.tid and t.tname = '叶平')

子查询,not in取反

查询所有课程成绩小于60分的同学的学号姓名

select s.sid,s.sname
from student as s
where s.sid not in
(select sc.sid
from sc
where sc.score >= 60)

查询每门课程平均成绩,结果按平均成绩升序,平均成绩相同按课程号降序

select avg(sc.sccore)
from sc
group by sc.cid
order by sc. avg(sc.score) asc, sc.cid desc

排序,升序,降序

查询任何一门课程成绩在70分以上的姓名,课程名,分数

SELECT distinct s.sid,s.sname
FROM student as s,sc
where s.sid = sc.sid and sc.score > 70

distinct去重

查找001课程第三高的学生学号

select top 1 sid
from
(select top 3 sc.sid, sc.score
from sc
where sc.cid = '001'
order by sc.score desc
)
order by score asc

查询第n高

先降序排取前n个,后升序排取第一个。

#数据库

数据库基础及常用SQL语句相关推荐

  1. 数据库基础面试题- SQL语句

    24.SQL如何创建一个数据库? A. CREATE db  my_db; B. CREATE SQLDATABASE  my_db; C. CREATE MYDATABASE my_db; D. C ...

  2. 常用SQL语句 - 基于MySQL数据库

    常用SQL语句 - 基于MySQL数据库 基础 连接数据库 mysql -h10.20.66.32 -uroot -p123456 -h后面是mysqlServer所在地址,-u后面是用户名,-p后面 ...

  3. mysql备份数据库语句6_13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复...

    扩展 : SQL语句教程 什么是事务?事务的特性有哪些? 根据binlog恢复指定时间段的数据 mysql字符集调整 使用xtrabackup备份innodb引擎的数据库  innobackupex  ...

  4. mysql用户管理,常用sql语句,mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> mysql用户管理 grant all on . to 'user1' identified by 'passwd'; gra ...

  5. MySQL用户管理、常用sql语句、数据库备份

    13.4 MySQL用户管理 创建用户并授权 指定登录IP [root@centos-01linux ~]# mysql -uroot -p Enter password: Welcome to th ...

  6. 55:Mysql用户管理|常用sql语句|mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> 1.Mysql用户管理: 场景,为了安全,新建的站点,创建新的用户,或者给已有用户授权,对某个库或者某个表有权限: 语法: g ...

  7. MySQL用户管理、常用SQL语句、MySQL数据库备份恢复

    mysql用户管理 1.创建一个普通用户并授权 [root@gary-tao ~]# mysql -uroot -p'szyino-123' Warning: Using a password on ...

  8. 13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复

    扩展 : SQL语句教程 http://www.runoob.com/sql/sql-tutorial.html 什么是事务?事务的特性有哪些? http://blog.csdn.net/yenang ...

  9. 52次课(mysql用户管理、常用sql语句、 mysql数据库备份恢复)

    MySQL创建用户以及授权 默认用户是root用户,不可能所有人员都用root用户,创建用户防止误删除,因为mysql里边有多个库每个库里有很多表,所以需要给单独的用户做一些授权我只需要它对某一个数据 ...

最新文章

  1. webservice发送字符串
  2. 不连续子网掩码的魅力
  3. golang中的sync.WaitGroup
  4. 看到了一个 蒙特卡洛方法 随机数得出 圆周率的c++ 源码
  5. 《程序员歌单》请查收
  6. Signalr2_消息弹窗
  7. linux usb-skeleton,Linux USB驱动程序(2)----usb-skeleton.c分析
  8. java 读 jar外文件_读取Jar包外面的配置文件
  9. Jeecg-Boot 2.0.0 版本发布,基于Springboot+Vue 前后端分离快速开发平台
  10. 版式之美!左右布局图文排版设计灵感
  11. 【BZOJ 2595】2595: [Wc2008]游览计划 (状压DP+spfa,斯坦纳树?)
  12. 如何使基于梯度下降的机器学习并行化
  13. web developer tips (18):从工具箱粘贴或拖拽控件时进行绝对定位
  14. pytorch 中 torch.optim.Adam
  15. Axure RP Pro 6.5.0.3050破解版下载(本帖链接与官方版本同步更新)
  16. win10计算机文件坏了,win10电脑电脑注册表文件丢失或损坏0xc0000e9怎么办
  17. 华夏联盟社会工程技术学习
  18. 百度谷歌一起搜 - 百Google度 - Chrome插件2
  19. ORA-12034: materialized view log on SCOTT.T_ROWID younger than last refresh
  20. Excel函数的使用和参数

热门文章

  1. 【重识云原生】第六章容器6.3.5节——Controller Manager概述
  2. oracle数据库怎么进行树查询,oracle树查询的实现
  3. 简述Android手机常用的设备ID
  4. unity学习笔记-实现版本更新
  5. 标注线段长度批量lisp_晓东CAD家园-论坛-每日插件-求批量多线段长度标注-求批量多线段长度标注插件!万分感谢!!! - Powered by Discuz!...
  6. java的class是什么意思_Java的class是什么意思?
  7. 常见混沌系统—Lorenz模型
  8. 彻底解决安装包过程中的Requirement already satisfied:问题
  9. 市场营销工作重中之重——提升工作效率
  10. 应用分享:GIF压缩助手