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常见问答知识,快快关注我们的网站了解详情吧。
推荐阅读: