Ø Go批处理语句

用于同时执行多个语句

Ø 使用、切换数据库

use master

go

 

 

 

Ø 创建、删除数据库

 

方法1、

 

--判断是否存在该数据库,存在就删除

if (exists (select * from sys.databases where name = 'testHome'))

    drop database testHome

go

--创建数据库,设置数据库文件、日志文件保存目录

create database testHome

on(

    name = 'testHome',

    filename = 'c:\data\students.mdf'    

)

log on(

    name = 'testHome_log',

    filename = 'c:\data\testHome_log.ldf'

)

go

 

 

 

方法2(设置文件大小)、

 

if (exists (select * from sys.databases where name = 'testHome'))

    drop database testHome

go

create database testHome

--默认就属于primary主文件组,可省略

on primary (    

    --数据文件的具体描述

    name = 'testHome_data',                --主数据文件的逻辑名

    fileName = 'c:\testHome_data.mdf',    --主数据文件的物理名

    size = 3MB,                        --主数据文件的初始大小

    maxSize = 50MB,                    --主数据文件增长的最大值

    fileGrowth = 10%                --主数据文件的增长率

)

--日志文件的具体描述,各参数含义同上

log on (

    name = 'testHome_log',

    fileName = 'c:\testHome_log.ldf',

    size = 1MB,

    fileGrowth = 1MB

)

go

 

 

 

方法3(设置次数据文件)、

 

if (exists (select * from sys.databases where name = 'testHome'))

    drop database testHome

go

create database testHome

--默认就属于primary主文件组,可省略

on primary (    

    --数据文件的具体描述

    name = 'testHome_data',                --主数据文件的逻辑名

    fileName = 'c:\testHome_data.mdf',    --主数据文件的物理名

    size = 3MB,                        --主数据文件的初始大小

    maxSize = 50MB,                    --主数据文件增长的最大值

    fileGrowth = 10%                --主数据文件的增长率

),

--次数据文件的具体描述

(    

    --数据文件的具体描述

    name = 'testHome2_data',            --主数据文件的逻辑名

    fileName = 'c:\testHome2_data.mdf',    --主数据文件的物理名

    size = 2MB,                        --主数据文件的初始大小

    maxSize = 50MB,                    --主数据文件增长的最大值

    fileGrowth = 10%                --主数据文件的增长率

)

--日志文件的具体描述,各参数含义同上

log on (

    name = 'testHome_log',

    fileName = 'c:\testHome_log.ldf',

    size = 1MB,

    fileGrowth = 1MB

),

(

    name = 'testHome2_log',

    fileName = 'c:\testHome2_log.ldf',

    size = 1MB,

    fileGrowth = 1MB

)

go

Ø 基本数据类型

精确数字类型

类型

描述

bigint

bigint 数据类型用于整数值可能超过 int 数据类型支持范围的情况,范围:-2^63 到 2^63-1,存储空间8字节

int

整数数据类型,范围在-2^31 到 2^31-1,存储空间4字节

smallint

整数,范围在-2^15 到 2^15-1,存储空间2字节

tinyint

范围在0 到 255,存储空间1字节

bit

可以取值为 1、0 或 NULL 的整数数据类型,每8个bit占一个字节,16bit就2个字节,24bit就3个字节

decimal

带固定精度和小数位数的数值数据类型,有效值从 - 10^38 +1 到 10^38 - 1

numeric

同上

money

货币或货币值的数据类型,范围在-922,337,203,685,477.5808 到 922,337,203,685,477.5807

smallmoney

货币类型,-214,748.3648 到 214,748.3647

近似数字类型

类型

描述

float

表示浮点数值数据的大致数值数据类型。浮点数据为近似值;范围-1.79E + 308 至 -2.23E - 308、0 以及 2.23E - 308 至 1.79E + 308

real

real 的 SQL-92 同义词为 float(24),范围在-3.40E + 38 至 -1.18E - 38、0 以及 1.18E - 38 至 3.40E + 38

日期时间类型

类型

描述

datetime

表示某天的日期和时间的数据类型,范围在1753 年 1 月 1 日到 9999 年 12 月 31 日

smalldatetime

范围在1900 年 1 月 1 日到 2079 年 6 月 6 日

字符串类型

类型

描述

char

固定长度或可变长度的字符数据类型,范围在范围为 1 至 8,000字节

text

最大长度为 2^31-1

varchar

固定长度或可变长度的字符数据类型,最大存储大小是 2^31-1 个字节

Unicode字符串类型

类型

描述

nchar

字符数据类型,长度固定,在必须在 1 到 4,000 之间

nvarchar

可变长度 Unicode 字符数据。最大存储大小为 2^31-1 字节

ntext

长度可变的 Unicode 数据,最大长度为 2^30 - 1 (1,073,741,823) 个字符

二进制字符串类型

类型

描述

binary

长度为 n 字节的固定长度二进制数据,范围从 1 到 8,000 的值。存储大小为 n 字节。

