• 优化MySchool数据库设计


    第一章 数据库的设计

    1.E-R图中:

    矩形:实体

    椭圆:属性

    菱形:关系

    直线:连接实体,属性和关系

    2.映射基数

    一对多

    多对一

    多对多

    3.范式:

    第一范式:确保每列的原子性

    第二范式:确保表中的每列都和主键相关

    第三范式:确保表中的每列都和主键有直接关系,而不是间接关系

    第二章 数据库的实现

    1.创建数据库

    use master

    go

    create database 数据库名

    on

    (

    )

    log on

    (

    )

    go

    2.删除数据库

    drop database 数据库名

    3.创建表

    use 数据库名

    go

    create table 表名

    (

    列名 数据类型,

    列名 数据类型,

    ..........

    )

    go

    4.添加约束

    alter table 表名

    add constraint 约束名 约束类型 

    约束语句

    第三章 SQL编程

    1.局部变量

    declare 变量名称 变量类型

    局部变量以@开头

    2.全局变量

    @@error 最后一个错误的错误号

    全局变量以@@开头

    3.print 输出变量或字符串

    4.cast和convert的数据类型转换

    case( 变量 as 数据类型 )

    convert( 数据类型,变量)

    cast 和 convert不同:convert可以时间格式时间改变

    5.if-else

    if(条件) 条件语句

    begin

      代码块

    end

    else

    begin

      代码块

    end

    6.while循环语句

    while(条件)

    begin

      代码块

    end

    7.case多分支语句

    case 

      when 条件1 then 代码块

      when 条件2 then 代码块

      [else其他结果]

    end

    第四章 高级查询

    1.简单子查询和not in 、in之间的区别

    in(not in)返回的不止一条数据

    简单子查询返回的则必须是一条数据

    2.分页查询

    select top 2 id from A where not in(select top 4 id from B)

    3.相关子查询和非相关子查询的不同:

    相关子查询的内部查询不止执行一次,而且执行一次便把结果返回给外部查询

    第六章 事务、视图和索引

    1.执行事务SQL语句

    begin tran

    开始事务

    rollback tran 

    回滚事务

    commit tran

    提交事务

    2.事务分类:

    a.显式事务

    b.隐式事务

    c.自动提交事务

    3.视图创建

    create view 视图名称

    as

    查询语句

    4.索引的分类:

    唯一索引、主键索引、聚集索引、非聚集索引、复合索引、全文索引

    5.创建索引

    create 索引类型 index 索引名 on 表名(列名,[列名])

    [with fillfactor=x]

    x为0~100

    表示为百分之几

    第七章 存储过程

    1.存储过程的优点

    模块化程序设计、执行速度快,效率快、减少网络流量、具有良好的安全性

    2.系统存储过程为sp_开头,扩展存储过程为xp_开头,自定义存储过程为usp_开头

    3.创建自定义存储过程

    create proc usp_

    @参数 参数类型,

    ..........

    as

    SQL语句

    4.想要从存储过程输出得到的值,则在参数类型加个output即可

    create proc usp_

    @参数 参数类型 output,

    ..........

    as

    declare @a 参数类型

    exec usp_ @a output

    print @a

    便可以得到存储过程中的值

  • 相关阅读:
    maven
    sublime text
    ios category
    python
    activiti
    出版社
    gradle
    selenium
    spring
    Ansible状态管理
  • 原文地址:https://www.cnblogs.com/wyd12138/p/5789014.html
Copyright © 2020-2023  润新知