博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数据库知识点滴(1)---做项目后的总结

Posted on 2009-09-14 09:32  一刻  阅读(205)  评论(0)    收藏  举报

感觉比较喜欢使用查询分析器,所以就必须记得代码,因此把常用的代码列出来,万一忘记了随时过来查,时间久了难免生疏。
1.数据库中使用默认,和标识
  例如:create table Product
        (id  int  not null  identity(0,1),--这里我们使用了标识,种子为0,增量为1
         protime  smalldatetime  not null  default  gettime()   --这里就是使用系统函数gettime()把插入数据时候的时间给它,当然如果这里默认值是常量或者是字定义  的函数,直接替换gettime()的位置就可以了)
2.创建默认对象,把默认绑定到某一列上,系统函数convert
  例如:create default PD_protime  
       as convert(varchar(50),gettime(),102) --建立一个默认对象
       exec sp_bindefault PD_protime,'Product.protime'  --执行存储过程,把默认绑定到表Product的protime上面
3.创建执行函数以及删除函数,以及replace用法
  例如:--记得这个是我利用当前日期生成的一个定单的函数
       (1)create function Getorder()     --定义函数名
         returns varchar(50)            --定义返回值类型,注意要写类型
         as
         begin                          --以下为函数体

         declare @order varchar(50)      --声明一个变量
         set @order=(CONVERT (varchar(50), getdate (),13))
         set @order=replace(@order,':','')
         set @order=replace(@order,' ','')
         return @order
         end                             --这个函数是没有输入参数的函数
      (2)select dbo.Getorder() as ordernum      --这里是执行这个函数,并且赋予别名ordernum这里也必须要有dbo
      (3)drop function dbo.Getorder()              --这里是删除 函数  必须要有dbo.  注意这里不要()
4.往表中增加列,并且把自定义的函数设置为其默认值
  例如:alter table Product
       add ordernum varchar(25) not null default dbo.Getorde()    --这里ordernum为列名,dbo.Getorde()为我们自定义的 函数
5.研究了一下主键外键的关系,困扰已久的问题终于解决了.主表修改或者了主键,那么从表的外键对应的记录值跟着修改或者删除
  例如:这里我们建立表table1字段为id(本表的主键) username(外键) sex
       再建立一个表table2 字段为username(主键)  adrress

       这里table1是从表,  table2是主表,在建立外键关系之后,如果update和delete都为无操作的情况下,不允许修改和删除主表       的username字段,但是在从表table1里  面的username字段的值一定要在table2中找到,否则插入出错,但是如果把它设置为'级       联'的话,那么只要修改或者删除了主表的username字段的记录,那么table1的对应的  记录跟着修改或者删除
6.使用命令建立主键和外键的关系(用命令修改级联关系,修改表建立外键?)
  use shoeshop
  go
  create table UserMessage
  (id int not null identity(0,1) primary Key ,
  umessage text not null,
  phone varchar(50) ,
  email varchar(50)
  )
 go
 create table ManMessage
 (id int not null identity(0,1) primary key,
 mmessage text not null,
 uid int not null foreign key references UserMessage(id) on delete cascade
 )
7. 使用存储过程,读取存储过程返回参数
   declare @messag nvarchar(50)
    --这里如果存在的话在结果那里显示查询结果,在消息那里显示@messag,不存在也在消息那里显示@messag
   exec user_login   @username='yke',@password='6694030',@message=@messag output
   print @messag
8.查询卖出量最多的商品的sql语句
  create procedure Pro_topsale
  as
  select top 10 * from Product order by salenum

9.复制表到另外的表,包括结构和内容,表原来不存在(fivesixsevenresult新表)

   select *  into fivesixsevenresult from arrangecourseresult