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
  • 相关阅读:
    实用机器学习 跟李沐学AI
    Explicitly drop temp table or let SQL Server handle it
    dotnettransformxdt and FatAntelope
    QQ拼音输入法 禁用模糊音
    (技术八卦)Java VS RoR
    Ruby on rails开发从头来(windows)(七)创建在线购物页面
    Ruby on rails开发从头来(windows)(十三)订单(Order)
    Ruby on rails开发从头来(windows)(十一)订单(Order)
    新员工自缢身亡,华为又站到了风口浪尖
    死亡汽油弹(Napalm Death)乐队的视频和来中国演出的消息
  • 原文地址:https://www.cnblogs.com/yingsi/p/3770078.html
Copyright © 2011-2022 走看看