常用SQL语句(完整范例)
本文基于学校的班级、学生、学科、成绩等场景,实践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语句(完整范例)相关推荐
- 经典MySQL语句大全和常用SQL语句命令的作用。
转载自 http://blog.csdn.net/suyu_yuan/article/details/51784893 转自网络: 经典MSSQL语句大全和常用SQL语句命令的作用 下列语句部分是M ...
- php面试专题---MySQL常用SQL语句优化
php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...
- 南大通用GBase8s 常用SQL语句(四十)
南大通用GBase8s 常用SQL语句(四十) DATAFILES 子句 DATAFILES 子句指定当您使用外部表时打开的操作系统文件或管道. DATAFILES 子句 元素 描述 限制 语法 fi ...
- mysql备份数据库语句6_13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复...
扩展 : SQL语句教程 什么是事务?事务的特性有哪些? 根据binlog恢复指定时间段的数据 mysql字符集调整 使用xtrabackup备份innodb引擎的数据库 innobackupex ...
- mysql用户管理,常用sql语句,mysql数据库备份恢复
2019独角兽企业重金招聘Python工程师标准>>> mysql用户管理 grant all on . to 'user1' identified by 'passwd'; gra ...
- MySQL用户管理、常用sql语句、数据库备份
13.4 MySQL用户管理 创建用户并授权 指定登录IP [root@centos-01linux ~]# mysql -uroot -p Enter password: Welcome to th ...
- 55:Mysql用户管理|常用sql语句|mysql数据库备份恢复
2019独角兽企业重金招聘Python工程师标准>>> 1.Mysql用户管理: 场景,为了安全,新建的站点,创建新的用户,或者给已有用户授权,对某个库或者某个表有权限: 语法: g ...
- MySQL用户管理、常用SQL语句、MySQL数据库备份恢复
mysql用户管理 1.创建一个普通用户并授权 [root@gary-tao ~]# mysql -uroot -p'szyino-123' Warning: Using a password on ...
- 13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复
扩展 : SQL语句教程 http://www.runoob.com/sql/sql-tutorial.html 什么是事务?事务的特性有哪些? http://blog.csdn.net/yenang ...
- 52次课(mysql用户管理、常用sql语句、 mysql数据库备份恢复)
MySQL创建用户以及授权 默认用户是root用户,不可能所有人员都用root用户,创建用户防止误删除,因为mysql里边有多个库每个库里有很多表,所以需要给单独的用户做一些授权我只需要它对某一个数据 ...
最新文章
- 10大机器学习开源项目推荐(Github平均star为1385)
- SpringBoot集成Druid
- C语言缓冲区(缓存)详解
- 【PHPWord】插入Excel对象
- 客户管理系统之模块设计(十)
- fedora上ARM-LINUX-GCC 编译器安装
- mysql数据库插入图片_向MySql数据库插入与读取图片文件
- SpriteBuilder中关于大量CCB文件的数字命名建议
- iPhone SE 3钢化膜已上架海外市场:4.7英寸屏 Home键得到保留
- 子进程和父进程的结论_Python的多进程不是随便用滴!
- 深入剖析SolrCloud(四)
- 单行溢出文字省略号显示(HTML、CSS)
- msgget();msgsnd();msgrcv();msgctl(); 消息队列 Linux进程间的通信方式之消息队列
- 在 visual studio 中添加 ILDASM 工具
- HCIE学习笔记(2)之ISIS Overload
- python本科毕设_软件工程本科毕设能做什么?
- 今天脚被蜈蚣“啃”了
- 百度网盘开放平台接口调用前的准备
- codevs1515 瞎搞+Lucas
- NPOI使用Excel批注导入数据