zoukankan      html  css  js  c++  java
  • SqlServer索引

    ------------索引------------------------
    --请大家回顾现实生活中关于索引的例子:使用新华字典查汉字


    --索引的分类:主键索引、聚集索引、非聚集索引、唯一索引

    --主键索引:当我们为数据库表创建主键的同时,主键索引就一并创建了
    --主键索引默认就是聚集索引。我们可以修改主键索引是否是聚集的


    --聚集索引
    --聚集索引为数据记录的物理存在顺序制定了标准
    --聚集索引在每张表当中只能有1个,所以它很珍贵,要'省着用'

    insert into tblstudent
    (chvStudentName,dtmBirthday,chvCeilPhone)
    values('wangwu', '1990-9-9', '13666666661')
    select * from tblstudent;

    create table tblTeacher
    (
      intTeacherId int not null,
      chvTeacherName nvarchar(30),
      dtmBirthday datetime not null
    )

    insert into tblTeacher values(1, 'zhangsan', '1980-8-8');
    insert into tblTeacher values(3, 'lisi', '1981-8-8');
    insert into tblTeacher values(5, 'wangwu', '1982-8-8');
    insert into tblTeacher values(2, 'zhaoliu', '1983-8-8');
    insert into tblTeacher values(4, 'shagnqi', '1984-8-8');

    select * from tblTeacher

    --为教师信息表创建聚集索引,以保证每个学生的存在顺利按照id顺序排列
    create clustered index ix_Teacher_TeacherId
    on tblteacher(intteacherid)
    go

    select * from tblTeacher
    --创建非聚集索引
    create nonclustered index ix_Teacher_TeacherName
    on tblteacher(chvTeacherName)
    go

    --创建唯一索引
    create unique index ix_Student_CeilPhone
    on TblStudent(chvCeilPhone)

    go

    --唯一索引和唯一约束是不是一样的
    --不一样

    --唯一索引可以创建在多个字段上面


    --写一段T-sql脚本,实现向TblCardInfo中新增100000条记录
    --函数介绍:
    --Replicate(被重复的字符, 重复的次数):将指定的字符重复指定的次数
    --RAND():生成一个介于0~1的随机浮点数 0.12587   0.36598
    --floor(浮点数):将一个浮点数转换为整数,12.1->12   12.7->12
    declare @name nvarchar(30), @balance money, @i int;
    select @i = 1;
    while(@i<=100000)
    begin
      --name的格式为:zx000000001
      set @name = CONVERT(nvarchar(10), @i);
      set @name = 'zx' + Replicate('0', 8 - LEN(@name)) + @name;
      select @balance = floor(RAND()*100)
      insert into TblCardInfo
      (chvUserName,chvPassword,mnyBalance,dtmRegisterTime)
      values
      (@name, '123456', @balance, GETDATE());
      set @i=@i+1;
    end

    --计算查询会员名称为zx00085366的会员卡信息(创建索引前)
    declare @time datetime, @millsec int;
    --获取执行前的系统时间
    set @time = GETDATE();
    select * from TblCardInfo where chvUserName='zx00085366';
    --获取执行的毫秒数
    set @millsec = DATEDIFF(ms, @time, getdate());
    select @millsec;

    --为会员名称字段创建非聚集索引
    create nonclustered index ix_cardInfo_username
    on tblcardinfo(chvUserName)
    go

    --计算查询会员名称为zx00085366的会员卡信息(创建索引前)
    declare @time datetime, @millsec int;
    set @time = GETDATE();
    select * from TblCardInfo where chvUserName='zx00085366';
    set @millsec = DATEDIFF(ms, @time, getdate());
    select @millsec;


     

  • 相关阅读:
    股指期货高频数据机器学习预测
    如何使用TradingView(TV)回测数字货币交易策略
    使用EXCEL计算并绘制MACD指标
    使用EXCEL计算并绘制EMA指标
    使用EXCEL计算并绘制MFI指标
    使用EXCEL计算并绘制KDJ指标
    使用EXCEL计算并绘制OBV指标
    如何使用Excel绘制砖型图Renko Charts
    简约主义的市场分析图表--砖型图Renko Charts
    教你一步一步使用Excel获取API接口的金融数据
  • 原文地址:https://www.cnblogs.com/changjiang/p/2605295.html
Copyright © 2011-2022 走看看