SqlServer编写数据库表的操作方式(建库、建表、修改语句)

学习要点:

  SQL之-建库、建表、建约束、关系SQL基本语句大全.txt举得起放得下叫举重,举得起放不下叫负重。头要有勇气,抬头要有底气。学习要加,骄傲要减,机会要乘,懒惰要除。人生三难题:思,相思,单相思。

SQL之-建库、建表、建约束、关系、部分T-sql语句

---创建库 创建库之前 先进行 查看数据库中是否 已存在 次数据库 有便删除
--- if exists(select * from sys.sysdatabases where name='ConstructionDB')begin use master drop database ConstructionDB end go create database ConstructionDB on()
if exists(select * from sysobjects where name ='ConstructionDB') --查找命令
drop DATABASE ConstructionDB --删除 命令
Create database ConstructionDB
on(
name='ConstructionDB_date',
filename='E:\技能抽查试题第二模块(数据库)\试题——1\任务一\ConstructionDB_date.mdf',
size=3mb,
maxsize=10mb,
filegrowth=5% --增长速度为
)
log on(
name='ConstructionDB_log',
filename='E:\技能抽查试题第二模块(数据库)\试题——1\任务一\ConstructionDB_date.ldf',
size=2mb,
maxsize=5mb,
filegrowth=1mb
)
--使用T-SQL语句创建表
use ConstructionDB
go
---查询 库中是否存在 此表 存在则删除
if exists(select * from sysobjects where name = 'T_flow_step_def')
drop table T_flow_step_def
--- 方法二
IF OBJECT_ID (N'bas_CardType') IS NULL
BEGIN --如果不存在该表,则进行创建
--drop table com_CodeRecord
--流程步骤定义表
create table T_flow_step_def(
Step_no int not null, --流程步骤ID
Step_name varchar(30) not null, --流程步骤名称
Step_des varchar(64) not null, --流程步骤描述
Limit_time int not null, --时限
URL varchar(64) not null, --二级菜单链接
备注 varchar(256) not null,
)
---流程类别表
create table T_flow_type(
Flow_type_id char(3) not null, --流程类别号
Flow_type_name varchar(64) not null, --流程类别名称
In_method_id char(3) not null, --招标方式代号
In_choice_id char(3) not null, --项目选项代号
备注 varchar(256) not null,
)
---标段情况表
create table T_sub_project(
Project_id varchar(32) not null, ---工程编号
Sub_pro_id char(2) not null, -- 标段编号
Flow_type_id char(3) not null, --流程类别号
Sub_pro_name varchar(64) not null,--标段名称(招标项目名称)
Usb_no varchar(64) not null, --密码锁号
In_method_id char(3) not null, --招标方式代号
In_scope_id char(3) not null, --招标范围代号
In_choice_id char(3) not null, --项目选项代号
Proj_type_id char(3) not null, --项目性质代号
Engi_type_id char(1) not null, --工程性质代号
Pack_type char(1) not null, ---发包方式
Grade_type_idv char(1) not null,--评分类别号
Flag_done char(1) not null,--完成标志
Flag_forcebreak char(1) not null,--强制中断标志
备注 varchar(256) not null,
)

--创建一个数据库名为‘sql_test'

