sql简单查询语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql简单查询语句相关的知识,希望对你有一定的参考价值。
五、考核内容:
1、新建一个学生管理数据库“Students”,数据库初始大小为5MB,最大大小20MB,数据库自动增长,增长方式是按10%比例增长;日志文件初始为1MB,最大可增长到5MB,按1MB增长;其余参数自定。
所包含的表如下:
学生信息表“StuInfo”:
名称 类型(长度) 键 空值
学号 Char (6) P NOT
姓名 Char (10) NOT
性别 Tinyint
专业名 Char (20) NOT
出生日期 Char (10)
入学时间 Char (10) NOT
备注 Char (100)
学生成绩表“StuMarks”:
名称 类型(长度) 键 空值
考号 Char (6) P NOT
学号 Char (6) F NOT
姓名 Char (10) NOT
语文 Float
数学 Float
英语 Float
计算机基础 Float
SQL数据库 Float
2、给学生基本信息表和学生成绩表分别录入5条以上的记录。
3、查询:
1)、查询学生信息表的所有内容。
2)、查询学生成绩表中考号、姓名、语文、数学、英语成绩。
3)、查询非计算机专业学生的考号、姓名、性别、计算机基础、SQL数据库成绩。
4)、查询成绩表中所有科目都及格的学生学号、姓名。
5)、查询学生成绩表中语文成绩最高分、数学最低分、英语平均分。
6)、查询总分在400分以上的学生的语文、数学、英语成绩。
7)、查询学生成绩表中姓名和SQL数据库的成绩,并对查询结果按成绩的降序排列(从大到小)。
六、评分标准:
1、第一题建立数据库,每张表10分,共20分。
2、第二题数据录入每张表5分,共10分。
3、第三题查询每小题10分,共70分。
考试要求:
1、 考试之前请先启动SQL服务器,打开企业管理器。
2、 信息表的主键为学号,成绩表的主键为考号;设置两表关系信息表学号为主键,成绩表学号为外键。
3、 保存七个查询语句文件。
4、 分离数据库,与查询语句文件保存到一个文件夹。
把文件名改为09JY2SQL期考***,注意*号为自己姓名。
把查询的内容用代码打出来即可
1、首先打开数据库,建立好表。
2、然后查询全体教师的教师号、姓名、职称,并分别为三列指定别名:教师号、姓名、职称,如下图所示。
3、查询结果如下图所示。
4、接着查询所有姓张的学生的学号和姓名,如下图所示。
5、最后查询选修C1(高等数学)且成绩高于85分的学生的学号、课程号和成绩,如下图所示就完成了。
参考技术A ......为点分真不容易1 select * from StuInfo
2 select 考号,姓名,语文,数学,英语 from StuMarks
3 select s1.考号,s1.姓名,s1.性别,s2.计算机基础,s2.SQL数据库
from StuInfo s1
left join StuMarks s2 on s1.学号=s2.学号
where 专业名!='计算机'
4 select 姓名,学号 from StuMarks where 语文>60 and 数学>60 and 英语>60 and 计算机基础>60 and SQL数据库>60
5 select max(语文),min(数学),avg(英语) from StuMarks
6 select 姓名,语文,数学,英语 from StuMarks where (语文+数学+英语+计算机基础+SQL数据库)>400
7 select 姓名,SQL数据库 from StuMarks
order by SQL数据库 desc本回答被提问者和网友采纳 参考技术B 只要求回答第五大题的第3小题是把!
1)select * from StuInfo
2) select 考号,姓名,语文数学,英语 from StuMarks
3) select StuMarks.考号, StuMarks.姓名, StuInfo.性别, StuMarks.计算机基础, StuMarks.SQL数据库成绩
from StuInfo,StuMarks
where StuInfo.学号=StuMarks.学号 AND StuInfo.专业名!=计算机
4)
select 姓名,学号
from StuMarks where 语文>60 and 数学>60 and 英语>60 and 计算机基础>60 and SQL数据库>60
5)
select max(语文) 语文最高分,min(数学) 数学最低分,avg(英语) 英语平均分
from StuMarks
6)
select 学号,语文,数学,英语
from StuMarks
where (语文+数学+英语+计算机基础+SQL数据库)>400
7)
select 姓名,SQL数据库
from StuMarks
order by SQL数据库 desc 参考技术C 今天我们学习了sql的一些简单的查询
先是就简单的查询了一个表的数据
先新建一个表stu1:
接下来就是一些简单的查询了
查询性别为女,并且年龄32的记录
SELECT * FROM stu1 WHERE gender=‘女’ AND age=32;
查询学号为1,或者姓名为WYB的记录
SELECT * FROM STU1 WHERE sid=1 OR sname=‘wyb’;
查询学号为1,2,3的记录
SELECT * FROM stu1 WHERE sid=1 OR sid=2 OR sid=3;
查询学号不是1,2,3的记录
SELECT * FROM stu1 WHERE sid NOT IN(1,2,3);
查询年龄为null的记录
SELECT * FROM stu1 WHERE age IS NULL;
查询年龄在20到40之间的学生记录
SELECT * FROM stu1 WHERE age>20 AND age<40;
查询性别非男的学生记录(有两种方法)
SELECT * FROM stu1 WHERE gender!=“男”;
SELECT * FROM stu1 WHERE gender<>“男”;
查询姓名不为null的学生记录
SELECT * FROM stu1 WHERE sname IS NOT NULL;
查询姓名为L的学生记录
SELECT * FROM stu1 WHERE sname LIKE “l%”;
SQL概述及简单查询语句
SQL概述
SQL(Structured Query Language)是结构化查询语言,它是对关系型数据库的操作语言。
它可以应用到所有关系型数据库中,例如:MySQL、Oracle、SQL Server等。
虽然SQL可以用在所有关系型数据库中,但很多数据库还都有标准之后的一些语法,我们可以称之为方言。例如MySQL中的LIMIT语句就是MySQL独有的方言,其它数据库都不支持。
语法要求
- SQL语句可以单行或多行书写,以分号结尾
- 可以用空格和缩进来来增强语句的可读性
- 关键字不区别大小写,建议使用大写
SQL分类
DDL
DDL(Data Definition Language):数据定义语言。
用来定义数据库对象:库、表、列等。
- 创建数据库
create database 数据库名;
- 切换数据库
use 数据库名;
- 删除数据库
drop database 数据库名;
- 创建表格
create table 表名(
列名 列数据类型,
列名 列数据类型,
......
)
给表添加列:alter table 表名 add (列名 数据类型);
修改列的数据类型:alter table 表名 modify 列名 新数据类型;
修改列名:alter table 表名 change 旧列名 新列名 数据类型;
删除列:alter table 表名 drop 列名;
修改表名:alter table 表名 rename to 新名称;
DML
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)。
- 插入语句:向表中插入记录
insert into 表名(列1,列2,...) values(值1,值2...)
- 修改表的记录
update 表名 set 列名1 = 值1,列名2=值2,... [where 条件];
- 删除表格记录
delete from 表名 [where 条件];
DCL
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。
- 创建用户
CREATE USER ‘用户名’@地址 IDENTIFIED BY '密码';
- 查看用户权限
SHOW GRANTS FOR ‘用户名’@地址;
- 删除用户
DROP USER ‘用户名’@地址;
- 修改用户密码
use mysql;
alter user '用户名'@localhost identified by '新密码';
DQL
DQL(Data Query Language):数据查询语言,用来查询记录(数据)。
语法:
select 列名 --> 要查询的列名称
from 表名 --> 要查询的表名称
where 条件 --> 行条件
group by 分组列 --> 对结果分组
having 分组条件 --> 分组后的行条件
order by 排序列 --> 对结果分组
limit 起始行, 行数 --> 结果限定
查询记录
- 简单查询
select 列名1,列名2,... from 表名;
若要查询所有列,可以用通配符 * 代替所有列
- 条件查询
select 列1,列2,... from 表名 where 条件;
between…and… :在两个值之间
in(集合):在集合范围内
is NULL: 是否是空值
and: 与
or : 或
not: 取反
- 模糊查询
模糊查询:SELECT 列 FROM 表名 WHERE 某列 Like 条件;
‘%’:表示任意0个或多个字符
‘_’:任意单个字符
- 字段查询
去掉重复记录:
DISTINCT
将Null转换为指定的值:IFNULLL(列名,值)
给列添加别名:as
注意:
如果表中两列的类型都是数值类型,可以做加运算。如果有一个字段不是数值类型,就会出错。
SELECT *, sal+comm FROM emp;
若comm列有很多记录的值为NULL,任何东西与NULL相加结果还是NULL,所以结算结果可能会出现NULL。
使用把NULL转换成数值0的函数IFNULL:
SELECT *, sal+IFNULL(comm,0) FROM emp;
- 对查询结果进行排序
select 列 from 表名 [where 条件] order by 列名 asc/desc
- 聚合函数
COUNT():统计指定列不为NULL的记录行数;
SELECT COUNT(*) AS cnt FROM emp;
MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
- 分组查询
group by
- having子句:对分组结果进行筛选
where是对分组前的数据进行筛选,不满足条件的记录不进行分组
having是对分组后的数据进行筛选,必须和group by结合使用,不能单独使用
- 分页查询
select 列 from 表名 [where 条件] limit 起始行索引,查询的行数
LIMIT
:分页查询,用来限定查询结果的起始行和查询行数,是MySQL独有的
多表连接查询
内连接:内连接仅选出两张表中互相匹配的记录
外连接:既包括两张表匹配的记录,也包括不匹配的记录。
- 左外连接:又称为左连接,查询结果中包含左边表中所有的记录,右边表中没有匹配的记录显示为NULL。
select 列 from 左表 left join 右表 on 条件
- 右外连接:又称为右连接,包含右边表中所有的记录,左边表中没有匹配的记录显示为NULL
select 列 from 左表 right join 右表 on 条件
笛卡尔积:是两张表的并集
子查询
子查询是多表连接查询的一种实现方式。
在一个select语句的from子句或where子句中嵌套了另一个select语句。
外层的SELECT查询语句称为主查询,WHERE或FROM中的查询语句称为子查询。
常用指令
- 修改mysql的登陆密码
set password for 用户名@localhost = password('新密码'); -->5.0版本
set password for 用户名@localhost = '新密码'; -->8.0版本
alter user 'root'@'localhost' identified by '123456'; -->8.0版本
- 操作数据库的指令
show databases; --> 显示所有数据库
use 数据库名; -->切换数据库
show tables; -->显示数据库下的所有表格
desc 表名; -->显示表结构
select database(); -->查看当前使用的数据库
create database 数据库名; -->创建数据库
drop database 数据库名; -->删除数据库
source sql脚本文件名; --> 执行sql脚本文件
路径分割符:
windows系统路径分隔符是:" \\ "
Linux系统的路径分隔符是: " / "
以上是关于sql简单查询语句的主要内容,如果未能解决你的问题,请参考以下文章