您的位置:新葡亰496net > 网络数据库 > 数据库的实现,基本语句

数据库的实现,基本语句

发布时间:2019-07-05 13:08编辑:网络数据库浏览(146)

    1、数据库文件类型:

    转载:

    SQL Server数据库基础

      SQLServer数据库的基础知识的回顾

    一、创建数据库

    ①数据文件

    SQL语句:
    1:创建数据库 create database 数据库名;

    一、安装SQL Server数据库

      1)主数据文件:*.mdf

     

    主要数据文件:后缀 .mdf ,有且只有一个,默认已创建,包含启动信息、数据对象

    2:使用数据库 use 数据库名;

    setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步->默认实例->混合模式->输入sa密码->实例账号添加当前账号即可。

          2)次要数据文件:*.ndf

    1. 创建和打开数据库

      注意一点:在新建数据库的时候,一般放置数据文件与日志文件的位置,需要提前建立文件夹,不然会报错。

      一般主数据文件,我们以.mdf结尾,次数据文件用.ndf结尾。对于日志文件,我们一般以.ldf结尾。

      create database UserDB

      on primary

      (name=userdb_dat,filename='d:magmisdatamagdbdat1.mdf',

    次要数据文件:后缀 .ndf ,可有任意个,默认无

    3:删除数据库 drop database 数据库名;

    如果想要其他机器访问这台机器的sqlserver,需要使用windows防火墙中的入站规则,端口写1433.

      3)日志文件:*.ldf

    size=10,maxsize=50,filegrowth=5)
    
    
     
    
    log on
    
    
    ( name=userdb_log,filename='d:\magmisdata\magdblog1.ldf',
    

    文件流数据:存储图片、音频等文件

    4: 创建表 create table 表名 
    ( 列名 列的数据类型 列的约束 );

    二、SQL Server配置管理器

      每个数据库至少要包含两个文件:一个数据文件和一个日志文件

           size=10,maxsize=50,filegrowth=5)

    ②事务日志文件:后缀 .ldf ,至少一个,默认已创建一个,记录所有事务的SQL语句,用于恢复数据库

    5:删除表 drop table 表名;
    delete from 表名;-- delete 语句删除会记录日志 删完数据以后 自动增长依然继续递增
    truncate table 表名; -- truncate 不会在日志中记录的 删完数据以后 自动增长回到初始值 1

    包含各个sql服务,连接数据库时,务必保证sql server服务已开启.

          如何查看SQL Server的帮助==================快捷键F1

        打开数据库:

    2、创建和扩展数据库

    6:复制表 create table copy_biao select * from biao where 1=1; -- 同时复制表中的数据
    create table copy_biao select * from biao where 1=0; -- 复制表结构 不复制数据
    先创建相同的表 insert into 现在的表名 select * from 之前的表名;

    三、系统数据库

    一、创建数据库

        use database UserDB

    文件大小:有一个初始大小,可扩展,最小单位1MB

    修改表 用 alter table

    1、master数据库

    1.语法

     

    增长方式:①按百分比②按MB

    7: 添加一列 alter table biao add name varchar(20);-- 添加一列name列

    主系统数据库,丢失该库,sqlserver将无法启动。

    1 create database 数据库名
    2    on  primary
    3  (
    4     <数据文件参数>[,......n] [<文件组参数>]
    5   )
    6  log on
    7   (
    8   {<日志文件参数> [,......n]}
    9   )
    

    CREATE DATABASE UserBD1

    可限制数据大小:方式:①限制大小②不限制大小

    8:删除列 alter table biao drop biao_name; 

    2、tempdb数据库

    数据文件参数如下

    ON PRIMARY

    3、收缩数据库:释放不使用的空间

    9: 创建一个索引 create index idx_name on banji(banji_mingzi);

    用来创建临时对象,包括临时表,存储过程,表变量,全局临时表以及游标等。

    1 (
    2   [name=逻辑文件名,]
    3    filename=物理文件名
    4   [,size=大小]
    5    [,maxsize={最大容量|unlimited}]
    6    [,filegrowth=增长量]
    7   )
    

    (name=user1,filename='d:dbfileuser1.mdf',size=20,maxsize=200,filegrowth=5

    方式:①手动收缩

    10: 删除索引 alter table banji drop index idx_name;

    3、model数据库

    文件组的参数

    ),

    收缩数据库:不能低于初始大小

    11: 插入单行记录 insert into 表名 values (值列表);

    sqlserver实例中创建的全部数据库的模型。

    1、语法

    (name=user2,filename='d:dbfileuser2.ndf',size=20,maxsize=200,filegrowth=10%

    收缩文件:可以低于初始大小,最小单位1M

    更改已有的数据 用 update 
    13:更新单列数据 update 表名 set 新列值列表 where 过滤条件;
    14:更改多列数据 update 表名 set 新列值列表,新列值列表 where 过滤条件;(之间用逗号隔开)
    删除 update 表名 set age=null where name='佳佳';

    4、msdb数据库

     1 filegrowth 文件组名 <文件参数> [,......n] 

    ),

    ②自动收缩

    删除数据 用delete 
    15:删除行 delete from 表名 where 过滤条件;(若没有where 过滤条件,表中所有的行都将被删除)

    主要用于sqlserver代理的支撑后台。

    2.例子(前8行进行判断的,如果存在数据库就删除数据库不存在数据库就出现'2131231')

    (name=user3,filename='d:dbfileuser3.ndf',size=20,maxsize=200,filegrowth=5

    数据库属性,可设置自动收缩

    16:删除表 delete from 表名;-- delete 语句删除会记录日志 删完数据以后 自动增长依然继续递增

    5、resource数据库

     1 --判断如果有这个库进行删除
     2 if exists(select * from sysdatabases where name='MySchool')
     3 begin
     4 drop database MySchool
     5 end
     6 begin
     7 print '2131231'
     8 end
     9 --创建数据库
    10 create database MySchool
    11 on primary
    12 (
    13     --数据文件的具体描述
    14     name='MySchool_data',        --主数据文件的逻辑名称       必须写
    15     filename='E:MySchool_data.mdf', --主数据文件的物理名称       必须写
    16     size=5mb,                        --主数据文件的初始大小
    17     maxsize=100mb,                    --主数据文件增长的最大值
    18     filegrowth=15%                    --主数据文件的增长率
    19 )
    20 log on
    21 (
    22 --日志文件的具体描述,各参数含义同上
    23 name='MySchool_log',
    24 filename='E:MySchool_log.ldf',
    25 size=2mb,
    26 filegrowth=1mb
    27 )
    28 go
    

    )

    4、分离和附加数据库

    truncate table 表名; -- truncate 不会在日志中记录的 删完数据以后 自动增长回到初始值 1

    资源数据库,隐藏的制度数据库。主要用于改进sqlserver版本升级时的进程功能。

    二、创建表

    log on

    分离:将数据库从实例中移除,便于移动或复制数据库

    17:排除重复数据 select distinct 列A from 表名;

    6、distribution数据库

    1、语法

    (name=use1log,filename='d:dbfileuser1.ldf',size=20,maxsize=200

    附加:将数据库添加到实例中

    18:返回限定行数查询 select * from 表名 limit 0,5;

    分发数据库,只有将实例配置为复制的分发者时,该库才存在。复制中所有的元数据与各种类型的历史记录都存储在此数据库中。

    1 create table 表名
    2 (
    3   列1 数据类型 列的特征
    4   ......
    5  )
    

    ),

    删除:将数据库从实例中移除并删除数据文件,只可删除用户数据库

    19:选择操作 用 where select 列名列表 from 表名 where 条件;

    四、数据库的组成

     

    (name=user2log,filename='d:dbfileuser2.ldf',size=20,maxsize=200

    5、数据类型:

    多条件选择操作: and , or,

    数据库主要由文件和文件组组成。数据库中的所有数据和对象(表、存储过程和触发器等)都被存储在文件中。

    2、例子(5和6行判断是否存在Student这张表)

    )

    精准数字:  int :整型

    执行范围测试:between and,(包括上限和下限)

    1、文件

     1 --创建表
     2 use MySchool --将当前数据库设置为MySchool,以便在MySchool里创建表
     3 go
     4 --判断
     5 if exists (select * from sysobjects where name='Student') 
     6 drop table Student
     7 
     8 create table Student   ---创建Student表
     9 (
    10  StudentNo int identity primary key not null,  --学号 自增 主键,非空
    11  loginpwd nvarchar(20) not null,
    12  StudentName nvarchar(20) not null,
    13  Sex bit default'女' not null,      --性别,取值0,1
    14  GradeId int not null,
    15  Phone nvarchar(50) null,
    16  Address nvarchar(100) null,
    17  BornDate datetime not null,
    18  Email nvarchar(20) null,
    19  IdentityCard varchar(18) not null
    20  )
    21 go
    

    2、修改数据库

    bit :只有0或1或NULL三个值,可输入的值只有0和1

    集合定义关系:in,

    主要数据文件:存放数据和数据库的初始化信息。每个数据库只有一个主要数据文件,默认扩展名是.mdf。
    次要数据文件:存放除主要数据文件意外的所有数据文件。有些数据库可能没有次要数据文件,也可能有多个次要数据文件,默认扩展名是.ndf。
    事物日志文件:存放用于恢复数据库的所有日志信息。每个数据库至少有一个事物日志文件,也可以有多个事物日志文件,默认扩展名是.ldf。

    三、删除表

    增加和删除数据文件和日志文件

    decimal :数值

    模糊查询: like %(任意字符串), _(单个字符),

    2.文件组
    主文件组:包含主要数据文件和任何没有明确指派给其他文件组的文件。系统表的所有页都分配在主文件组中。
    用户定义文件组:主要是在create database 或者alter database 语句中,使用filegroup关键字指定的文件组。

    1、语法

    缩小分配给数据文件或日志文件的空间

    money :货币值

    处理空值数据: is null, is not null,

    五、创建数据库
    创建数据库时包括常规、选项和文件组 常规用于设置数据库的名称大小位置等,选项和文件组中定义数据库的一些选项,显示文件和文件组的统计信息,默认即可。
    SQL Server 默认创建了一个primary文件组,用于存放若干个数据文件,但日志没有文件组。
    SQL Server数据库的数据文件分逻辑名称和屋里名称。逻辑名称是在sql 语句中引用文件时所使用的名称;物理名称用于操作管理系统。

     1 drop table 表名 

    扩大分配给数据文件或日志文件的空间

    近似数字:float ,real

    20:排序操作 order by desc(降序) ,order by asc(升序),
    21:执行行和列的计算 select count(计数规范) from 表名;
    22:sum (总和) avg(平均值) min(最小值) max(最大值)
    23:过滤分组数据 group by 
    24:使用having 注意:HAVING是运行在分组后,只能用做聚合函数的过滤。 

    维护SQL Server数据库

    2、例子

    创建文件组

    字符串:   char :固定长度,指定列长

    二:约束:
    主键约束:Primary Key 注意:主键约束默认为非空
    唯一约束:Unique
    非空约束:Not Null 
    默认约束:Default
    检查约束:Check(MySQL不支持)

    一、脱机与联机

     1 drop table Student 

    改变默认文件组

    varchar :可变长度,指定最大大小

    数据库->右键脱机,copy之后右键联机->完成

    3、重点

    改变数据库名称

    text :大量字符

    二、分离与附加

    当创建表的时候已经创建主键和自增列的时候,我们如何能够删除已经存在的主键?

     

    nchar、nvarchar、ntext :Unicode字符,双字节

    分离不是删除数据库而是从服务器中移除。 exec sp_detach_db @dbname='webDB'

     

    注意:在利用文件组的时候需要先增加文件组,然后在把增加的文件放到文件组里面去。

    二进制字符:binary

    数据库->右键分离->需要时再右键附加上。create database webDB on (filename='c:webDB.mdf'),(c:webDB.ldf) for attach

    1 --查看主键,之前没有主键的名字
    2 select * from sysobjects where xtype='PK'
    3 --删除主键
    4 alter table [Student] drop 查找出约束(主键)的名字
    

             而且 name 记录的是 数据文件的逻辑名称,不是物理名称。

    日期和时间:date 日期            time 时间          datetime 日期和时间

    三、导入和导出

     

    alter database UserBD1

    6、创建表:

    数据库->右键导入->选择数据源->完成。

    四、添加约束(例子)

    add filegroup userdbFG

    ①列名     ②数据类型    ③是否允许NULL值       这三点是必须有的

    数据库->右键导出->输入服务器名称,账号密码->选择导出方式->完成。

    语法:

    alter database UserBD1

    ④默认值:没有为列指定值,使用默认值

    四、备份和恢复

     1 alter table 表名

    add file

    ⑤标识符列:自动生成序号值的列,不可输入或更改,最多只能有一个

    数据库->右键备份->完整备份->完成。

    2 add constraint 约束名 约束类型 具体的约束说明 

    (name=add_user2,filename='d:dbfileadddat2.ndf',size=5,maxsize=200,filegrowth=10%)

     三要素:数据类型为数值型

    数据库->右键恢复->选择bak文件->完全覆盖->完成。

    例子:

    to filegroup userdbFG

    种子:初始值

    五、收缩数据库和文件

    1、添加默认约束(默认'地址不详')

     

    增量:步长、增长值

    因为数据库空间分配采用的是现分配、后使用的机制,所以数据库使用过程中就可能会存在多余的空间。收缩数据库功能允许对数据库的每个文件进行收缩。
    数据库和日志文件都可以收缩,可以手动收缩额自动收缩。
    自动收缩:数据库->右键属性->选项->自动收缩->完成。
    手动收缩:数据库->右键任务收缩->数据库/文件->确定。

    1 alter table Student
    2 add constraint df_address default('地址不详') for address
    

    注意:如果把下面的modify换成 remove的话,就可以删除某一个数据文件或者日志文件

    ⑥检查约束(check):限制可接受的值

    六、生成与执行SQL脚本

    2、添加检查约束(要求出生在1996年10月26日)

    当我们增加日志文件的话,我们使用命令 add log file (文件参数)

    ⑦设置主键

    将数据库生成SQL脚本:数据库->编写脚本->create database ->完成。
    将数据表生成SQL脚本:数据表->编写脚本->create table->完成。
    执行SQL脚本:新建查询->输入脚本->执行。

    1 alter table Student 
    2 add constraint ck_BornDate check (BornDate >='1996-10-26')
    

    alter database UserBD1

    ⑧设置外键

    数据表

    3、添加唯一约束(身份证全世界只有一个)

    modify file

    7、插入数据:

    一个数据库由多张数据表组成,每个数据表由行和列组成

     1 alter table Student

    (name=add_user2,size=10)

    insert into  表名  values(‘值1’,‘值2’,‘’,……)

    一、数据类型

    2 add constraint uq_IdentityCard unique (IdentityCard) 

    下面是缩小数据文件或数据库命令,

    8、更新数据:

    1、基本数据类型

     

    use UserBD1

    update   表名   set    列名=‘新值’   where    条件

    精确数字类型:bigint、int、smallint、tinyint、bit、decimal、numeric、money、smallmoney。

    4、添加主键约束

    dbcc shrinkfile(add_user2,5)

    9、删除数据:

    浮点数据类型:freal、float。

     1 alter table Student

     

    ①delete :可以有条件删除部分数据,保存日志,可以恢复,标识列不重置,可删除有外键 约束的数据表

    字符数据类型:text、ntext、char、nchar(n)、varchar、nvarchar(n)。

    2 add constraint pk_StudentNo primary key(StudentNo) 

        dbcc shrinkdatabase(UserBD1,100)

    ②truncate :只能清空整个表,不保存日志,不可恢复,标识列重置为0,不可删除有外键约束的表

    二进制数据类型:binary、varbinary、image。

    5、添加外键约束(主表 Student 和从表 REsult建立关系,关联列StudentNo)

    删除数据库

    命令: delete   from   表名   where   条件   truncate   table   表名

    日期/时间数据类型:time、date、smalldatetime、datetime、datetime2、datetimeoffset。

    1 alter table Result 
    2 add constraint fk_StudentNo
    3     foreign key(StudentNo) references Student (StudentNo) 
    

        drop database UserBD1

    10、删除库和表:

    2、用户自定义数据类型

    五、回顾T-SQL的语句的语法

    二、数据库表

    drop  database   库名

    2.1 可编程性->类型->用户自定义数据类型->右键新增数据类型。

    1、添加数据

        1、创建数据库表

    drop  table   表名

    2.2 exec sp_addtype code_name,'char(8)','not null'

     1 Insert into 表名(列名,......)Values(值1,......) 

    注意: identity(10,5) 表示初始值为10,然后按照5的速度往上涨。默认为自增1.

    二、数据表的数据完整性**

    2、修改数据

    对于表名,一般#开头的表示临时表,它是存在于内存空间中的,随之数据库的关闭,自动关闭,不会保存到硬盘中。

    表中的每一列都有一组属性,如名称、数据类型、数据长度和是否为空等。

     1 update 表名 set 列1=值1,列2=值2,......where(条件) 

          建立表格

    1.空与非空值(null/not null):定义是否允许为空

    3、删除数据

     use UserBD1

    2.默认值(default):默认指定值。

     1 delete from 表名 where(条件) 

     create table mag_dept

    3.标识属性(identity):自动为表中插入新行生成连续递增的编号,因标识值通常唯一,所以标识列通常定义为主键(整型数据类型,标识列不能为空)。

    4、查询语句

    (

    4.约束:用来定义自动强制数据库完整性的方式,约束优先于使用触发器、规则和默认值。

     1 select 列1,列2,.....from 表名 where(条件) order by 列名 

    DepId int identity primary key,

    非空:用户必须输入一个值。可以有多个非空约束。

    理解的小例子

    DepName varchar(50) NOT NULL,

    检查:用来指定一个布尔操作,限制输入到表中的值。

    1 select StudentName,StudentNo from Student where BornDate>='1996-10-26' order by StudentNo 
    

    DepManager varchar(50) ,

    唯一性:用户的应用程序向列中输入一个唯一的值,值不能重复,但可以为空。

     六、创建文件夹

    DepTel varchar(24),

    主键:可以保证实体完整性,一个表只能有一个主键,主键不能为空。

    1 exec sp_configure 'show advanced options',1
    2 go
    3 reconfigure
    4 go
    5 exec sp_configure 'xp_cmdshell',1
    6 go
    7 reconfigure
    8 go
    9 exec xp_cmdshell 'mkdir E:新建文件'
    

    )

    外键:控制存储在外键表中的数据。一个表可以有多个外键。

     

     

    三、企业管理器管理数据表

    create table mag_emp

    创建表:数据库->表->右键新建表->输入列名->选择数据类型->是否允许空->保存输入表名。

    (

    修改表:数据库->表->右键设计。

    EmpId int identity,

    重命名:数据库->表->f2。

    EmpName varchar(30) NOT NULL,

    删除表:数据库->表->右键删除。

    SexInfo char(2),

    非空约束->列->列属性->允许NULL -> 是/否。

    EmpAge tinyint,

    主键约束->列->右键->设为主键->完成。

    DepId int,

    唯一约束->列->索引/键->唯一->是->完成。

    EmpRole varchar(20),

    检查约束->列->右键->check约束->表达式->完成。

    PermitStr varchar(100)

    默认约束->列->列属性->默认值。

    )

    外键约束->列->右键->关系->表和列规范->选择外键表列。

     

    四、关系的创建与维护

    create table mag_info

    SQL Server 是一个关系数据库管理系统(Relational Datable Management System,RDBMS),当数据库中包含多个表时,需要通过主关键字来建立表之间的关系。

    (

    主表user 从表work 主表wid右键->关系->主键work id 外键 user wid。

    MagId char(9),

    五、计算列

    MagName varchar(50) NOT NULL,

    列属性->计算列规范->公式。

    DesignerName varchar(30),

    由同一表中的其他列的表达式计算结果来生成列。一般用来对数据表进行扩展或增强。

    DesFinishDate datetime,

    T-SQL

    PubDate datetime,

    一、T-SQL概述

    DepId int

    T-SQL(Transact Structured Query Language)是标准的Microsoft SQL Server的扩展,是标准的SQL程序设计语言的增强版,程序与SQL Server沟通的主要语言。

    )

    SQL是关系数据库系统的标准语言,标准的SQL可以运用在所有的关系型数据库上。但T-SQL是SQL Server系统产品独有的。

     

    二、T-SQL语言的组成

    create table mag_doc

    数据定义语言(Data Definition Language,DDL):用于在数据库系统中对数据库、表、视图、索引等数据库对象进行创建和管理。

    (

    数据控制语言(Data Control Language,DCL):用于实现对数据库中数据的完整性、安全性等控制。

    DocId int identity,

    数据操纵语言(Data Mainpulation Language,DML):用于插入、修改、删除和查询数据库中的数据。

    DocTitle varchar(180),

    三、T-SQL语句结构

    AuthorName varchar(30),

    新葡亰496net,每条SQL语句由一个谓词开始,该谓词描述这条语句要产生的动作,如select或update关键字。谓词后紧接着一个或多个子句,子句中给出了被谓词作用的数据或提供谓词动作的详细信息,每一条子句都由一个关键字开始。

    DocText text,

    select 子句[into 子句] from子句 [where 子句] [group by 子句][having 子句][order by 子句]

    WordsSum int,

    四、T-SQL语句分类

    EditorName varchar(50),

    变量说明语句:用来说明变量的命令。

    EditFinishDate datetime,

    数据定义语句:用来简历数据库、数据库对象和定义列,如create table、create view、drop table等。

    ColumnName varchar(50),

    数据操纵语句:用来操纵数据库中数据的命令,如select、insert、update、delete和cursor等。

    DepId int,

    数据控制语句:用来控制数据库组件的存取许可、存取权限等,如grant、revoke等。

    MagId char(9)

    内嵌函数:说明变量的命令。

    )

    其他命令:嵌于命令中使用的标准函数。

    新葡亰496net 1

    五、常量

    2、数据类型

    数据在内存中存储始终不变化的量叫常量,常量,也称为文字值或标量值,是标识一个特定数据值的符号。格式区别与它所标识的值的类型。

    字符型 char varchar

    1.数字常量:包括整数常量、小数常量以及浮点常量。【 1 2 3】

    日期时间类型 datetime smalldatetime

    2.字符串常量:括在单引号内并且包含字母数字字符(a~z、A~Z、0~9)以及特殊字符,如”!、@、#“。 【‘a’ ‘asd’】

    数值类型 int samllint tinyint float real decimal numeric money samllmoney

    3.日期和时间常量:SQL规定日期、时间和时间间隔的常量值被指定为日期和时间常量。【'2014-08-01'】

    二进制类型 binary varbinary

    4.符号常量:除了用户定义的常量外, SQL包含几个特定的符号常量,这些常量代表不同的常用数据值。【current_date标识当前的日期】

    位型 bit

    六、变量

    文本型 text

    数据在内存中存储可以变化的量叫变量。用户必须指定存储信息的单元,并为该存储单元命名。T-SQL可以使用两种变量,局部变量和全局变量。

    图像型 image

    1.局部变量

    时间戳型 timestamp

    局部变量是用户可自定义的变量,作用范围仅在程序内部,局部变量名必须以“@”开头。

            3、修改数据库表

    1.1声明局部变量:使用declare语句声明变量。

    添加列

    declare @a char(10)
    

    alter table mag_emp

    1.2局部变量赋值:一种select,一种set。

    add ID char(18)

    select : select @a = 1
    
    set : set @a = 'i love sql'
    
    /*定义变量 查询结果*/
    
    declare @title varchar(10)
    
    set @title = 'xxx'
    
    select * from article where title = @title
    

    删除列

    输出语句

    alter table mag_emp

    select : select @a as ‘A’ 返回带列明的变量值

    drop column ID

    print : print @a 输出变量

    修改列的属性

    2.全局变量

    alter table mag_info

    系统内部事先定义好的变量称为全局变量,不用用户定义,任何程序均可随时调用。全局变量以“@@”开头。

    alter column PubDate smalldatetime

    @@identity: 最后一次自增的值。
    
    @@rowcount: 影响行数
    
    @@cursor_rows: 返回连接上打开的游标当前限定的数目
    
    @@error:返回错误号。若执行成功则返回0。
    
    @@connections:记录最后一次服务器启动以来,所有针对这台服务器进行的链接数目,包括没有链接成功的尝试。
    
    @@cup_busy:记录上次启动以来尝试的连接数,无论链接成功还是失败,都以ms为单位的cpu工作时间
    
    @@dbts:返回当前数据库中timestamp数据类型的当前值。
    
    @@fetch_status:返回上一次使用游标fetch操作所返回的状态值,并且返回值为整型。0成功,-1失败或不存在,-2被提取的行不存在。
    
    @@idle:返回以ms为单位计算SQL Server服务器自最近一次启动以来处于停顿状态的时间。
    
    @@io_busy:返回以ms为单位计算的SQL Server服务器自最近一次启动以来花在输入和输出上的时间。
    
    @@lock_timeout:返回当前对数据锁定的超时设置。
    
    @@pack_received:返回SQL Server服务器自最近一次启动以来一共从网络上接收数据分组的数目。
    
    @@pack_sent:返回SQL Server服务器自最近一次启动以来一共向网络上发送数据分组的数目。
    
    @@procid:返回当前存储过程ID标识。
    
    @@remserver:返回在登陆记录中记在远程SQL Server服务器的名字
    
    @@spid:返回当前服务器进程的ID标识。
    
    @@total_errors:返回自服务器启动以来,所遇到读写错误的总数。
    
    @@total_read:返回自服务器启动以来,读磁盘的次数。
    
    @@total_write:返回自服务器启动以来,写磁盘的次数。
    
    @@trancount:返回当前链接中,处于活动状态事务的数目。
    
    @@version:返回当前服务器的安装日期、版本、一级处理器的类型。
    

    更改列名和表名

    七、运算符

    use UserTest

    代码注释:/*此处注视*/

    create table test

    1、算数运算符

    (

    、-、*、/。加减乘除。1 1。

    number int identity,

    2、赋值运算符

    stu_name varchar(10),

    =为赋值运算符,将 等号右侧的值赋给左侧变量。

    class varchar(20)

    3、比较运算符

    )

    >、=、<=、<>、!=、!>、! 比较运算符测试两个表达式是否相同

    use UserTest 这一句不用加,不然会报错

    4、逻辑运算符

    更改列名的写法表名.列名

    • all:如果一个比较集中全部都是true,则值为true。
    • and:如果两个布尔值表达式均为true,贼值为true。
    • any:如果一个比较集合中任何一个为true,则值为true。
    • between:如果操作数是在某个范围内,则值为true。
    • exists:如果子查询包含该行,则返回true。
    • in:如果操作数与一个表达式列表中的某个相等,则值为true。
    • like:如果操作数匹配某个模式,则值为true。
    • not:对任何其他布尔运算符的值相反。
    • or:如果任何一个表达式是true,则值为true。
    • some:如果一个比较集中的某些true,则值为true。
    • not and or 同意表达式中,优先级是not>and>or。

    Sp_rename '表名.列名' , 新的列名

    5、位运算符

    sp_rename 'test.class',class_no

    &(AND) |(OR) ^(互斥OR) ~(NOT)

    更改表名中间的逗号不可以省略

    6、连接运算符

    Sp_rename 原表名 , 新表名

    使用" "用于连接两个或者两个以上的字符串。'123' 'asd'

     sp_rename test,student

    7、运算符优先级

    4、使用约束

    • 1. (加) -(减) ~(位反)
      1. *(乘) /(除) %(余)
    • 3. (加) (字符串连接) -(减)
    • 4.=、>、=、<=、<>、数据库的实现,基本语句。!=、!>、! >、!
    • 5.^(按位异或) &(按位与) | (按位或)
      1. NOT
      1. AND
    • ALL ANY BETWEEN IN LIKE OR SOME(逻辑运算符)。
    • =(赋值)
    1. 总共有5种约束,分别是 primary key 主键约束、unique 该列不允许出现重复、

      foreign key 外键约束,保证数据表间数据的一致性、check定义表中某些列的数据范围、 default 为列的数据提供默认值。

      可以实现实体完整性、参照完整性、自定义完整性。

      建立约束:

      1)实体完整性

      增加主键约束

      use UserBD1

    8、通配符

    alter table mag_dept 
    
     add primary key
    (DepId) 
    
     
    
    联合主键的定义
    
    use UserBD1
    
    
    create table grade
    
    
    (
    
    
     sno varchar(10)
    NOT NULL ,
    
    
     cno varchar(10)
    , 
    
     gmark numeric(5,1)
    -- 表示整数有位,小数位,其中这里的逗号可有可无,但是上面的逗号不可少
    
     primary key
    (sno,cno)
    
    • % : 包含0个或多个字符的任意字符(%title% "1title1","title","titlecsd")。
    • _ : 任何单个字符 (title_ "titlec"),通配符后只可跟一个字母。
    • [] : 指定范围[a~c] 或集合[abc]中的任何单个字符([0~9]123标识0~9之间任意一个字符开头,123结尾的字符)。
    • [^]:不属于指定范围或集合中的任何单个字符([^0~6]123 标识不以0~6之间的任意一个字母开头,却以123结尾的字符)。

    )

    9、控制流程

     

    • begin···end:用于将多个T-SQL语句组合为一个逻辑块。当流程控制语句必须执行一个包含两条或两条以上T-SQL语句时,使用begin end。
    • if:if@x%2=0 print '偶数' end
    • if···else:set @y = 3; if@x>0 print '1'else print'c'
    • case:使用case可以很方便的实现多重选择的情况,比if···then结构有更多的选择和判断机会。
      case······when aa > 10 then 'ok' when aa
    • while:T-SQL循环结构,条件为真的情况下while子句可以循环的其后的一条T-SQL命令,如果向循环执行一组命令,需配合begin······end。
    • while······continue······break:循环结构while子句还可以用continue和break控制while循环中语句的执行。
    • return:用于从查询或者过程中无条件退出。
    • goto:用来改变程序执行的流程,使程序调到标识符指定的程序行再继续往下执行。
    • dbcc:用来验证数据库完整性,查找错误和分析系统使用情况等。
    • declare:用来声明一个或多个局部变量、游标变量或表变量。
    • print: 用来向客户端返回一个字符串。
    • backup:用于将数据库内容或事务处理日志备份到磁盘或硬盘中。
    • restore:数据库发生丢失或者被破坏后可以使用restore将事务处理日志备份文件还原到SQL Server中。
    • select : 除查询外还可以给变量赋值。select @x=1,@y='love',多个赋值。
    • set:用来给局部变量赋值,set一次只能给一个变量赋值,select可以多个,不过set功能更强更严密。
    • shutdown:离职终止所有的用户过程,并在对每一现行的事务发生一个回滚后退出SQL Server。终止SQL服务。
    • use:用于在当前工作区打开数据库,如:use master select * from sysdatabases。

        不允许重复出现

     八、SQL语言操作

    use UserBD1

    1、GO批处理语句

    alter table mag_dept

    用于同时执行多个语句

          add unique (DepManager)

    使用、切换数据库

          2)参照完整性

    use master

    [constraint 约束名] foreign key (列名1[,列名2]) references 表名(列名1[,列名2])

    go

    定义外键

    2、使用T-SQL语句操作数据库

    use UserBD1

    2.1、创建数据库

    alter table mag_emp

    /*检查是否已存在该数据库*/
    if(exists(select * from sys.databases where name = 'webDB'))
        drop database webDB
    go
    create database webDB on primary /*数据库名字 默认属于praimary组 可省略不写*/
    (
        name = webDB, /*逻辑名称*/
        filename='d:webDB.mdf', /*物理名称*/
        size = 5mb, /*初始大小*/
        maxsize = unlimited, /*增长率的最大值*/
        filegrowth = 10% /*增长率*/
    )
    log on
    (
        name = webDB_log,
        filename = 'd:webDB.ldf',
        size = 3mb,
        maxsize = 50mb,
        filegrowth = 2mb
    )
    

          add foreign key(DepId) references mag_dept(DepId)

    2.2修改数据库

     

    alter database webDB /*要修改的数据库*/
    modify file /*修改文件*/
    (
        name = webDB, /*逻辑名*/
        size = 6mb /*修改初始大小*/
    )
    

    use UserTest

    2.3使用存储过程修改数据库名

    create table mag_dept

    exec sp_renamedb 'webDB','newDB'
    

    (

    2.4删除数据库

    DepId int identity primary key,

    drop database webDB
    

    DepName varchar(50) NOT NULL,

    3、创建表

    DepManager varchar(50) ,

    use webDB
    go
    if(exists(select * from sys.objects where name='student'))
        drop table student
    go
    create table student(
        name nvarchar(50),
        age int
    )
    

    DepTel varchar(24),

    4、修改表

    )

    /*如果student表存在address列则删除该列*/
    if(exists(select * from sys.all_columns where object_id=object_id('student') and name='address'))
        alter table student drop column address/*删除表中谋列*/
    
    /*向表追加列*/
    alter table student add address varchar(50) not null
    
    /*修改该列*/
    alter table student alter column address varchar(20)
    
    /*向表中追加多列*/
    alter table student add tel varchar(50),sex char(2),hits int
    

     

    5、备份数据表

    create table mag_emp

    select * into newTable from student
    

    (

    6、创建约束

    EmpId int identity,

    /*1、非空约束
    创建表时 创建非空约束*/
    create table [user]( 
        id int not null,
        name varchar(50),
        age int
    )
    /*在现有表中追加约束*/
    alter table student 
    alter column name varchar(50) not null 
    
    /*2、主键约束
    创建表时 创建主键约束*/
    create table [user1](
        id int constraint pk_id primary key, 
        name varchar(50)
    )
    /*在现有表中 创建主键约束*/
    alter table user1 add constraint pk_id primary key(id) 
    
    /*3、唯一约束
    创建表时 创建唯一约束*/
    create table [user2](
        id int constraint uq_id unique,
        name varchar(50)
    )
    /*在现有表中 创建唯一约束*/
    alter table [user2] add constraint qu_id unique(id)
    
    /*4、检查约束*/
    create table user3
    (
        sex char(2) constraint ck_sex check(sex in ('男','女'))
    )
    
    alter table user3 add constraint ck_sex check(sex in ('男','女'))
    
    /*5、默认约束*/
    create table [defualt](
        hits int constraint def_hits default 0
    )
    
    alter table [defualt] add constraint def_hits default 0 for [hits]
    
    
    /*6、外键约束*/
    alter table text add constraint fkey_id foreign key(id) references test(id)
    

    EmpName varchar(30) NOT NULL,

     

    SexInfo char(2),

    EmpAge tinyint,

    DepId int references mag_dept (DepId), //省略foreign key

    EmpRole varchar(20),

    PermitStr varchar(100)

    数据库的实现,基本语句。)

        3)用户自定义完整性

      自定义数据范围约束,将年龄值固定在到1与100之间(注:这里是自主命名的,前面几个都不是自主命名)

    use UserTest

    alter table mag_emp

      add constraint ck_age check (EmpAge between 1 and 100)

     

    为某个属性添加默认值

    use UserTest

    alter table mag_emp

    add default '编辑' for EmpRole

    新葡亰496net 2

    删除约束如果是自主命名的,直接删去约束名即可,如果不是,需要删除系统自动生成的约束名

    注意斜杠的个数,不然容易弄错

    use UserTest

     

    alter table mag_emp

           drop constraint FK__mag_emp__DepId__03317E3D

    总结:建立约束总共有2种方法,其一是使用 cteate table 命令在建立表的同时一同定义。其二是利用alter table 命令针对已经建立的表添加约束。

    还有就是不自主定义约束名时,需要省略 constraint 约束名。

    5、建立与删除索引

    索引分成两类:聚集索引(物理存储方式)与非聚集索引(逻辑存储方式)。

    聚集索引:顺序存储结构。非聚集索引:线性结构。

    Create [unique][clustered|noclustered] index 索引名 on 表名(列名1,列名2)

    默认建立的是非唯一的非聚集索引。建立索引时必须先建立聚集索引,然后建立非聚集索引。

    而且,当一个数据表建立主键后,自动建立了一个唯一的聚集索引。当使用了unique 约束后,自动建立一个非聚集索引。

    建立与删除索引虽然标红了,但语法正确

    use UserTest

    create index age_index on mag_emp(EmpAge)

     

    drop index 表名.索引名

    drop index mag_emp.age_index

    6、删除数据表

        drop table 表名

    本文由新葡亰496net发布于网络数据库,转载请注明出处:数据库的实现,基本语句

    关键词: