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简单查询语句的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询语句

T-SQL简单查询语句(模糊查询)

SQL语句之查询(SELECT)

如何查找MySQL中查询慢的SQL语句

关于数据库SQL语句的查询

在简单SQL查询语句中,( )子句用来指明需要输出的列,(_ .)子句用来指明要查询?