create database sql_test
go
--打开数据库 sql_test
use sql_test
go
--建立学生表
create table 学生
(学生编号 char(4) primary key, 学生名字 varchar(50)not null)
go
--修改学生表
alter table 学生
add 班级编号 char(4) null --添加班级编号字段
-- (注意如果添加的字段不为空的话,是不能被添加的)
go
--建立班级表
create table 班级
(班级编号 char(4) primary key ,班级名称 varchar(50)not null)
go
--建立课程表
create table 课程
(课程编号 char(4) primary key ,课程名称 varchar(50) not null,开课日期 datetime )
go
--修改课程表
alter table 课程
add 课程代号 varchar(10) null --添加课程代号字段
go
alter table 课程
drop column 开课日期 --删除开课日期字段
go
alter table 课程
alter column 课程名称 varchar(20) not null --修改课程名称字段
go
--建立一个product_test_one 表,与下个表类似,只不过在constraint前面有个‘逗号'不影响执行
create table product_test_one
(
id char(10) not null, name varchar(20) null, price money default 20.5,quantity smallint null, constraint pk_id primary key clustered (id)
)
go
--建立一个product_test_two 表
create table product_test_two
(
id char(10) not null, name varchar(20) null, price money default 20.5,quantity smallint null constraint pk_id2 primary key clustered (id)
)
go
--删除表 pruduct_test_one表
drop table product_test_one
go
--建立一个student表,使其中的 name 字段具有唯一性
create table student
(
id char(8), name char(10) --表字段
constraint pk_id primary key (id), --添加一个主键约束
constraint uk_name unique (name) --添加一个唯一性约束
)
go
--建立一个student4表,同上 (注意:constraint 与constraint 之间一定要有逗号,否则出错!)
create table student4
(
id char(8), name char(10) --表字段
constraint pk_id4 primary key (id), constraint uk_name4 unique (name)
)
go
-- 删除表student4
drop table student4
go
--建立一个student3表,同上
create table student3
(
id char(8), name char(10), --表字段
constraint pk_id3 primary key (id) ,constraint uk_name3 unique (name)
)
go
--删除表student3
drop table student3
go
--constraint 约束名 check(逻辑条件表达式)
--创建一个‘员工‘表,使其输入的性别字段(sex)只能接受‘m'或则‘f',而不能接受其他数据
--并且为phone字段创建检查约束,限制只能输入类似0108564712之类的数据,而不能随意输入其他数据
create table 员工
(
id char(5),name char(20),sex char(2),phone int
constraint pk_zid primary key (id), --此间一定要有‘逗号'分隔 ,定义主键约束
constraint chk_sex check (sex in (‘f‘,‘m‘) ),
constraint chk_phone check (phone like ‘(010) [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]‘)
)
go
--constraint 约束名 default 约束表达式 [for 字段名]
-- 创建一个表‘默认约束',为字段sex创建默认约束
create table 默认约束
(
id char(5) primary key ,sex varchar(2) constraint con_sex default ‘m‘
)
go
--修改‘默认约束'表
alter table 默认约束
add name varchar(10)null constraint con_name default ‘你好宝贝‘ --增加一个字段为‘name',默认值为‘你好宝贝'
go
--往班级表里添加8条记录
insert into 班级 values(‘bj01‘,‘一班‘)
insert into 班级 values(‘bj02‘,‘二班‘)
insert into 班级 values(‘bj03‘,‘三班‘)
insert into 班级 values(‘bj04‘,‘四班‘)
insert into 班级 values(‘bj05‘,‘五班‘)
insert into 班级 values(‘bj06‘,‘六班‘)
insert into 班级 values(‘bj07‘,‘七班‘)
insert into 班级 values(‘bj08‘,‘八班‘)
go
--显示班级所以记录
select * from 班级
go
--删除班级表里班级编号大于bj06的记录
delete from 班级 where 班级编号>‘bj06‘
go
--显示班级所以记录
select * from 班级
go
--向学生表里添加记录
insert into 学生 values(‘xs01‘,‘one‘,‘bj01‘)
insert into 学生 values(‘xs02‘,‘two‘,‘bj01‘)
insert into 学生 values(‘xs03‘,‘three‘,‘bj01‘)
insert into 学生 values(‘xs04‘,‘four‘,‘bj02‘)
insert into 学生 values(‘xs05‘,‘five‘,‘bj03‘)
insert into 学生 values(‘xs06‘,‘six‘,‘bj02‘)
insert into 学生 values(‘xs07‘,‘seven‘,‘bj04‘)
insert into 学生 values(‘xs08‘,‘eight‘,‘bj03‘)
insert into 学生 values(‘xs09‘,‘nine‘,‘bj04‘)
insert into 学生 values(‘xs10‘,‘ten‘,‘bj05‘)
insert into 学生 values(‘xs11‘,‘eleven‘,‘bj06‘)
insert into 学生 values(‘xs12‘,‘twleve‘,‘bj06‘)
go
--显示学生所有的记录
select * from 学生
go
--连接查询
select * from 学生,班级 where 学生.班级编号=班级.班级编号
go
--以下效果同上一条相同
--选择的连接查询
select 学生.学生编号,班级.班级编号, 学生.学生名字,班级.班级名称 from 学生,班级 where 学生.班级编号=班级.班级编号
go
--以下效果同上一条相同
--查询一班的学生
select* from 学生 where 班级编号 in(select 班级编号 from 班级 where 班级编号=‘bj01‘)
go
--与上面一条查询语句一样功能
select a.学生编号,a.学生名字,a.班级编号 from 学生 as a ,班级 as b where a.班级编号=b.班级编号 and b.班级编号=‘bj01‘
go
--统计一班学生人数
select count(学生编号)as 学生统计 from 学生
where 班级编号 in(select 班级编号 from 班级 where 班级编号=‘bj01‘)
go
--group的用法和count()函数的用法
--统计一班学生人数,并显示学生的名字和所在班级
select count(学生编号)as 学生统计, 学生名字,班级编号 from 学生
where 班级编号 in(select 班级编号 from 班级 where 班级编号=‘bj01‘)
group by 班级编号,学生名字
go

以上所述是小编给大家介绍的SqlServer编写数据库表的操作方式(建库、建表、修改语句),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装、优化、安全等)

    win2008 r2 安装 http://www.jb51.net/article/38048.htm iis的安装 http://www.jb51.net/article/86390.htm php的安装注意事项: 下载非安全线程 版本 nts php 5.2.17 http://www.jb51.net/softs/268745.html 其它版本可以到 http://museum.php.net/php5/里面很多经典的老版本. PHP 5.5 (5.5.36) VC11 x64 Non

  • SQLServer主键和唯一约束的区别

    首先说明一点,主键又称主键约束,它也是一种约束,看下它和唯一约束的创建语法: alter table Person add constraint PK_Id primary key (Id) alter table Person add constraint UQ_Name unique (Name) 主键和唯一约束都要求字段值唯一,除此外,它们还有如下区别: ·同一张表只能有一个主键,但能有多个唯一约束: ·主键字段值不能为NULL,唯一约束字段值可以为NULL: ·主键字段可以做为其他表的外

  • SqlServer2008误操作数据(delete或者update)后恢复数据的方法

    实际工作中,有时会直接在数据库中操作数据,比如对数据进行delete或者update操作,当进行这些操作的时候,如果没有加上 where条件或者where条件不合理,那么导致的结果可想而知,如果操作的又是线上数据库,那么这个后果将会非常严重. 当事情发生后,我们要想办法补救,针对于sqlserver2005数据库,有个很出名的工具Log Exploer.具体操作使用大家可以自行搜索;针对于sqlserver2008也有这样的工具,但是大多是需要付费的...我们尝试用 sqlserver的事务日志

  • SqlServer中如何解决session阻塞问题

    简介 对于数据库运维人员来说创建session或者查询时产生问题是常规情况,下面介绍一种很有效且不借助第三方工具的方式来解决类似问题. 最近开始接触运维工作,所以自己总结一些方案便于不懂数据库的同事解决一些不太紧要的数据库问题.类似方法很多理论也很多,我就不做深究,就是简单写一个方案,便于菜鸟使用的. 阻塞理解 在Sql Server 中当一个数据库会话中的事务正锁定一个或多个其他会话事务想要读取或修改的资源时,会产生阻塞(Blocking).通常短时间的阻塞没有问题,且是较忙的应用程序所需要的

  • SqlServer 英文单词全字匹配详解及实现代码

    SqlServer英文单词全字匹配 环境:Vs2013+Sql Server2012 问题:现在数据库记录如下: Sentence列保存的是英文的句子,我现在想找出所有包含"I"(单词)的句子,如果我用 Sentence like '%I',作为条件的话,那么像上图选中的那条有个单词"it"(不区分大小写的情况下),它也会被Select出来,而我只想找出含有"I"这个单词的句子的记录. 解决:SqlServer提供了模式匹配,类似于正则,详细内容

  • sql server 自定义分割月功能详解及实现代码

    在最近的项目开发过程中,遇到了Sql server自动分割月的功能需求,这里在网上整理下资料. 1.为何出现自定义分割月的需求 今天梳理一个平台的所有函数时,发现了一个自定义分割月函数,也就是指定分割月的开始日索引值(可以从1-31闭区间内的任何一个值)来获取指定日期所对应的分割月数值.这个函数当时是为了解决业务部门获取非标准月(标准月就是从每个月的第一天到最后一天组成一个完成的标准月份)的统计汇总数据的.例如:如果指定分割月的开始日索引值为5则表示某个月的5号到下个月的4号之间作为一个完整的分

  • SqlServer存储过程实现及拼接sql的注意点

    这里我昨天碰到的问题就是执行一段根据变量tableName对不同的表进行字段状态的更改.由于服务器原因,我不能直接在数据访问层写SQL,所以只好抽离出来放到存储过程里面. 这里就出现了一个问题,我花费了好久才弄通! 其实就是很简单的一个SQL语句: update table1 set field1=value1,field2 = value2 where id = id 我写成什么样子了呢?大家且看: declare @tableName nvarchar(50), @field1 int, @

  • SQLSERVER简单创建DBLINK操作远程服务器数据库的方法

    本文实例讲述了SQLSERVER简单创建DBLINK操作远程服务器数据库的方法.分享给大家供大家参考,具体如下: --配置SQLSERVER数据库的DBLINK exec sp_addlinkedserver @server='WAS_SMS',@srvproduct='',@provider='SQLOLEDB',@datasrc='10.131.20.100' exec sp_addlinkedsrvlogin 'WAS_SMS','false', NULL,'CustomSMS','Sql

  • 获取SqlServer存储过程定义的三种方法

    存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行. 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数.输出参数.返回单个或多个结果集以及返回值. 由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快.同时由于在调用时只需用提供存储过程名和必要的参数信息,所以在一定程度上也可以减少网络流量.简单网络负担. 存储过程的优点 A. 存储

  • SqlServer查询和Kill进程死锁的语句

    查询死锁进程语句 select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT' 杀死死锁进程语句 kill spid 下面再给大家分享一段关于sqlserver检测死锁;杀死锁和进程;查看锁信息 --检测死锁 --如果发生死锁了,我们怎么去检测具体发生死锁的是哪条SQL语句或存储过程?

  • C#访问SQLServer增删改查代码实例

    一个专门实现访问sql server数据库增删改查的操作代码,分享给大家,具体内容如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data; usi

随机推荐