zoukankan      html  css  js  c++  java
  • sql

                                    第一章数据库的设计
        
     
        x-y数据的几种关系
              有四种方式:
           一对一:假设每一辆个停一个车位,每一辆车停一个车位    1:1
     
               一对多:x中的一个实体y中的任意数量就是说一个客房可以住多个客人就是一对多   1:N
     
               多对一:客房可以住多个客人就是一对多反过来说就是客房实体之间就是多对一关系   N:1
     
           多对多:图书可以借给多个读者,读者可以借阅多本书,图书和读者就是多对多的关系    M:N
     
     
        1.第一范式:的目标是确保每列的原子性,如果每列或者多个属性值都是不可再分的最小值
            数据单元  满足第一范式
     
     
             2.第二范式
         第二范式(2NF)在第一范式的基础跟进一步其目标是确保中的每列都和主键相关如果满足
        第一范式并且除了主键以外的其他都依赖该主键,者满足第二范式
     
     
        3.第三范式
        第三范式(3NF)在第二范式更进一步 如果满足主键 的列与列之间的相互依赖则满足第三范式
     
        E-R图就是关系图  有属性值  有实体  有连接线  用形状描述的图行叫E-R图
        设计E-R图的作用就是可以看清楚图行中的系统需要什么样的属性  需要什么要的实体和连接什么样的
        实体相连和关系位置一眼看清
     
        设计数据库的步骤:
        1.信息重复    2.更新异常     3.插入异常   4.删除异常   
     
     
             绘图的进本操作  
                 属性   表示椭圆        有联系表示菱形    实体是指 一种一行特定的数据,但是我们开发时,也常常把一个表称为一个实体  表示一个  矩形 
     
     
           数据的重复被称为冗余  pk 表示主键        标识就是设置主键
     
           E-R视图就是 绘图        visio2007绘图工具     在创建数据库的时候我们要经过绘图 绘图可以让我们的思路更加清晰 让我们的效率更加有所提高
     
            实体: 可以这么理解就是一个孩子叫宝宝 他是人  就是一个实体
            属性: 属性就是一个游戏中有角色  角色有武器  和装备  和名字  就是属性
            联系: 可以这么理解一个男孩子和女孩子是情侣关系就是联系
     
     
     
                              第二章  数据库的实现
     
        INSERT [INTO] 表名 {列名1,列名2}  
        select   '张可',7,1  UNION
        select   dasd'   4,0  UNION
        select   'gds'.   5,0
     
      删除表中数据
       truncate table PurchasepaymentItem
     
        insert  表名  vaLues{值一,值二.....}
        其中  INTO  可选  ' '   union  
     
        修改数据 
        update  表名   set 列=更新值   where (更新条件)
     
        update     表名     set StudentName='葛天中' where   StudentName='王小毛'
     
        查询数据 SELECT * FROM  表名   查询表所以列  *
     
        单条插入
        insert into 表名(字段1,字段2……) values (内容1,内容2……);
        
        SELECT 列名1,列名2....FROM 表名 where [条件]  ORDER  BY  表名   按升序排列
     
                like  模糊查询
     
       --使用like  进行模糊查询
     
                select * from Student where StudentName like '%木%'
     
        删除语句
        DELETE FROM  表名  WHERE 条件 +id+
        delete 表名 where 条件  列 =什么?
     
        主数据文件   *.mdf
        次数据库文件  *.ndf
         日志文件  *.ldf
     
     
        创建数据库  基本步骤
        CRATE  DATABASE 数据库名 
     
            ON[PRIMARY]--可以省略
            {
     
            <数据库参数> [,....n] [<文件组参数>]
            NAME='MySchool_data',  文件组名
            FILENAME='DprojectMySchool_data.mdf', 储存IP地址
            SIZE=5MB, 初始化的文件大小
            MAXSIZE=100MB, 最大值为100
            FILEGROWTH=15% 文件的增长率
     
            }
     
              LOG ON
            {
            (<日志文件参数>[.....n])        
            日志文件的具体描述,各参数含义同上
            NAME='MySchool_log',  文件名
            FILENAME='D:projectMySchool_log.ldf', 储存的Ip地址    
            SIZE=2MB,初始化的大小
            FILEGROWTH=1MB  增长的量
     
     
            }
     
     
            ((NAME=逻辑文件名))
            FILENAME=物理文件名
            [,SIZE=大小]
            [,MAXSIZE={最大容量|UNLIMITED}]
            [,FILEGROWTH=增长量])[.....n]
     
        PRIMARY:选择项目是一个关键字,指定主文件组中的文件
        LOG ON:指明事物日志文件的明确定义
        NAME 指定数据库的逻辑名称,这是在sqlServer中使用的名称,是数据库在sqlServer中的标识符
        FILENAME:指定数据库所在文件名称和路径,改操作系统文件名和NAME的逻辑名称一一对应 
        size:指定数据库的初始化容量大小
        MAXIZE:指定操作系统文件可以增长到的最大值
     
     
            文件日志有分号隔开()   
     
        删除数据库 的基本语法  DROP database 数据库名
        删除表  的基本语法  DROP  table 表名
        整型: int  smallint  tinyint  
        浮点型 feal 近似值类型  float 近似数值类型  deimal固定精度和范围是小数点左右
        字符型:varchar text char  
        带n的表示unicode的字符编号  带var表示长度可变  nvarchar   varchar  的区别
        nvarchar 的固定长度是 unicode 的字符编码级   长度不可变是固定值    可以最大值8000个字符
        varchar 可以表长度 长度  不是unicode的字符编码级  可与最大4000个字符 
     
                                约束
        主键约束(primary  key   constraint) 要求主键列的数据唯一  并且不允许为空  如学号能唯一确定一名学生
        非空约束(Not  Null) 要求列不能存在空值,如学生的姓名不能为空
        检查约束 (Check Constraint)要求某列的取值范围限制,格式限制等 如有关年龄的约束
        唯一约束  (Unique Constraint)要求该列的值必须唯一 允许为空但是能出现一个空值
        默认约束  (Default Constraint)某列的默认值,如男性学生较多该性别默认为男"男",
        外键约束  (Foreign  Key  constraint)用于在两表之间建立关系 需要指定引用主键表的那一列
     
        --添加主键约束将 (Student 作为主键)
       ALTER  TABLE Student
       ADD  constraint  pk_StudentNo  primary  key  (StudentNo)
     
      --添加唯一约束  (身份证号唯一,因为每个人的身份号全国唯一的)
     AlTer  Table  student
     ADD  constraint  UQ_IdentitCard  uNIQUE    (identitCard)
     
      --添加默认设置(如果不填定地址,默认认为“地址不详”)
      AlTER   table  student
      ADD  constraint   DF_Address  default (地址不详) FOR Address
     
     --添加检查约束 (要求出生日期在1980年1月1日之后) 
    ALTER  TAble  student
    ADD  Constraint  CK_BornDate  CHECK  (BornDate >='1980-01-01')
     
     
    --添加外键约束 (主表和从表Result 建立关系,关联列为StudentNo)
    Alter  table  student
    ADD  constraint  FK_StudentNo  foreign KEy(StudetNO)  PrFERENCES  Student(StudentNo)
    Go
     
     非空约束  是在键表时自己定的 
     
        删除约束
         语法 
        ALTER table 表名
        DROP   constraint    约束名
     
     
        --添加主外键
    alter table DEPT add constraint PK_deptno primary key(deptno);
    alter table EMP add constraint  PK_empno  primary key(empno);
    alter table EMP add constraint  FK_deptno foreign key(deptno) references DEPT(deptno);
     
     
     
        DOP  DATABASE   数据库名
        DOP   table      表名
     
     
     
     
      主数据 添加约束  ALTER  TABLE   表名 studnet
     
      ADD  conStraint  约束名 CK_你的列名   约束类:primary  key(你的列名)
     
      当然不同的约束添加的东西也就不一样  想检查约束要给判断值 添加外键约束就要给表中的关联建立好关系
     
     添加默认值就要给默认值  DEFAULT ('地址不详')for Address
     
     
        删除的约束
     
      Alter  table  表名 Student
     
      drop  constraint  约束名  约束列名就可以了
     
     
     
      --创建表如果表中有数据就删除  可以一值执行此命令
     
       use  Master
       use  MySchool
            
            GO
     
    if  ExisTs(SElect  * from  sysobjects  WHERE   Name='Student')
       DROP  Table   student
      CREATE  Table student (
      
        ......... 
       变量命名   数据类型  Not  null ,
       StudentID    int    Not  null,
      
        )
     
                          第三章 SQL  编程
     
      1.使用变量
     
          在sqlserver 中声明变量必须遵循变量前加上 @符号  如果加上两个@@个符号  就是系统变量
     
         declare   @name varchar(8)  声明变量并且给变量类型
     
          set   @name='帅哥'  给变量赋值
          Select  @name='帅哥'  给变量赋值    给变量赋值有两种方式
     
          print   @name      有两种显示方式  一种是消息框弹出 
     
          SELECT  @name       还有一种是  表格框弹出
     
     
                            SET      和         SELECT  的语句区别    
              SET       SELECT
    同时对多个变量值         不支持         支持
    表达式返回多个变量时         出错  将返回的最后一个值   赋给变量
    表达式未返回多个值      变量被赋值为NUL   变量保持原值
     
     
     
     
             GO
          declare  @linxin varchar(10)
          set @linxin='90'
     
          IF(@linxin>85)
           BEGIN
             print '老师奖励一部iphone6s'
             END
          ELSE
     
           BEGIN
           print '罚抄试卷10遍'
     
           END
     
          GO
     
     
     
       if  选择结构   当数据大也85就执行第一条语句  假若85>变量的话 就执行第二条语句
       因为只会 else 不会进行判断
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    利用google kaptcha完成登陆动态验证码
    Linux和Windows环境下安装Nginx
    将图片设定为固定大小
    将xls格式的Excel转换成图片
    将pdf格式的文件转换成图片
    SSH连接工具类
    java判断ip内外网
    jenkins安装与使用
    Eclipse快捷键大全
    serialVersionUID的作用
  • 原文地址:https://www.cnblogs.com/linnew/p/7818244.html
Copyright © 2011-2022 走看看