我们之前已经创建了数据库bookMIS
,并且在数据库里创建了两张表,分别为AUTHORS
和BOOKS
,现在准备对这两张表进行如下操作:
在表中录入数据之后得到:
查询功能的思考方向:
固定语法:
select
from
1.查询全体作者的详细信息
use "bookMIS"
--首先使用数据库,也就是指明表的方向,所在的数据库
select *
-- *代表全体信息
from AUTHORS
go
首先锁定查找对象的属性:BookName
和Price
再锁定查找对象的位置:表BOOKS
某表的属性表示方法:表名.属性名
例如:表BOOKS
的属性BookName,Price
可以表示为:
BOOKS.BookName,Price
也可以表示为:BOOKS.BookName
和BOOKS.Price
use "bookMIS"
--注意按照思考方向来写这段语句
select BOOKS.BookName,Price
from BOOKS
go
3.查询作者的姓名,出生年份和性别,性别转换成小写显示。
小写表示:lower(属性名)
这是一个内置函数
use "BookMIS"
select
AUTHORS.AuthorName,2019-Age,lower(Sex)
from AUTHORS
go
结果不能出现重复的语句是:distinct
use "BookMIS"
select
distinct BOOKS.Publisher
from BOOKS
go
5.查询价格大于30的书籍的编号和书名
PS:where
条件基本上是放在from
后边的
use "BookMIS"
select
BOOKS.BookID,BookName
from BOOKS
where(BOOKS.Price>=30)
go
use "BookMIS"
select
AUTHORS.Telephone,AAdress
from AUTHORS
where(AUTHORS.AuthorID=30)
go
use "BookMIS"
select
BOOKS.BookName,Price
from BOOKS
where(BOOKS.Price>=20 and BOOKS.Price<=40)
go
8.查询出版社是‘北京邮电大学出版社’和‘清华大学出版社’的图书名称和出版社。
use "BookMIS"
select
BOOKS.BookID,Publisher
from BOOKS
where(BOOKS.Publisher='清华大学出版社'and Publisher='北京邮电大学出版社')
go
9.查询所有姓‘王’的作者的详细信息
pS:对于姓氏我们要用到通配符:
通配符【通配符的问题我会单独写一篇博客进行介绍】
%
替代一个或多个字符
_
仅替代一个字符
与通配符与之对应的是‘like
’而不是‘=
’
use "BookMIS"
select
*
from
AUTHORS
where(AUTHORS.AuthorName like '王%')
--like不能换成等号=,因为涉及到通配符的问题
go
我们把上面的题目换一下:
10.查询姓‘王’且全名为2个汉字的作者的详细信息。
use "BookMIS"
select
*
from
AUTHORS
where(AUTHORS.AuthorName like '王_')
--like不能换成等号=,因为涉及到通配符的问题
go
11.查询地址信息不为空的作者的姓名和地址。
use "bookMIS"
select
AUTHORS.AuthorName,AAddress
from AUTHORS
where (AAddress is not null)
go
12.查询出版社是‘高等教育出版社’且价格小于50的图书的书名
use "bookMIS"
select
BOOKS.BookName
from BOOKS
where (BOOKS.Publisher in ('高等教育出版社')and Price<=50)
go
/*--自己写的
use "bookMIS"
select
BOOKS.BookName
from BOOKS
where (BOOKS.Publisher = '高等教育出版社'and Price<=50)
go
这两个是有区别的,后边我会在研究一下。
*/
我们第一个介绍的是表的查询操作,在接下来的所有操作中,都是建立在查询操作上的。
将作者表中的列名分别改为‘编号’、‘姓名’、‘年龄’、‘电话’、‘地址’显示。
同样的分析方法:
首先锁定查找对象的属性:AuthorID
,AuthorName
,Age
,Telephone
,AADress
再锁定查找对象的位置:AUTHORS
进行的操作:修改---->as
use "BookMIS"
select
AUTHORS.AuthorID as 编号,AuthorName as 姓名,Age as 年龄,Telephone as 电话,AAddress as 地址
from BookMIS
go