varbinary

可变长度二进制数据。n 可以取从 1 到 8,000 的值。最大的存储大小为 2^31-1 字节

image

长度可变的二进制数据,从 0 到 2^31-1 (2,147,483,647) 个字节

Ø 判断表或其他对象及列是否存在

 

--判断某个表或对象是否存在

 

if (exists (select * from sys.objects where name = 'classes'))

 

    print '存在';

 

go

 

if (exists (select * from sys.objects where object_id = object_id('student')))

 

    print '存在';

 

go

 

if (object_id('student', 'U') is not null)

 

    print '存在';

 

go

 

 

 

--判断该列名是否存在,如果存在就删除

 

if (exists (select * from sys.columns where object_id = object_id('student') and name = 'idCard'))

 

    alter table student drop column idCard

 

go

 

if (exists (select * from information_schema.columns where table_name = 'student' and column_name = 'tel'))

 

    alter table student drop column tel

 

go

 

 

 

Ø 创建、删除表

 

--判断是否存在当前table

 

if (exists (select * from sys.objects where name = 'classes'))

 

    drop table classes

 

go

 

create table classes(

 

    id int primary key identity(1, 2),

 

    name varchar(22) not null,

 

    createDate datetime default getDate()

 

)

 

go

 

if (exists (select * from sys.objects where object_id = object_id('student')))

 

    drop table student

 

go

 

--创建table

 

create table student(

 

    id int identity(1, 1) not null,

 

    name varchar(20),

 

    age int,

 

    sex bit,

 

    cid int

 

)

 

go

 

 

 

Ø 给表添加字段、修改字段、删除字段

 

--添加字段

 

alter table student add address varchar(50) not null;

 

--修改字段

 

alter table student alter column address varchar(20);

 

--删除字段

 

alter table student drop column number;

 

 

 

--添加多个字段

 

alter table student 

 

add address varchar(22),

 

    tel varchar(11),

 

    idCard varchar(3);

 

 

 

--判断该列名是否存在,如果存在就删除

 

if (exists (select * from sys.columns where object_id = object_id('student') and name = 'idCard'))

 

    alter table student drop column idCard

 

go

 

if (exists (select * from information_schema.columns where table_name = 'student' and column_name = 'tel'))

 

    alter table student drop column tel

 

go

 

 

 

Ø 添加、删除约束

 

--添加新列、约束

 

alter table student 

 

    add number varchar(20) null constraint no_uk unique;  

 

--增加主键

 

alter table student  

 

    add constraint pk_id primary key(id);  

 

--添加外键约束

 

alter table student

 

    add constraint fk_cid foreign key (cid) references classes(id)

 

go

 

--添加唯一约束

 

alter table student

 

    add constraint name_uk unique(name);

 

--添加check约束

 

alter table student with nocheck   

 

    add constraint check_age check (age > 1);

 

alter table student

 

    add constraint ck_age check (age >= 15 and age <= 50)

 

--添加默认约束

 

alter table student

 

    add constraint sex_def default 1 for sex;

 

--添加一个包含默认值可以为空的列

 

alter table student 

 

    add createDate smalldatetime null

 

    constraint createDate_def default getDate() with values;

 

 

 

----- 多个列、约束一起创建--------

 

alter table student add   

 

    /*添加id主键、自增*/  

 

    id int identity constraint id primary key,   

 

    /* 添加外键约束*/   

 

    number int null    

 

    constraint uNumber references classes(number),  

 

    /*默认约束*/  

 

    createDate decimal(3, 3)  

 

    constraint createDate default 2010-6-1  

 

go 

 

 

 

--删除约束

 

alter table student  drop constraint no_uk;

 

 

 

Ø 插入数据

 

insert into classes(name) values('1班');

 

insert into classes values('2班', '2011-06-15');

 

insert into classes(name) values('3班');

 

insert into classes values('4班', default);

 

 

 

insert into student values('zhangsan', 22, 1, 1);

 

insert into student values('lisi', 25, 0, 1);

 

insert into student values('wangwu', 24, 1, 3);

 

insert into student values('zhaoliu', 23, 0, 3);

 

insert into student values('mazi', 21, 1, 5);

 

insert into student values('wangmazi', 28, 0, 5);

 

insert into student values('jason', null, 0, 5);

 

insert into student values(null, null, 0, 5);

 

 

 

insert into student 

 

select 'bulise' name, age, sex, cid 

 

from student 

 

where name = 'tony';

 

    

 

--多条记录同时插入

 

insert into student

 

    select 'jack', 23, 1, 5 union

 

    select 'tom', 24, 0, 3 union

 

    select 'wendy', 25, 1, 3 union

 

    select 'tony', 26, 0, 5;

 

 

 

Ø 查询、修改、删除数据

 

--查询数据

 

select * from classes;

 

select * from student;

 

select id, 'bulise' name, age, sex, cid from student 

 

where name = 'tony';

 

select *, (select max(age) from student) from student 

 

