zoukankan      html  css  js  c++  java
  • 数据库的实现

    使用SQL语句创建数据库

    1、创建数据库

    创建数据库需要指定的数据库名称、数据文件、日志文件等

    创建数据库的语法:

    create database 数据库名称
    on[primary]
     (
      <数据文件参数> [,…n]  [<文件组参数>]
     )
     [LOG ON] 
     (
      <日志文件参数> [,…n]
     )
    

    <数据文件参数>或<日志文件参数>的语法:

    1 2 name=logical_file_name,
    3 filename='os_file_name',
    4 [,size=size[KB|MB|GB|TB]]
    5 [,MAXSIZE{max_size[ KB | MB | GB | TB ] | UNLIMITED}]
    6 [,FILEGROWTH=growth_increment[ KB | MB | |GB | TB | %]]
    7

    文件组参数的语法:

    filegtoup 文件组的逻辑名称 【default】<文件参数>
    

    <文件参数>的语法和<数据文件参数>的语法一致

    参数 说明
    数据库名称 数据名称,数据库名称在SQL Server的实例中必须唯一,切长度不能超过128个字符
    ON 当后面指定数据文件参数时需要使用 ON。
    primsry 指定关联的<数据文件参数>列表定义主文件。一个数据库只能有一个主文件
    log on 指定显示定义用来存储数据库日志的磁盘文件(日志文件)
    name 指定在SQL Server中的逻辑名称,它在数据库中是唯一的
    FILENAME 指定操作系统(物理)文件名称
    SIZE 指定一个整数,表示文件的大小,不包含小数位
    MAXSIZE 指定一个整数,表示文件可增大到最大大小,不包含小数位
    UNLIMITED 指定文件将增长到磁盘已满,既无限制
    FILEGROWTH 指定文件的自动增量
    FILEGROUP 控制文件组属性,指定文件组的逻辑名称。
    DEFAULT 指定命名文件组为数据库中默认文件组

    创建数据库的实例:

    if DB_ID('HR') is not null
    	drop database HR
    GO
    
    create database HR
    on
    (
    	name = HR,
    	filename = 'E:\SEC\HR.mdf',
    	size = 10MB,
    	maxsize = unlimited,
    	filegrowth = 10%
    )
    log on
    (
    	name = HR_log,
    	filename = 'E:\SEC\HR_log.ldf',
    	size = 3MB,
    	maxsize = 10MB,
    	filegrowth = 1MB
    )
    

     调用DOS命令创建文件夹的语法:

    xp_cmdshell {’命令字符串‘}【,no_output】
    

    2、删除数据库

    使用SQL语句删除数据库的语法:

    drop database 数据库名称
    

    若需要同时删除多个数据库的语法:

    drop database 数据库名称1,数据库名称2,数据库名称3.。。。数据库名称n
    

    删除数据库的实例

    if DB_ID('HR') is not null  --判断数据库是否存在   如果存在就直接删除
    	drop database HR
    GO
    

    3、SQL的数据类型 

    数据类型是数据的一种属性,表示数据信息的类型。在SQL Server中的数据类型包括:

    字符数据类型、数值型数据类型、货币型数据类型、日期/时间型数据类型、统一码数据类型、图像数据类型、

    文本数据类型和自定义数据类型

    4、使用SQL语句管理表

    1创建表的语法:

    创建表语法:
         create table 表名
         (
             字段1  数据类型  字段特征,
             字段2  数据类型  字段特征,
              ... ...
             字段n  数据类型  字段特征,
        )    
    

     2、添加列和删除列的语法:

    添加列:
        alter table 表名
             add { 字段  数据类型  字段特征} [,...n]
    删除列:
        alter table 表名
             drop column {字段} [,...n]
    

    4、数据完整性

    什么是数据完整性

    数据完整性(Data Integrity) 是确保数据正确性和一致性的机制。它是应防止数据库中存在

    不符合语义规定的数据和防止因错误信息的输入和输出造成无效操作和错误信息而提出的

    数据完整性的分类:

    数据完整性可分为四种类型:实体完整性(Entity Integrity)、域完整性(Domsin Integrity)

    参照完整性(Referential integrity)、用户定义完整性(User-defined Integrity)

    1、实体完整性

    确保实体有效。实体完整性有称为行完整性

    2、域完整性

    域即是列(字段)。确保列值有效(准确性和一致性)

    3、参照完整性

    参照完整性又称应用完整性,它是指主关系表中的数据与从关系表中的数据一致

    4、用户定义完整性

    用户定义完整性通常是由规则、触发器、表约束等机制来实现的

    5、使用SQL语句为表创建和删除约束

    添加约束

    添加约束可以使用ALTER TABLE 语句 来实现:

    alter table 表名
    add constrsint 约束名称 约束类型 约束类容
    

    1、主键约束

    主键约束在表中定义一个主键来唯一确定表中每一行数据,被主键约束的列是唯一的、非空的

    主键约束的语法:

    alter table  表名
    add constrsint 约束名称 primary key (字段【。。。。n】)
    
    
    实例
    
    alter table Student
    	add constraint PK_Student_StuNo primary key(StuNo)
    

     唯一约束的语法:

    alter table 表名
    	add constraint 约束名称 unique(字段【。。。。n】)
    
    
    实例
    
    
    alter table cardinfo
    	add constraint uq_cardinfo_cardnumber unique(cardnumber)
    go
    

    默认值约束语法:

    alter table 表名
    
    	add constraint 约束名称 default 默认值 for 字段
    
    
    
    
    实例
    
    alter table Student
    	add constraint DF_Student_StuName default 'zs' for StuName
    go
    

     检查约束的语法:

     

    alter table 表名
    	add constraint 约束名称 check (逻辑表达式)
    
    实例
    alter table Student
    	add constraint CK_Student_StuName check(len(StuName) > 10)
    go
    

    外键约束的语法:

    alter table 表名                             
    	add constraint  约束名称
       foreign key(从表字段)references 主表名(主表字段)
    go
    
    实例
    alter table Student                              --  外键              --  主表(列名=外键)
    	add constraint FK_Student_Class_ClaNo foreign key(ClaNo) references Class(ClaNo)
    go
    

    删除约束的语法:

    alter table 表名
    drop [consraint] 约束名称
    go
    
    实例
    
    alter table recordinfo
    drop consraint pk_cardinfo_cardid
    go
    

    6、数据库的安全管理

    1、份验证模式

    windows 身份验证模式

     当用户通过 Microsoft Windows 用户帐户进行连接时,SQL Server 使用 Windows 操作系统中的信息验证帐户名和密码。

    这是默认的身份验证模式,比混合模式更为安全。Windows 身份验证使用 Kerberos 安全协议,

    根据强密码的复杂性验证提供密码策略强制实施,提供帐户锁定支持,并支持密码过期。

    混合验证模式

    允许用户使用 Windows 身份验证和 SQL Server 身份验证进行连接。

    通过 Windows 用户帐户进行连接的用户可以使用经过 Windows 验证的受信任连接。
    如果选择混合模式身份验证,则必须为所有 SQL Server 登录名设置强密码。

    这对于 sa 和作为 sysadmin 固定服务器角色的登录名尤为重要。

      2、登陆账号

    在windows 验证模式下并不需要填写登陆名和密码,但是在混合验证模式

    下必须提供有效的登录名和密码才能连接到服务器

    创建登陆账号的语法:

    create login 登陆名称 with password='登陆密码’
    
    实例
    
    create login admin with password='123456'
    go
    

    修改登陆账号的语法:

    alter login 登陆名称
    WITH <set_option>[.....]
    
    实例
    
    alter login admin with nsme='my sdmin'
    go
    
    alter login admin with name= my sdmin,password='admin123456
    go
    

    创建数据库用户的语法:

    create user 用户名称
    【{for | from } login 登陆名】
    go
    
    
    实例
    
    create  login admin with password='123456'
    go
    use netbardb
    create user admin_netbar for login admin
    go
    

    修改数据库用户的语法:

    alter user 用户名称
    with name=用户新名称
    
    
    实例
    
    
    use netbardb
    
    go
    
    alter user admin_netbar
    
    with name=admin_netbartdb
    
    go
    

    删除数据库用户的语法:

    drop user 用户名称
    

    7、授权

    权限的种类

    要为用户授予权限,我们首先还要知道有些什么权限可以授予给用户。

    数据对象权限

    数据对象权限简称对象权限,是指用户对数据对象的操作权限这些权限主要是指数据操作

    语言(dml)语句权限,即select、update、insert、execute等语句权限。

    语句权限

    语句权限是指用户对某一语句的执行权限,它属于用户是否有执行某一语句的问题

    隐含权限

    隐含权限是指 SQL Server 内置的或创建对象时自动生成权限

    用户权限管理

    对数据库用户的权限可以管理操作可以分为三种方式:

    (1)授予(grant):对用户授予某种权限

    (2)收回(revoke):对用户收回(即删除)已授予的权限

    (3)禁用 (deny):禁止用户拥有某种权限

    权限管理的语法:

    {grant | revoke | deny}  权限【 on 表名【(字段【,。。。n】)】】 to 数据库用户
    

    总结 

    通过这章的学习我学会了用sql语句创建表,删除表,创建数据库和删除数据库  还有

    就是添加约束和删除约束等

    懂得了怎么使用权限来给用户授予权限 , 收回权限和禁用权限

      

      

     

  • 相关阅读:
    RobotFrameWork--selenium2模拟chrome的user agent
    robot设置chrome mobile emulation
    [转]如何用git将项目代码上传到github
    poj1182 食物链【并查集-好题!】
    hdu4998 Rotate【计算几何】
    poj3168 Barn Expansion【计算几何 平面扫描】
    FZU2110 Star【计算几何】
    poj1269 intersecting lines【计算几何】
    poj3304 Segments【计算几何】
    java大数
  • 原文地址:https://www.cnblogs.com/xiongzhuang/p/3049918.html
Copyright © 2011-2022 走看看