SQL Server 数据库基础编程详解

目录
  • Go批处理语句
  • 使用、切换数据库
  • 创建、删除数据库
    • 方法1、
    • 方法2(设置文件大小)、
  • 基本数据类型
  • 判断表或其他对象及列是否存在
  • 创建、删除表
  • 给表添加字段、修改字段、删除字段
  • 添加、删除约束
  • 插入数据
  • 查询、修改、删除数据
  • 备份数据、表
  • 利用存储过程查询表信息
  • 总结

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表到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;

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • MySQL 数据库的基础知识

    目录 1. 认识数据库 1.1 数据库和数据结构的关系 1.2 为什么需要数据库 1.3 数据库的存储 2. SQL 2.1 介绍 2.2 分类 3. 数据库的类别 3.1 关系型数据库 3.2 非关系型数据库 3.3 区别 4. MySQL 的程序结构 4.1 客户端和服务器 4.2 MySQL 的客户端-服务器结构 4.3 MySQL 服务器 1. 认识数据库 1.1 数据库和数据结构的关系 数据结构: 是指相互之间存在一种或多种特定关系的数据元素的集合,是一个抽象的学科 我们熟知的数据结构

  • SqlServer 基础知识 数据检索、查询排序语句

    复制代码 代码如下: --执行顺序 From Where Select select * from (select sal as salary,comm as commission from emp ) x where salary<5000 --得出 Name Work as a Job select ename +' Work as a'+job as msg from emp where deptno=10 --如果员工工资小于2000返回UnderPaid 大于等于4k 返回OverPa

  • SQL Server存储过程的基础说明

    可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程). 也可以创建在Microsoft SQL Server启动时自动运行的存储过程. 语法 CREATE PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ] [ WITH { RECOMPILE | ENCRY

  • MySQL数据库 JDBC 编程(Java 连接 MySQL)

    目录 1. 数据库编程的基础条件 2. Java 的数据库编程:JDBC 3. JDBC 访问数据库的层次结构 4. MySQL 数据库操作介绍 5. MySQL 驱动包的下载及添加到项目 6. JDBC 使用步骤 6.1 创建数据库源,连接 Connection 6.2 构造 SQL 语句,为执行的操作做准备 6.3 执行 SQL,并处理结果集 6.4 释放资源 6.5 JDBC 编程模板 7. JDBC 常用接口和类 7.1 DataSource 和 MysqlDataSource 7.2

  • 一篇文章带你了解MySQL数据库基础

    目录 1. 数据库概念 1.1 数据库是干嘛的? 1.2 数据库和数据结构是啥关系? 1. 数据库是一个软件/程序 2. 数据结构是一个学科~ 1.3 两种类型的数据库 2. MySQL数据库 2.1 MySQL数据库概念 2.2 MySQL基本操作 2.2.1 建立数据库 2.2.2 查看数据库 2.2.3 选中数据库 2.2.4 删除数据库 2.3 MySQL数据类型 总结 1. 数据库概念 1.1 数据库是干嘛的? 数据库的功能就是用来组织数据,组织很多很多的数据.这些数据通常都是存储在外

  • SQL Server 2005基础知识详细整理

    1. ACID:指数据库事务正确执行的四个基本要素缩写:1.原子性2.一致性3.隔离性4.持久性 2.数据库对象:表(table) 视图(view) 存储过程(stored procedure) 函数(function)索引(index) 3.SQL Server 2005中包含master.model.msdb.tempdb四个系统数据库. 4.使用T-SQL语句创建数据库:CREATE DATABASE [ApressFinacial] ON  PRIMARY ( NAME = N'Apre

  • SQL Server 数据库基础编程详解

    目录 Go批处理语句 使用.切换数据库 创建.删除数据库 方法1. 方法2(设置文件大小). 基本数据类型 判断表或其他对象及列是否存在 创建.删除表 给表添加字段.修改字段.删除字段 添加.删除约束 插入数据 查询.修改.删除数据 备份数据.表 利用存储过程查询表信息 总结 Go批处理语句 用于同时执行多个语句 使用.切换数据库 use master go 创建.删除数据库 方法1. --判断是否存在该数据库,存在就删除 if (exists (select * from sys.databa

  • Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法.分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012. 按照Python版本来选择下载pymssql模块,这样才能连接上sql server. 我安装的python版本是3.5 ,64位的,所以下载的pymssql模块是:pymssql-2.1.3-cp35-cp35m-win_amd64.whl 我把文件下载后放到E盘,安装pymssql模块: C:\Users\Administr

  • SQL Server 数据库的设计详解

    一.数据库设计的必要性 在实际的软件项目中,如果系统中需要存储的数据量比较大,需要设计的表比较多,表与表之间的关系比较复杂,那我们就需要进行规范的数据库设置.如果不经过数据库的设计,我们构建的数据库不合理.不恰当,那么数据库的维护.运行效率会有很大的问题.这将直接影响到项目的运行性和可靠性. 二.什么是数据库设计 数据库设计实际上就是规划和结构化数据库中的数据对象以及这些数据对象之间的关系过程. 三.数据库设计的重要性 不经过设计的数据库或是设计糟糕的数据库很可能导致 1. 数据库运行效率地下

  • MySQL数据库JDBC编程详解流程

    目录 一.数据库编程的必备条件 二.Java的数据库编程:JDBC 三.JDBC工作原理 四.JDBC开发步骤 五.JDBC操作步骤 六.优化JDBC的部分代码 1.获取数据库连接对象 2.操作命令对象Statement 3.ResultSet对象 4.总结 一.数据库编程的必备条件 编程语言: 如Java.C++.C.Python等 数据库: 如Oracle.MySQL.SQL Server等 数据库驱动包: 不同的数据库,要使用编程语言来操作时,就需要使用该数据库厂商提供的数据库驱动包. 如

  • SQL Server 2000安全配置详解

    SQL server2000数据库应用非常广泛,一旦出现安全问题,造成的损失往往难以估量!应提前预防,防患于未然.这里,我们主要谈论有关SQL Server2000数据库的安全配置以及一些相关的安全和使用上的问题. 在进行SQL Server 2000数据库的安全配置之前,首先你必须对操作系统进行安全配置,保证你的操作系统处于安全状态.然后对你要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP.PHP等脚本,这是很多基于数据库的WEB应用常出现的安全隐患,对于脚本主要是一个过滤问题,

  • 为PHP模块添加SQL SERVER2012数据库的步骤详解

    目录 一.系统要求 二.下载驱动 2.1下载 Microsoft Drivers for PHP for SQL Server 2.2 下载 ODBC Driver for SQL Server 三.配置PHP模块与php.ini文件 3.1从下图可以看到ODBC驱动程序11和13已经不在支持PHP5.9以上的版本,如果你下载的PHP模块是5.9以上的建议下载ODBC17以上的版本 3.2 PHP版本有线程安全问题如果你是用IIS要用线程安全否如果是APACHE版本用线程安全版本 3.3 将下载

  • SQL Server 索引和视图详解

    目录 索引 1. 什么是索引 2. 索引分类 聚集索引 非聚集索引 其他类型索引 3. 创建索引 4. 适合的创建索引的列 5. 不适合创建索引的列 视图 1. 什么是视图 2. 创建视图准则 3. 创建视图 4. 修改视图 5. 加密视图 总结 索引 1. 什么是索引 索引就是数据表中数据和相应的存储位置的列表,利用索引可以提高在表或视图中的查找数据的速度. 2. 索引分类 数据库中索引主要分为两类:聚集索引和非聚集索引.SQL Server 2005还提供了唯一索引.索引视图.全文索引.xm

  • SQL Server中的数据类型详解

    目录 哪些对象需要数据类型 一. 整数数据类型 1.bit 2.tinyint 3.smallint 4.int (integer) 5.bigint 二. 浮点数据类型 1.real: 近似数值型 2.float[(n)]:近似数值型 3.decimal[p [s] ] 4.numeric[p [s] ] 5.smallMoney货币型 6.money货币型 三.字符数据类型 1.char[(n)] 2.nchar[(n)] 3.varchar[(n| max )] 4.nvarchar[(n

  • SQL Server比较常见数据类型详解

    在SQL Server 中每个变量.参数.表达式等都有数据类型.系统提供的数据类型分为几大类,如表4-2 所示. 其中,BIGINT. SQL_VARIANT 和TABLE 是SQL Server 2000 中新增加的3 种数据类型.下面分类讲述各种数据类型. 一. 整数数据类型 整数数据类型是最常用的数据类型之一. 1.INT (INTEGER) INT (或INTEGER)数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,64

  • SQL Server:触发器实例详解

    1. 概述 触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活. 所以触发器可以用来实现对表实施复杂的完整性约束. 2. 触发器的分类 SQL Server2000提供了两种触发器:"Instead of" 和"After" 触发器. 一个表或视图的每一个修改动作(Insert.Update和Delete)都可以有一个"Instead of" 触发器,一个表的每个修改动作都可以有多个"

随机推荐