SQL语言基础(1)
对象命名的约定:数据库名.所有者名.对象名
前两者可省略,默认值数据库是当前数据库,所有者是dbo
别名:数据库名称 as 数据库表名 主要是增加select语句的可读性,如果已经为数据表制定了别名,则
在相应的SQL语句中,对该数据表的所有显示引用都要使用别名,而不能使用数据表名。
select语句是数据检索中最频繁的活动,再检索前要先知道存储在哪里,select语句可以由多个
查询子语句组成,而且可以嵌套。
select语句可以检索:全部行列,全部行和特定列,限定范围的行,与一组值匹配的行,根据未知值检索
的行,隐藏有重复值的行,根据所个搜索条件检索的行。
基本结构:SELECT [ALL|DISTINCT]select_list
[INTO [new_table_name]]
from{table_name|view_name,...}
[WHERE search_conditons]
[GROUP BY group_by_list]
[HAVING search_conditions]
[ORDER BY order_list [asc|desc]]
WHERE和HAVING的区别是WHERE是对整个表进行选择,而HAVING则是对分组当中的元素进行选择。
select子句
SELECT [ALL|DISTINCT] [TOP N] select_list
select_list既可表示字段名称,也可以是其他表达式。
all指定在结果集中可以显示重复行,distinct不显示相同行,TOP n [PERCENT]指定只从查询结果集中输出前 n 行。n 是介于 0 和 4294967295 之间的整数。如果还指定了 PERCENT,则只从结果集中输出前百分之 n 行。当指定时带 PERCENT 时,n 必须是介于 0 和 100 之间的整数。
例子:
USE NORTHWIND
SELECT PRODUCTID,ORDERID,UnitPrice*Quantity AS SUM
INTO KKKKKK
from [Order Details]
WHERE UnitPrice*Quantity>10000;
AS 子句可用来更改结果集列名或为导出列指定名称。如此例,sum更清楚所表示的内容,否则,这个算术
式会由系统指定名称。所以在该语句当中where后面的UnitPrice*Quantity不能写成sum,因为sum是结果
集当中使用的名称,在搜索条件中还没有被指定。
而且这个例子中的表 order details中包含关键字order,所以不能直接用,要加[]。
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
Union All/Union/Intersect操作
适用场景:对两个集合的处理,例如追加、合并、取相同项、相交项等等。
Concat(连接)
说明:连接不同的集合,不会自动过滤相同项;延迟。
1.简单形式:
var q = (
from c in db.Customers
select c.Phone
).Concat(
from c in db.Customers
......
eclipse 关联 sql server 的JDBC问题
编程运行后提示:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
上网查了,有的说在环境变量里的classpath添加 JDBC里的3个jar文件就可以,但是使用后还是不行。
后来才知道解决方法:
包资源管理器-->包名右键"构建路径"--> ......
MS SQL SERVER数据库备份BAK还原数据库
由于数据误操作,想恢复一下操作前的数据。于是新建了一个空数据库。使用原来的备份文件 bak。来恢复成一个新的数据库。这样就可以手动恢复数据了。
但是在恢复新建数据库的时候总是不成功,提示错误入下:
The backup set holds a backup of a database other than the existing ......
修改数据库对象所有人
今天帮朋友传数据库报错,提示 "
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]登陆 xxx 失败",正好前段时间碰到同样问题,尝试删除用户 xxx , 又报错,提示" 用户拥有对象,所以无法删除". 查看数据库,发现该用户拥有很多存储过程,一个一个改太麻烦,从网上找到如下方法,恰好解决此问题:
CR ......