where name = 'tony';

 

 

 

--修改数据

 

update student set name = 'hoho', sex = 1 where id = 1;

 

 

 

--删除数据(from可省略)

 

delete from student where id = 1;

 

 

 

Ø 备份数据、表

 

--备份、复制student表到stu

 

select * into stu from student;

 

select * into stu1 from (select * from stu) t;

 

select * from stu;

 

select * from stu1;

 

 

 

Ø 利用存储过程查询表信息

 

--查询student相关信息

 

exec sp_help student;

 

exec sp_help classes;

SQL Server 数据库基础编程的更多相关文章

  1. SQL Server数据库基础编程

    转载,查看原文 Ø Go批处理语句 用于同时执行多个语句 Ø 使用.切换数据库 use master go   Ø 创建.删除数据库 方法1. --判断是否存在该数据库,存在就删除 if (exist ...

  2. Sql Server数据库基础

    --------------------------------------第一章  Sql Server数据库基础------------------------------------------ ...

  3. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用

    C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备)  https://blog.csdn.net/u013519551/article/details/51220841 1. . ...

  4. SQL Server 数据库基础笔记分享(下)

    前言 本文是个人学习SQL Server 数据库时的以往笔记的整理,内容主要是对数据库的基本增删改查的SQL语句操作和约束,视图,存储过程,触发器的基本了解. 注:内容比较基础,适合入门者对SQL S ...

  5. SQL Server 数据库基础笔记分享(上)

    前言 本文是个人学习SQL Server 数据库时的以往笔记的整理,内容主要是对数据库的基本增删改查的SQL语句操作和约束,视图,存储过程,触发器的基本了解. 注:内容比较基础,适合入门者对SQL S ...

  6. SQL Server 数据库基础知识

    数据库(Database)是由文件管理系统发展起来的,按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 特点:       尽可能小的冗余度.       具有较高的数据独立性和易扩 ...

  7. 【2017-03-09】SQL Server 数据库基础、四种约束

    一.数据库和内存的区别 数据库:一些存储在硬盘上的数据文件 内存:计算机临时存储的一些数据 二.常用数据库 .Net - SQL Server PHP - MySql Java - Oreacl 三. ...

  8. SQL Server数据库基础笔记

    启动和停止SQL Server服务三种形式 后台启动服务 计算机->右键->管理->服务和应用程序->服务->sql server(MSSQLSERVER) SQL Se ...

  9. sql server 数据库基础知识(二)

    CASE函数用法1:单值判断,相当于switch caseCASE expression WHEN value1 THEN returnvalue1 WHEN value2 THEN returnva ...

随机推荐

  1. CF 500 C. New Year Book Reading 贪心 简单题

    New Year is coming, and Jaehyun decided to read many books during 2015, unlike this year. He has n b ...

  2. CLR和JIT

    在使用IDE进行编译的时候,这个过程具体的叫法是,使用编译器面向CLR来生成代码.对于不同的开发语言,使用的的编译器也不一样,但是生成的代码都一样. “无论选用哪一个编译器,结果都是一个托管模块.” ...

  3. UILabel使用技巧

    UILabel的各种属性与方法的使用(转) #import "LabelTestViewController.h" @implementation LabelTestViewCon ...

  4. Android牟利之道(一)--界面嵌入有米广告

    经过了一番折腾,忙忙碌碌了一下午,终于搞明白了Android软件界面嵌入广告的方法,以下我以嵌入有米广告为例小结一下: 我的新浪微博(wind瑞):http://weibo.com/tianrui19 ...

  5. centos5安装在大硬盘上面的问题

    硬盘空间大小: 3TB 原始硬盘是GPT格式的,系统安装现象如下: 此时按 ctrl + alt + F2 ,进入命令行界面,输入如下: 发现 用parted修改硬盘分区格式为msdos,报错!基本可 ...

  6. 105、android:windowSoftInputMode属性详解

    activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性. 这个属性能影响两件事情: [一]当有焦点产生时,软键盘是隐藏还是显示 [二]是否减少活动 ...

  7. 运行测试Caused by: java.lang.UnsatisfiedLinkError: no attach in java.library.path错误解决

    解决办法:看到错误里面有个Caused by,说我的jdk运行到了32位的了,于是我查看环境变量,发现是昨天设置成32位的没有设置回来,于是设置回64位的jdk就ok了

  8. context.Request.Files为NULL问题

    在实现图片上传功能的时候出现在ashx等处理页面出现context.Request.Files为NULL异常,有几点需要注意: 1.在客户端可以将form用submit提交,如下: <%@ Pa ...

  9. sql自动生成汉语拼音和首字母函数

    1.Sql server自动生成拼音的函数 /* 根据汉字获取全拼 1.生成所有读音临时表 2.根据Chinese_PRC_CS_AS_KS_WS 排序获取读音 */ )) ) as begin ) ...

  10. nyoj 92 图像有用区域

    点击打开链接 图像有用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取 ...