zoukankan      html  css  js  c++  java
  • SQL Server 笔记

    第一章数据库的基本操作:
    
    1>创建数据库:
    
    create database my_db(逻辑名称)
    
    on primary
    
    (
    
      name='my_db.mdf',(物理名称)
    
      filename='F:exercisemy_db.mdf',
    
      size=5mb,
    
      maxsize=50mb,
    
      filegrowth=10%
    
    )
    
    2> 改变数据库的容量:
    
    alter database my_db
    
    modify file
    
    (
    
      name='my_db',
    
      size=15mb
    
     )
    
    3>收缩数据库:
    
           Dbcc shrinkdatabase(‘my_db’,1)
    
    1为收缩比
    
    4>更改数据库名称:
    
           exec sp_renamedb 'my_db' ,'my_db1'
    
    5>删除数据库:
    
        drop database my_db1
    
    第二章表的基本操作:
    
    1>创建表:
    
    Create table my_ta
    
    (
    
        学号 int primary key identity,
    
        名称 char(6) not null,
    
        专业方向 varchar(10) not null,
    
        系部代码 char(2) not null,
    
        备注 varchar(50)
    
    )
    
    2>用存储过程查看表的信息:
    
    Exec sp_help my_ta
    
    3>修改表的列名:
    
           exec sp_rename 'my_ta.[my_ta.其他]','其他'
    
    4>增加表的列:
    
           alter table my_ta add home varchar(100) not null
    
    5>修改表的数据类型:
    
        alter table my_ta alter column home varchar(80)
    
    6>删除表的列:
    
        alter table my_ta drop column home
    
    7>删除表中的所有数据:
    
           Truncate table my_ta
    
    8>删除表:
    
             Drop table my_ta
    
    9>将一个表中数据查出插入到另外一个表中:
    
    select * into t11 from t1
    
    第三章数据的完整性:
    
    1>主键和外键,创建主键和外键:
    
    alter table t1
    
     add constraint pk
    
     primary key clustered(name)
    
     
    
     alter table t2
    
     add constraint fk
    
     foreign key(name)
    
     references t1(name)
    
    2>创建唯一约束:
    
    alter table t1
    
    add constraint uq
    
    unique nonclustered (name)
    
    3>创建check约束:
    
    alter table t1
    
    add constraint ch
    
    check(age>10 and age<100)
    
    4>默认约束 :
    
    alter table t1
    
    add constraint de
    
    default '这是默认可以不填' for 其他
    
    5>删除约束:
    
    Alter table t1 drop constraint de
    
    6>创建规则:
    
    创建规则:
    
    create rule ru
    
    as
    
    @a>300 and @a<600
    
    绑定规则:
    
    execute sp_bindrule 'ru','t1.age'
    
    解除规则绑定 :
    
    execute sp_unbindrule 't1.age'
    
    删除规则:
    
    Drop rule ru
    
    7>创建默认:
    
    Create default def
    
    As ‘男’
    
    绑定默认:
    
    execute sp_bindefault 'def' ,'t1.gendar'
    
    解除默认的绑定
    
    Execute sp_unbindefault 'def' ,'t1.gendar'
    
    删除绑定:
    
    drop default def 必须先解除绑定才能删除 
    
     
    
    第四章 索引
    
    1>创建索引
    
    --create [unique][clustered][nonclustered] index 索引名
    
    --on 表名(列名)
    
    create clustered index ind
    
    on t1(name)
    
    2>查看索引信息:
    
    exec sp_helpindex t1
    
    3>删除索引
    
    drop index t1.ind
    
    第五章 视图
    
    1>创建视图
    
    create view v1 
    
    with[encryption][schemabinding]可选
    
    as
    
    select 学生.学号,学生.姓名,班级.班级名称,专业.专业名称,系部.系部名称
    
    from 学生
    
    join 班级 on 学生.班级代码=班级.班级代码
    
    join 专业 on 班级.专业代码=专业.专业代码
    
    join 系部 on 专业.系部代码=系部.系部代码
    
     
    
    create view v1 
    
    with encryption 加密视图
    
    as
    
    select name ,age t1
    
     
    
    create view v1 
    
    with schemabinding 架构绑定 可选
    
    as
    
    select name ,age from dbo.t1
    
    2>可以在视图上进行增删改操作
    
    3>查看视图的信息:
    
    Exec sp_helptext 视图名
    
    4>删除视图
    
    Drop view 视图名
    
    第五章 存储过程
    
    1>创建存储过程
    
    create proc p 
    
    as
    
    select 学生.学号,学生.姓名,班级.班级名称,专业.专业名称,系部.系部名称
    
    from 学生
    
    join 班级 on 学生.班级代码=班级.班级代码
    
    join 专业 on 班级.专业代码=专业.专业代码
    
    join 系部 on 专业.系部代码=系部.系部代码
    
     
    
     
    
    create proc p3
    
    @sex varchar(10),
    
    @id varchar(10)
    
    as
    
    select 学生.学号,学生.姓名,班级.班级名称,专业.专业名称,系部.系部名称
    
    from 学生
    
    join 班级 on 学生.班级代码=班级.班级代码 and 学生.性别=@sex
    
    join 专业 on 班级.专业代码=专业.专业代码
    
    join 系部 on 专业.系部代码=系部.系部代码 and 系部.系部代码=@id
    
    2>执行存储过程
    
    Execute p
    
    execute p3 '','01'
    
    3>变量
    
    create proc p4
    
    @name varchar(10),
    
    @getnum varchar(10) output
    
    as
    
    select @getnum=学号 from 学生 where 姓名=@name
    
     
    
    execute p4  '刘德华' ,''在这里会输出参数
    
    4>查看存储过程的信息
    
    execute sp_helptext p4
    
    execute sp_depends p4
    
    execute sp_help p4
    
    5>删除存储过程
    
    Drop procedure p4
    
    第六章触发器
    
    1>创建触发器
    
    create trigger myinsert
    
    on 产品
    
    for insert
    
    as
    
    declare @a char(10)
    
    select @a=产品编号 from  inserted
    
    insert into 产品销售 values(@a,0)
    
     
    
    insert into 产品 values(007,'萝卜')
    
    当我们执行在产品中插入数据的时候,那会就会级联得对产品销售中插入数据,这是同时的。
    
     
    
     
    
    create trigger tr1
    
    on  产品
    
    for delete
    
    as
    
    declare @产品编号 varchar(10)
    
    select @产品编号=产品编号 from deleted
    
    delete from 产品销售 where 产品编号=@产品编号
    
    2>查看触发器
    
    execute sp_helptrigger 产品
    
    3>删除触发器
    
    delete from 产品 where 产品编号='003'
    
    第七章函数
    
    1> 1、聚合函数
    
        AVG ()--平均值
    
        COUNT ()--返回行中项目的数量 
    
        MAX ()--最大值
    
        MIN ()--最小值
    
        SUM ()--求和 
    
    2、数学函数
    
        ABS (x)--返回绝对值
    
        CEILING(x)--返回大于或等于所给数字的最小整数
    
        PI ()--pi值
    
        POWER (x,y)--返回x的y次方
    
        RAND ()--返回~1之间的随机数 
    
    3、 配置函数
    
        SELECT @@VERSION --获取当前数据库版本
    
        SELECT @@LANGUAGE --当前语言
    
    4、时间函数
    
    select getdate()   --当前时间
    
    select day(getdate())   --取出天
    
    select month(getdate())   --取出月
    
    select year(getdate())   --取出年
    
    select dateadd(d,3,getdate()) as wawa_dateadd --加三天,       ‘d’表示天,‘m’表示月,‘yy’表示年
    
    select datename(d,'2010-07-15')   --取出时间的某一部分
    
    Year Yy yyyy 年 1753 ~ 9999 
    
    Quarter Qq q 季 1 ~ 4 
    
    Month Mm m 月1 ~ 12 
    
    Day of year Dy y 一年的日数,一年中的第几日 1-366 
    
    Day Dd d 日,1-31 
    
    Weekday Dw w 一周的日数,一周中的第几日 1-7 
    
    Week Wk ww 周,一年中的第几周 0 ~ 51 
    
    Hour Hh h 时0 ~ 23 
    
    Minute Mi n 分钟0 ~ 59 
    
    Second Ss s 秒 0 ~ 59 
    
    Millisecond Ms - 毫秒 0 ~ 999 
    
    5、字符串函数
    
    Select LEN('str1111')--返回字符串的字符个数
    
    Select lower('ABC'),lower('Abc'),upper('Abc'),upper('abc') --转换大小写
    
    select ltrim('           左边没有空格')   --去空格
    
    select rtrim('右边没有空格    ') --去空格
    
    select ltrim(rtrim('    左右都没有空格    ')) --去空格
    
    select left('sql server',3),right('sql server',6) --取左或者取右
    
    Select replace('原字符串','','这是一个')--字符串替换
    
    Select replicate('go',5)--指定的次数重复字符
    
    select reverse('这是字符串') --将定字符串返序排列
    
    select substring('这是一个原字符串',2,3)--指定截取指字字符串 
    
    6、排名函数
    
    rank()返回结果集的分区内每行的排名 
    
    rank() over (order by 列名)
    
    select 姓名,rank() over(order by(高考分数) desc) 名次,高考分数 from 学生
    
    --------------------------------------------------------------------------------------------
    
    SELECT TOP(2) majoy,COUNT(*) AS 人数 FROM stuclass GROUP BY majoy ORDER BY 人数  ASC
  • 相关阅读:
    10 道选择题,测试你是不是死忠谷粉
    JBoss Seam 3.0.0.Beta2 发布
    送给十二星座的名言警句
    Chinasb & B3log!
    GAE 博客——B3log Solo 0.2.5 正式版发布了!
    明天发布 B3log Solo 0.2.5
    JBoss Seam 3.0.0.Beta2 发布
    10 道选择题,测试你是不是死忠谷粉
    Python数据分析工具包:Pandas
    Programming Computer Vision with Python: Tools and algorithms for analyzing images
  • 原文地址:https://www.cnblogs.com/yingsi/p/3770078.html
Copyright © 2011-2022 走看看