SQL查询之基础(语法和概念)完整版

原创 2006年05月26日 21:18:00

注:下面的内容都是再SQLServer2000的查询分析器里面执行的,--是注释

大家可以把下面的内容保存为后缀名为sql的文本文件,然后在SQLServer2000的查询分析器里打开,

因为这篇文章主要说的是SQL的一些查询的语法和概念,所以有些查询可能一点现实意义都没有,只是为了说明查询的语法。至于有关一些数学基础可以看前两天的《数据库之关系代数(理论)》那篇文章,其它如果还想知道查询的过程中数据库到底是怎么操作的这类问题,大家还是参考参考别的书吧,等我研究下再贴出来,希望大家好好学习,天天向上,我也是,每天好好学习了!!

文件内容:


--显示所有列
--select * from Employees;

--按顺序显示某些列
--select EmployeeID,LastName,FirstName,BirthDate from Employees;

--指定列的别名(两种方式)
-- select EmployeeID as 员工编号,BirthDate as 生日 from Employees;
-- select 员工编号=EmployeeID,生日=BirthDate from Employees;

--限制返回的行数
-- select top 5* from Employees;
-- select top 5 percent* from Employees;
 
--选择不同的列
 --国家不同
-- select  distinct Country as 国家 from Employees;
 --国家和称呼至少一个不同
-- select  distinct Country as 国家,TitleOfCourtesy as 称呼 from Employees;

--对查询的结果排序
/*
 select EmployeeID as 员工编号, LastName+' '+FirstName as 员工姓名,BirthDate as 出生日期,City as 城市
   from Employees
   where City='London' order by BirthDate ;
 
 --对不同的列采用不同的排序
 select EmployeeID as 员工编号, LastName+' '+FirstName as 员工姓名,BirthDate as 出生日期,City as 城市
   from Employees
   where City='London' order by FirstName, BirthDate desc;
*/
--对查询的结果进行运算
--
-- use pubs;
-- select title as 书目,price as 单价,ytd_sales as 销售量,price*ytd_sales as 销售额 from titles;
--带有条件的查询
/*  select EmployeeID as 员工编号, LastName+' '+FirstName as 员工姓名,BirthDate as 出生日期,City as 城市
   from Employees
   where City='London' ;

 select EmployeeID as 员工编号, LastName+' '+FirstName as 员工姓名,BirthDate as 出生日期,City as 城市 ,Country as 国家
   from Employees
 where Country like 'US%'; 
 
 select EmployeeID as 员工编号, LastName+' '+FirstName as 员工姓名,BirthDate as 出生日期,City as 城市 ,Country as 国家
   from Employees
 where Country in ('USA','UK');
 
 --复杂的条件查询,注意逻辑关系,要加括号,计算机里面or的优先级比 and 高
 select EmployeeID as 员工编号, LastName+' '+FirstName as 员工姓名,PostalCode as 邮编,Country as 国家
   from Employees
 where
 (
 PostalCode='98033'
 or PostalCode='98122'
 or PostalCode='SW1 8JR'
 )
 and Country='USA';
 
*/

--使用内连接查询
--查询产品表和供应商表,得到公司和公司相应的产品;
-- use Northwind;
/* select p.SupplierID as 供应商编号,s.CompanyName as 公司名称,p.ProductName as 产品名称,p.UnitPrice as 价格
  from Products p, Suppliers s where p.SupplierID=s.SupplierID;
*/
--想要查询作者和作者写的书,发现两张表之间没有联系,但是表titleauthor连接了两张表,一般当两者之间关系是多对多时会采用第三张表,
/* use pubs;
 select a.au_lname+' '+a.au_fname as 作者,t.title as 书名 from authors a,titles t,titleauthor ta
 where a.au_id=ta.au_id and t.title_id=ta.title_id;
 
*/ 

--使用外连接
--左外连接,这里只介绍一下语法,其实下面的查询和上面的一样,因为Products表和Suppliers表的SupplierID是一一对应的,
/* use Northwind;
 select p.SupplierID as 供应商编号,s.CompanyName as 公司名称,p.ProductName as 产品名称,p.UnitPrice as 价格
 from Products p
 left outer join Suppliers s
 on p.SupplierID=s.SupplierID;
*/
 
--右外连接
/* use Northwind;
 select p.SupplierID as 供应商编号,s.CompanyName as 公司名称,p.ProductName as 产品名称,p.UnitPrice as 价格
 from Products p
 right outer join Suppliers s
 on p.SupplierID=s.SupplierID;
*/

--全外连接
/* use Northwind;
 select p.SupplierID as 供应商编号,s.CompanyName as 公司名称,p.ProductName as 产品名称,p.UnitPrice as 价格
 from Products p
 full outer join Suppliers s
 on p.SupplierID=s.SupplierID; 
*/ 
 

/*
联合查询
  UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联 合查询。
UNION的语法格式为: select_statement UNION [ALL] selectstatement [UNION [ALL] selectstatement][…n]
其中selectstatement为待联合的SELECT查询语句。 ALL选项表示将所有行合并到结果集合中。不指定该项时,
被联合查询结果集合中的重复行将只保留一行。
 注:由于没有合适的例子,所以就不举例了,下次有了再告诉大伙
*/
 
/*
交叉查询
交叉连接 交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,
返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数
*/

/*
自连接 
连接自身

*/

/*
子查询
其实子查询就是一次查询的结果作为下一次查询的输入
*/

 

相关文章推荐

完整版(JQuery语法)

jQuery 语法 您可以选取(查询,query) HTML 元素,并对它们执行“操作”(actions)。 jQuery 语法实例 $(this).hide() 演示 jQuery hide...

高级指针的概念和应用完整版(图文讲解)

一:数组指针和指针数组的理解: 1.首先我们从一个例子开始讲起 include int main() { int a[5][5]={0};//创建一个二维整型数组,并初始每个元素化为0; int(*...

探索ORACLE之ASM概念(完整版)

原文地址:http://www.jb51.net/article/43527.htm ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出来的一项新功能,这是Oracle自...

SQL不同服务器数据库之间的数据操作整理(完整版)

因为是转载文章 在此标明出处,以前有文章是转的没标明的请谅解,因为有些已经无法找到出处,或者与其它原因。 如有冒犯请联系本人,或删除,或标明出处。 因为好的文章,以前只想收藏,但连接有时候...

全国省市县sql(完整版)

 省 Insert into PROVINCE (PROVINCE_ID, NAME, SEQ) Values (4, '山西', 4); Insert into PROVI...

常用经典SQL语句大全完整版--详解+实例

下列语句部分是Mssql语句,不可以在access中使用。   SQL分类:   DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)   DML—数据操纵语言(SELEC...

SQL Server 2008 函数大全(完整版)

SQL Server 2008 函数大全(完整版) SQL2008 表达式:是常量、变量、列或函数等与运算符的任意组合。 1. 字符串函数 函数 名称 参数 示例 说明 ascii(字...

SQL Server 2008语句大全完整版

 --========================  --设置内存选项  --========================  --设置 min server memory 配置项 EX...

MyBatis动态SQL完整版

MyBatis 的一个强大的特性之一通常是它的动态 SQL 能力。如果你有使用 JDBC 或其他相似框架的经验,你就明白条件地串联 SQL 字符串在一起是多么的痛苦,确保不能忘了空格或在列表的最后省略...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL查询之基础(语法和概念)完整版
举报原因:
原因补充:

(最多只允许输入30个字)