sql语句查询要怎么查询?有哪些查询方法?

TheDisguiser 2020-07-29 14:06:07 java常见问答 10899

SQL语句是数据库的灵魂,任何数据库都离不开SQL语句,SQL语句中最常用的就是查询语句了,那你们知道数据库中该怎么编写查询SQL语句吗?小编这里整理一些常用的方法,跟我一起来看看吧。

一、SQL简介

SQL是什么?

Structured Query Language:结构化查询语言

为什么要使用SQL?

操作比较方便;应用程序操作数据库只能通过SQL语言

何时使用?

对SQL Server执行的所有操作都可以,包括增删改查

什么是T-SQL?

Transact-SQL,是SQL的增强版,对功能进行了扩充,如变量说明、流程控制、功能函数

SQL的组成

a) DML(数据操作语言)

插入、删除和修改数据库中的数据

insert、update、delete等

b) DCL(数据控制语言)

用来控制存取许可、存取权限等

grant、revoke等

c) DQL(数据查询语言)

用来查询数据库中的数据

select等

d) DDL(数据定义语言)

用来建立数据库、数据库对象和定义表的列

create table、drop table等

SQL中常用运算符

赋值运算符:=

并且:and

或者:or

取反:not

不等于:<>、!=

二、基本查询语句

下面是一些基本查询例子:

/*
新建数据库studentDemo,运行 "studentDemo初始化.sql"
使用该数据库完成以下查询
*/
use studentDemo
--查询第一学期的全部学生信息
select * from Students where gradeid=1
--查询第二学期的全部学生姓名、电话
select studentname , phone,Gradeid from Students where Gradeid=2
--查询第一学期全部女同学的信息
select * from Students where sex='女' and gradeid=1
--查询课时超过 60 的科目信息
select SubjectName ,ClassHour from Subject where ClassHour>60
--查询第二学期的科目名称
select SubjectName ,Gradeid from Subject where Gradeid=2
--查询第二学期男同学的姓名和住址
select StudentName , Address ,sex, Gradeid from Students
where Gradeid=2 and sex='男'
--查询无电子邮件的学生姓名和年级信息
select StudentName,Gradeid,Email from Students where Email is null;
--查询出生日期在 1993 年之后的 S2 的学生姓名和年级信息 :
select StudentName, Borndate ,Gradeid from Students
where Borndate>'1993' and Gradeid=2
--查询参加了日期为 2013 年 2 月 15 日的“HTML 和 CSS 网页技术”科目考试的成绩信息
insert into Subject values('HTML 和 CSS 网页技术',60,1);
insert into Result values('S1234567',12,60,'2013-2-15');
select * from Result
where ExamDate='2013-2-15' and subjectid='12'
--查询 S1 的学生信息,按照出生日期排序
select * from Students
where Gradeid=1 order by Borndate
--按日期由前到后、成绩由高到低的次序,查询编号为 1 的科目考试信息
select * from Result where subjectid=1
order by ExamDate , StudentResult desc
--查询 2013 年 3 月 22 日参加“面向对象程序设计”考试的前 5 名学员成绩信息 --有瑕疵
select top 5 * from Result
where examdate='2013-3-22'and subjectid='5'
order by studentresult asc
--查询 S3 的课时最多的科目名称及课时
select top 1 * from subject
--查询年龄最小的学生所在的年级及姓名
select top 1 * from students
order by borndate desc
--查询 2013 年 3 月 22 日参加考试的最低分出现在哪个科目
select top 1 subjectid from result
where examdate='2013-3-22'
order by studentresult
--查询学号为“S1101003”的学生参加过的所有考试信息,并按照时间前后次序显示
select * from result where studentno='s1101003'
order by examdate asc
--查询学号为“S1101003”的学生参加过的所有考试中最高分及时间、科目
select top 1 * from result
where studentno='s1101003'
order by examdate asc
select * from Grade;
select * from Result;
select * from Students;
select * from Subject;
/*
新建数据库company,运行 "company初始化.sql" ,生成tbemp职员表和dbsales销售表
销售表中字段的含义:
EID--员工编号
pqty--商品销售数量
price--商品单价
sDate--销售日期
*/
----------------------基本查询------------------------------
use company
--查询所有职员的所有信息
select * from tbemp
--查询所有职员的姓名,电话,地址
select name,tel,address from tbemp
--查询所有女职员的详细信息
select * from tbemp where sex='女'
--查询年龄不是22岁的职员的信息
select * from tbemp where age!=22
--查询年龄在23到26岁之间的职员的姓名,性别,年龄
select name,sex,age from tbemp where age>23 and age<26
--查询李云,孙一成,林笑的电话,地址
select name, tel,address from tbemp where name = '李云'or name='孙一成' or 
name='林笑'
--查询家住长沙的女职员的姓名,电话,地址
select name, tel,sex,address from tbemp where address like '%长沙%' and 
sex='女'
--查询郴洲和株洲的职员的姓名,性别,年龄,住址
select name,sex,age,address from tbemp where address like '%郴洲%' or address 
like '%株洲%'
--查询邮箱为空的职员信息
select * from tbemp where email is null
--查询所有员工的姓名和地址,并把英文列名"Name"和"Address"改为中文列名"姓名"和"地址"
select name as '姓名', address as '地址' from tbemp
--请将员工姓名和电话两列的信息在结果集中一列显示
select '姓名为'+name+',电话为'+convert(varchar(11),tel)as '信息' from tbemp
--查询前一半员工的编号,姓名,年龄,联系电话
select top 50 percent eid,name,age,address from tbemp
--查询所有职员的信息并按年龄排序
select * from tbemp
order by age
--查询所有男职员并按年龄由大到小排序,如果年龄相同按照id升序排序
select * from tbemp where sex='男'
order by age desc, eid asc
--查询所有职员中年龄最大的两位员工
select top 2 * from tbemp
order by age desc
--查询所有员工信息,要求结果集表达方式为
--'员工1,赵龙,今年25岁,家住湖南省长沙市伍家岭江南苑9栋203号'
select 
'员工'+convert(varchar(2),eid)+','+name+','+'今年'+convert(varchar(2),age)+'岁,'+'家住'+address 
as '信息' from tbemp
--查询职员编号为2的职员的销售情况
select pname, pqty from dbsales where eid=2
--查询所有电视机的销售情况
select pname,pqty from dbsales where pname like '%电视机'
--查询所有销售情况,按照销售数量降序显示
select pqty from dbsales
order by pqty desc
--查询所有笔记本的信息并按照价格升序显示
select pname,price from dbsales where pname like '%笔记本'
order by price asc
--两个表的查询
select * from dbsales
select * from tbemp
select getdate()as '时间'

以上就是今天的全部内容了,更多java常见问答知识,快快关注我们的网站了解详情吧。

推荐阅读:

SQL语句求和语句该怎么编写?有几种方法?

SQL语句增删改查有哪些方法?要怎么实现?

SQL语句大全实例教程详解