Mysql简单入门
这两天比较懒,没有学习,这个是我问一个学java的小伙伴要的sql的总结资料,大体语句全在上面了,复制到博客上,以后忘记可以查看
#1命令行连接MySQL
msyql -u root -proot;
#2创建数据库
DATABASE `school`;
#3查看数据库列表
SHOW DATABASES;
#4选择数据库
USE `school`;
#5删除数据库
DROP DATABASE `school`;
#6创建表 学生表 (字段:学生编号 学生名)
CREATE TABLE IF NOT EXISTS student( studentId INT(4) PRIMARY KEY, studentName VARCHAR(20));
#7创建学生表 字段的约束及属性 主键 注释 字符集
CREATE TABLE IF NOT EXISTS student ( studentId INT(4) PRIMARY KEY, studentName VARCHAR(20)) COMMENT="学生表" DEFAULT CHARSET=utf8;
#8查看表
SHOW TABLES;
SELECT * FROM 表名;
#9删除表
DROP TABLE student;
#10修改表表名
ALTER TABLE new_student RENAME student;
#11修改表字段
ALTER TABLE student MODIFY studentname VARCHAR(10) NOT NULL;
ALTER TABLE 表名 CHANGE 旧字段名 新字段名[属性或约束];
#12添加表字段
ALTER TABLE student ADD newC INT(4);
#13删除字段
ALTER TABLE student DROP COLUMN newc;
#14添加主键
ALTER TABLE student ADD PRIMARY KEY `id`;
#15添加外键
ALTER TABLE student ADD CONSTRAINT g_s FOREIGN KEY (gradeId) REFERENCES `grade`(`gradeId`);
#16编写SQL语句实现从学生表提取姓名、手机号两列数据存储到通讯录表中
CREATE TABLE tongxunlu (SELECT studentname,phone, FROM student);
#17把成绩都降低10%后加5分,再查询及格成绩,并按照成绩从高到低排序
SELECT studentresult*0.9+5 FROM result WHERE studentresult*0.9+5>=60 ORDER BY studentresult*0.9+5 DESC;
#18查询所有年级编号为1的学员信息,按学号升序排序
#显示前4条记录
#每页4条,显示第2页,即从第5条记录开始显示4条数据
SELECT * FROM student WHERE gradeId = 1 ORDER BY studentNo LIMIT 4,4;
#19将学生表中学号为20000的学生的邮箱修改为stu20000@163.com,密码改为000
UPDATE student SET email='stu20000@163.com' WHERE studentNO = 20000;
#20将科目表中课时数大于200且年级编号为1的科目的课时减少10
UPDATE `subject` SET classhour=classhour-10 WHERE classHour>200 AND gradeId = 1;
#21将所有年级编号为1的学员姓名、性别、出生日期、手机号码信息保存到新表student_grade1中
CREATE TABLE student_grade1(SELECT studentName,sex,bornDate,phone FROM student);
#22查询2016年2月17日考试前5名的学员的学号和分数
SELECT studentNO,studentresult FROM result WHERE examdate = '2016-02-17' ORDER BY studentresult DESC LIMIT 5;
#23将所有女学生按年龄从大到小排序,从第2条记录开始显示6名女学生的姓名、年龄、出生日期、手机号信息
SELECT studentname,borndate,phone FROM student WHERE sex = '女' ORDER BY bornDate LIMIT 1,6;
#24查询参加2016年2月17日考试的所有学员的最高分、最低分、平均分
SELECT MAX(studentresult),MIN(studentresult),AVG(studentresult) FROM result WHERE examdate='2016-02-17';
#25编写SQL语句,查看年龄比“李斯文”小的学生,要求显示这些学生的信息
SELECT * FROM student WHERE bornDate < (SELECT borndate FROM student WHERE studentName = '李斯文');
#26查询参加最近一次Logic Java考试成绩的学生的最高分和最低分
SELECT MAX(studentResult),MIN(studentResult) FROM result WHERE examDate = (SELECT MAX(examdate) FROM result WHERE subjectno = (SELECT subjectno FROM `subject` WHERE subjectName = 'logicjava'));
#27查询“Logic Java”课程考试成绩为60分的学生名单
SELECT studentName FROM result,student WHERE result.`studentNo`=student.`studentNo` AND studentResult=60;
#28检查“Logic Java”课程最近一次考试成绩,#如果有 80分以上的成绩,显示分数排在前5名的学员学号和分数
SELECT studentResult FROM result WHERE EXISTS (SELECT studentNo FROM result WHERE studentResult>=80 AND examDate = (SELECT MAX(examDate) FROM result WHERE subjectNo IN (SELECT subjectno FROM `subject` WHERE subjectName = 'logicjava')) AND
subjectNo IN (SELECT subjectno FROM `subject` WHERE subjectName = 'logicjava')
) AND examDate = (SELECT MAX(examDate) FROM result WHERE subjectNo IN (SELECT subjectno FROM `subject` WHERE subjectName = 'logicjava')) AND
subjectNo IN (SELECT subjectno FROM `subject` WHERE subjectName = 'logicjava') ORDER BY studentResult DESC LIMIT 5;
#29检查“Logic Java”课程最近一次考试成绩,#如果全部未通过考试(60分及格),认为本次考试偏难,计算的该次考试平均分加5分
SELECT AVG(studentResult)+5 FROM result WHERE NOT EXISTS (SELECT studentNo FROM result WHERE studentResult<60 AND examDate = (SELECT MAX(examDate) FROM result WHERE subjectNo IN (SELECT subjectno FROM `subject` WHERE subjectName = 'logicjava')) AND
subjectNo IN (SELECT subjectno FROM `subject` WHERE subjectName = 'logicjava')
) AND examDate = (SELECT MAX(examDate) FROM result WHERE subjectNo IN (SELECT subjectno FROM `subject` WHERE subjectName = 'logicjava')) AND
subjectNo IN (SELECT subjectno FROM `subject` WHERE subjectName = 'logicjava');
#30根据课程编号分组,求每个小组平均分
SELECT AVG(studentResult) FROM result GROUP BY subjectNo;
#31根据课程编号分组,求每个小组平均分,由小到大排序
SELECT AVG(studentResult) FROM result GROUP BY subjectNo ORDER BY AVG(studentResult);
#32以年级,性别分组,求人数
SELECT COUNT(0) '人数' FROM student GROUP BY gradeId,sex;
#33求每个平均分数大于60的年级编号
SELECT gradeId FROM result,`subject` WHERE result.`subjectNo`=`subject`.`subjectNo` GROUP BY gradeId HAVING AVG(studentResult)>60;
#34查询学生成绩信息及个人信息显示
SELECT * FROM student JOIN result USING (studentNo);
#35查询u1所在的年级课程
SELECT sb.* FROM `subject` sb JOIN grade g USING (gradeid)
WHERE gradeName = 'u1';
Mysql简单入门的更多相关文章
- Sql与MySQL简单入门
作为过来人,给"新司机"一点建议:运维时需要搭建的生产环境,需尽量保持与测试环境一致:但搭建环境时,又苦于找不到合适的版本怎么办?不用怕,我是一个体贴的人,管杀也管埋(该链接为My ...
- [原创]MYSQL的简单入门
MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...
- [转]MySQL主从复制入门
1.MySQL主从复制入门 首先,我们看一个图: 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中. 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的33 ...
- [置顶] Mysql存储过程入门知识
Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...
- 运维自动化之SALTSTACK简单入门
运维自动化之SaltStack简单入门 饱食终日而无所事事,是颓也,废也.但看昨日,费九牛二虎之力除一BUG便流连于新番之中,不知东方之既黑,实乃颓颓然而荒废矣.故今日来缀一文以忏昨日之悔. Salt ...
- Java中Redis简单入门
Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. Redis官方网网站是:http://www.redis.io/,如下: Redis ...
- MyBatis学习总结(一)简单入门案例
MyBatis学习总结(一)简单入门案例 主要内容:本文主要通过对数据库中的use表进行增删改查总结mybatis的环境搭建和基本入门使用 一.需要的jar包: 1.核心包 2.依赖包 3.jdbc数 ...
- MySQL 菜鸟入门“秘籍”
一.MySQL简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不 ...
- MySQL存储过程入门
MySQL存储过程入门 在本教程中,我们将逐步介绍如何使用CREATE PROCEDURE语句开发第一个MySQL存储过程. 另外,我们将向您展示如何从SQL语句调用存储过程. 编写第一个MySQL存 ...
随机推荐
- Python基础二_操作字符串常用方法、字典、文件读取
一.字符串常用方法: name.captitalize() #字符串首字母大写 name.center(50,'*') ...
- JavaUtil 处理Base64的图片上传
UploadImageBase64.java package com.lee.util; import java.io.File; import java.io.FileOutputStream; i ...
- winform跨线程访问控件
首先说下,.net 2.0以后加强了安全机制,不允许在winform中直接跨线程访问控件的属性.所以除了控件所在的线程外的线程调用会抛异常 (Cross-thread operation not va ...
- 今日总结(linux和plsql)
#case ...when语句(根据字段不同值显示不同结果) ##1)case ...when语句的使用方法一: 语法格式: case column_name when value1 then res ...
- Elasticstarch 相关
索引: 在Elasticsearch中存储数据的行为就叫做索引(indexing),不过在索引之前,我们需要明确数据应该存储在哪里. 在Elasticsearch中,文档归属于一种类型(type),而 ...
- css显示display、可见性visibility、定位position、对齐
隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden",但是这两种方法会产生不同的结果. display ...
- Java线程安全容器
一.Java同步容器 同步容器是用来解决并发情况下的容器线程安全问题的.给多线程环境准备一个线程安全的容器对象. 线程安全的容器对象: Vector, Hashtable.线程安全容器对象,都是使用s ...
- Linux使用退格键时出现^H + Tab键命令补全失效/方向键失效 + ls文件夹和文件没有颜色
删除问题 安装kalilinux使用普通用户的的时候按退格键无法实现删除功能 解决的办法有两个 一改变快捷键: 使用Ctrl+Backspace组合键可以实现删除功能 ctrl + backspace ...
- centos-6.5安装部署LNMP环境
安装部署前,确保安装了gcc和gcc-c++ 系统信息: [root@zww ~]# cat /etc/redhat-release CentOS release 6.5 (Final) [root@ ...
- QT---实现舒尔特方格(零基础入门)
按照之前说的,加上舒尔特方格,读者还可以自行将此游戏做成APP放到手机上,后面还有贪吃蛇,Java版的飞机大战,五子棋,各类游戏会不断加上来的,当然,会免费附加源代码! 读者可以去4399去玩一下,可 ...