• T-SQL


    .数据库的创建在开发中的步骤

    1.1收集信息

    1.2概念设计(E-R图)

    1.3详细设计(数据库模型图)

    1.4审核数据库(三大范式)

    2.1 E-R

    矩形:实体

    椭圆:属性

    菱形:关系

    3.1 映射关系

    一对一,一对多,多对一,多对多

    4.1 三大范式

    第一范式:每一列都要保证原子性,分的不能再分了

    第二范式:在满足1NF基础上,每一张表只能表述一件事(有主键)

    第三范式:在满足2NF基础上 ,确保除主键之外的列都必须和主键有直接的关系,而不是间接地关系

    .建库建表建约束

    2.1 建库

    建库:create database myschool;

    三种文件格式:主文件.mdf,次要文件 .ndf,日志文件.ldf

    create database myschool

    --主文件

    on [primary]

    (

    name='', --逻辑名称

    filename=‘。mdf,-- 文件路径

    size=10,--初始大小

    maxsize=100 ,--最大大小

    filegrowth=10 增长率 不能加百分号

    ),

    --次要文件

    (

    name='', --逻辑名称

    filename=.ndf,-- 文件路径

    size=10,--初始大小

    maxsize=100 ,--最大大小

    filegrowth=10 增长率 不能加百分号

    )

    on log

    (

    name='', --逻辑名称

    filename=.ldf,-- 文件路径

    size=10,--初始大小

    maxsize=100 ,--最大大小

    filegrowth=10 增长率 不能加百分号

    )

    给数据库添加文件

    alter database myschool

    add file

    --次要文件

    (

    name='', --逻辑名称

    filename=.ndf,-- 文件路径

    size=10,--初始大小

    maxsize=100 ,--最大大小

    filegrowth=10 增长率 不能加百分号

    )

    2.2 建表

    Create table 表名

    (

    数据类型 数据特性(null or not null

    )

    自动增长列 identity(1,1)

    比如

    Create table student

    ( id int identity(1,1)  not null

    )

    删除表 drop table 表名

    删除数据 delete 表名,truncate 表名

    2.3 键约束

    2.3.1 主键约束

    Alter table 表名

    Add constraint  pk_约束名  primary key  (列名)

    2.3.2 唯一约束

    Alter table 表名

    Add constraint  uq_约束名 unique (列名)

    2,3.3 检查约束

    Alter table 表名

    Add constraint ck_约束名 check (列名<=100

    2.3.4 默认约束

    Alter table 表名

    Add constraint df_约束名 default(‘默认值’) for 列名

    2.3.5 外键约束

    Alter table 外键表

    Add constraint fk_约束名 foreign key  列名 references 主键表(列名)

    2.3.6 删除约束

    Alter table 表名

    Drop constraint 约束名

    2.4建视图

    2.4.1 创建

    If exists (select * from sys.objects  where  name=’视图名’)

    Drop view 视图名

    Create view 视图名 as sql语句

    注意: 视图中不能单独的使用order by 必须与top 同时出现

    2.4.2  修改

    Alter view 视图名

    三.sql编程

    3.1 定义变量

    局部变量Declare @变量名 数据类型=

    全部变量 @@error 错误号,@@identity 获取最近一次的值 @@version版本号

    3.2 赋值

    3.2.1 set

    set @变量名=or(set @变量名=(子查询)) ,一次只能给一个变量赋值

    3,2,2 select

    Select @变量名 =值  ,select @变量名=字段,@变量名=字段  from 表,可以给多个变量赋值;当返回多个数据的时候取最后一个

     

    3.3 转换数据类型

    3.3.1 convert

    Convert (数据类型,变量)

    特殊的可以对datetime 类型的字段转换 比如convert(字段,102)

    3.3.2 Cast

    Cast(变量名 as 数据类型)

    3.4 if else

    If (条件)

    Begin

    ---sql

    End

    Else

    Begin

    --sql

    end

    3.5 while

    While(条件)

    Begin

    End

    3.6Case

    Case  when 条件 then 结果

    When 条件 then 结果

    Else

    End

    3.7 GO

    批处理,把多条sql打个包一起发送服务器执行,执行速度加快

    四:子查询

    select * from ( 子查询 )别名

    4.1 in

    Select * from 表名 where 列名 in(子查询)

    Select * from 表名 where 列名 in(‘’,’’,’’)

    4,2 not in

    Select * from 表名 where 列名 not in(子查询)

    Select * from 表名 where 列名 not in(‘’,’’,’’)

    4.3 exists and not exists

    exists 用法1

    if exists (select * from table ===) 判断是否能查出数据,如果能则返回true,否则返回false

    exists 用法2

    select * from student where exists(select * from grade where grade.gradeid=student.gradeid)

    注意:exists 用法2in 用法2效率高

    .存储过程

    5.1 创建一个无参的存储过程

    Create  proc 存储过程名称

    As

    Sql 语句

    Go

    5.2 创建一个有输入参数的存储过程

    Creta proc 存储过程名称

    @变量名 数据类型

    As

    Sql 语句

    Go

    5.3 创建一个有默认值的存储过程

    Creta proc 存储过程名称

    @变量名 数据类型=’默认值’

    As

    Sql 语句

    Go

    5.4 创建一个有输入有输出的存储过程

    Create proc 存储过程名

    @输入变量 数据类型,

    @输出变量 数据类型 output

    As

    Sql语句

    Go

    5.5 调用存储过程

    Exec 存储过程名称

    Execute 存储过程名称

    经验:当遇到go的时候 exec 可以省略

    5.6 事务

    开启事务 begin transaction

    提交事务 commit transaction

    事务回滚 rollback transaction

    .索引

    6.1 唯一索引

    不能有相同的两行数据,当创建一个唯一约束的时候系统自动分配一个唯一索引

    6.2 主键索引

    特殊的唯一索引,当创建一个主键约束的时候,系统自动分配一个聚集的主键索引

    注意:如果不想让主键占用聚集索引,可以在创建的时候,把非聚集表现出来

    6.3 聚集索引

    根据系统算法排列的,一张表只能有一个聚集索引(类似与拼音查字典)

    6.4 非聚集索引

    根据数据逻辑排列,一张表可以有多个非聚集索引(类似与偏旁部首和笔画)

    6.5 全文索引

    针对于大型的数据文本类型比如(long,text,key查询;

    其它索引都是匹配查询

    6.6 复合索引

    说明:可以给多列创建一个索引

    6.7 创建索引

    Create [unique][nonclustered][clustered]

    Index ix_索引名称 on table (列名,列名..)

    With fillfactor=20 (不能加百分号)

    6.9 删除索引

    Drop index table.索引名称

    6.10 指定索引查询

    Select * from table with(index=索引名称) where

  • 相关阅读:
    被隐藏的文件更改为可见
    Selenium WebDriver多层表单切换
    for循环
    Java课程设计二次大作业
    Java-DAO模式代码阅读及应用
    编辑器、编译器、文件、IDE等常见概念辨析
    树、二叉树和查找等知识点的总结
    二叉树的实现
    二叉树顺序结构和链式结构的相互转换
    使用k-近邻算法改进约会网站的配对效果
  • 原文地址:https://www.cnblogs.com/Sora-L/p/6915100.html
Copyright © 2020-2023  润新知