本文基于学校的班级、学生、学科、成绩等场景,实践SQL语句的使用

创建表

  • 创建班级表
CREATE TABLE class(
class_id INT auto_increment PRIMARY key,
class_name VARCHAR(10));
alter table class AUTO_INCREMENT =1;
  • 创建学生表
CREATE TABLE student(
stu_id INT AUTO_INCREMENT  PRIMARY KEY,
stu_name VARCHAR(10),
stu_sex VARCHAR(1),
stu_age INT,
class_id INT,
foreign key(class_id) references class(class_id)
);
alter table student AUTO_INCREMENT =1;
  • 创建科目表
CREATE TABLE course(
course_id INT auto_increment PRIMARY key,
course_name VARCHAR(10));
alter table course AUTO_INCREMENT =1;
  • 创建成绩表
drop table score;
CREATE TABLE score(
id INT auto_increment PRIMARY key,
stu_id INT,
course_id INT,
mark DECIMAL(3,1),
foreign key(stu_id) references student(stu_id),
foreign key(course_id) references course(course_id)
);
alter table score AUTO_INCREMENT =1;
desc score;

向表里插入数据

操作表为class表

insert into class values(NULL, '一二')
insert into class (`class_id`,`class_name`) values (NULL, '一3')
insert into class (`class_name`) values ('一4')

存储过程的使用:批量插入数据

  • 创建存储过程
CREATE PROCEDURE search_sex ( #search_user_name为存储过程的名字IN search_sex VARCHAR (20), #传入的参数OUT count_number INT #返回的参数
) READS SQL DATA #程序中包含读数据的语句
BEGINSELECTCOUNT(*) INTO count_numberFROMstudentWHEREstu_sex LIKE CONCAT('%', search_sex, '%');
END
  • 调用存储过程
CALL search_sex('女', @nameCount);
SELECT @nameCount;
  • 使用存储过程向学生表里插入大量数据
#创建存储过程创建大量数据
drop PROCEDURE  if EXISTS insert_students;
CREATE PROCEDURE insert_students(
IN loop_times INT,
IN stu_name CHAR,
IN stu_sex CHAR,
IN stu_age INT,
IN class_id INT)
BEGINDECLARE var INT DEFAULT 0; WHILE var < loop_times DOINSERT INTO student VALUES (NULL,concat(stu_name,CONVERT(var,CHAR)),stu_sex,stu_age,class_id);SET var = var + 1;END WHILE;
ENDCALL insert_students(10,'钱','男',16,4);

查找语句

  • 查找所有成绩都大于95分的同学姓名
SELECT student.stu_name FROM score,student
where score.mark>95
and student.stu_id=score.stu_id
GROUP BY score.stu_id
having count(*)>1
  • 查询平均分大于90分的同学名单
SELECT score.stu_id,student.stu_name,AVG(score.mark)FROM score,student
where student.stu_id=score.stu_id
GROUP BY score.stu_id HAVING AVG(score.mark)>90
  • 查出平均分最高的同学 (如果最高有两个呢??)
SELECT score.stu_id,student.stu_name,AVG(score.mark)FROM score,student
where student.stu_id=score.stu_id
GROUP BY score.stu_id
ORDER BY AVG(score.mark) desc LIMIT 1

常用SQL语句(完整范例)相关推荐

  1. 经典MySQL语句大全和常用SQL语句命令的作用。

    转载自 http://blog.csdn.net/suyu_yuan/article/details/51784893 转自网络: 经典MSSQL语句大全和常用SQL语句命令的作用  下列语句部分是M ...

  2. php面试专题---MySQL常用SQL语句优化

    php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...

  3. 南大通用GBase8s 常用SQL语句(四十)

    南大通用GBase8s 常用SQL语句(四十) DATAFILES 子句 DATAFILES 子句指定当您使用外部表时打开的操作系统文件或管道. DATAFILES 子句 元素 描述 限制 语法 fi ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 10大机器学习开源项目推荐(Github平均star为1385)
  2. SpringBoot集成Druid
  3. C语言缓冲区(缓存)详解
  4. 【PHPWord】插入Excel对象
  5. 客户管理系统之模块设计(十)
  6. fedora上ARM-LINUX-GCC 编译器安装
  7. mysql数据库插入图片_向MySql数据库插入与读取图片文件
  8. SpriteBuilder中关于大量CCB文件的数字命名建议
  9. iPhone SE 3钢化膜已上架海外市场:4.7英寸屏 Home键得到保留
  10. 子进程和父进程的结论_Python的多进程不是随便用滴!
  11. 深入剖析SolrCloud(四)
  12. 单行溢出文字省略号显示(HTML、CSS)
  13. msgget();msgsnd();msgrcv();msgctl(); 消息队列 Linux进程间的通信方式之消息队列
  14. 在 visual studio 中添加 ILDASM 工具
  15. HCIE学习笔记(2)之ISIS Overload
  16. python本科毕设_软件工程本科毕设能做什么?
  17. 今天脚被蜈蚣“啃”了
  18. 百度网盘开放平台接口调用前的准备
  19. codevs1515 瞎搞+Lucas
  20. NPOI使用Excel批注导入数据

热门文章

  1. PyTorch中的生成对抗网络(GAN)
  2. 利用格林函数解泊松方程
  3. 转载一个 mui 等待动画 mui.showLoading
  4. windows DNS 服务器递归查询超时机制
  5. MFC中获取各个窗口(对话框)之间的指针、对象、句柄
  6. 接收子元素focus_获取元素的直接的子元素childen
  7. 28本大数据/数据分析/数据挖掘电子书合集免费下载!
  8. 光伏电站运维管理系统
  9. go的编程哲学和设计理念
  10. 文本编辑器Notepad++使用技巧