superhjtc

白开水警长的博客
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数据库学习笔记(1)

Posted on 2007-06-30 21:15  白开水警长  阅读(116)  评论(0)    收藏  举报

最近不得不学习sql server编程了,发现不会存储过程实在是很吃亏的.特别是在编写比较高性能的数据访问代码时更是力不从心.在这里记录一下学习笔记方便以后查阅.
下面是书本里搜集来的比较典型的sql语句.
 

从数据库表中查询出记录并插入到另一个表中
将表table2的前5行插入到表table1中.
Insert top 5 into table1
Select column1, column2
From table2

将表table1的column1, column2列插入到表table2的column1, column2列中,且table1的column3的值固定为’ok’
Insert table1(column1, column2, column3)
Select column1, column2, ‘ok’
From table2

将存储过程xxx的结果插入到table1中
Insert table1(column1, column2)
Exec xxx


引用其它表里的字段值来更新记录
将订单表中前10%记录的订单产品为’牛奶’的单价改为与’产品’表中’牛奶’的单价一致
Update top 10 percent order
Set price = product.price
From product
Where order.productId = product.productId and product.productName = ‘牛奶’

引用其它表里的字段来删除表里的记录
删除雇员’王五’的所有订单
Delete order
From employee
Where order.employeeId = employee.employeeId and employee.name = ‘王五’

为查询添加计算列
Select *, price * 0.5 as newPrice
From order

Join…on…:join的作用是将两个或两个以上的记录横向连接起来,on的作用是设置查询条件.

Join:只显示符合条件的记录
Left join:显示左边表中的所有记录以及右边表中的符合条件的记录
Right join: 显示右边表中的所有记录以及左边表中的符合条件的记录
Full join:显示所有表的记录,包括符合条件和不符合条件的记录
Cross join:将每一个表中的每一条记录和另一个表中的每一条记录搭配成新的记录.相当于不用on设置条件的join.

Join 自己
查看雇员及其领导的名称
Select e.name , boss.name
From employee as e left join employee as boss
On e.bossId = boss.employeeId