数据库怎么创建表(用SQL语句创建数据库和表)

2020年8月22日 评论 5

数据库查询如何创建表(用SQL句子建立数据库和表)--------建立数据库

----use master

----GO

----IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = 'test1')

----DROP DATABASE test1

----GO

----CREATE DATABASE test1

------建立老师表

--use test1

--go

--if exists (select name from test1.dbo.sysobjects where name ='teacher')

--drop table teacher

--create table teacher

--(

--tno int not null primary key,

--tname nvarchar(15)

--)

--go

----插进数据信息到老师表格中

--insert into teacher(tno,tname) values(1,'小房子');

--insert into teacher(tno,tname) values(2,'DAVA');

--insert into teacher(tno,tname) values(3,'刘局');

--insert into teacher(tno,tname) values(4,'张厚');

---- ----建立学员表

----use test1

---- go

---- if exists(select name from test1.dbo.sysobjects where name ='student')

---- drop table studnet

----create table student

---- (

---- sno int not null primary key,

---- sname nvarchar(15) not null,

---- sage datetime not null,

---- ssex char(2) not null

------ )

------go

------插进数据信息

----INSERT INTO student(sno,sname,sage,ssex) VALUES(1,'张三','1980-1-23','男')

----INSERT INTO student(sno,sname,sage,ssex) VALUES(2,'李四','1982-12-12','男')

----INSERT INTO student(sno,sname,sage,ssex) VALUES(3,'张飒','1981-9-9','男')

----INSERT INTO student(sno,sname,sage,ssex) VALUES(4,'丽娅','1983-3-23','女')

----INSERT INTO student(sno,sname,sage,ssex) VALUES(5,'王弼','1982-6-21','男')

----INSERT INTO student(sno,sname,sage,ssex) VALUES(6,'张慧','1984-10-10','女')

----.建立课程安排

--CREATE TABLE [dbo].[course](

-- [cno] [int] NOT NULL PRIMARY KEY,

-- [cname] [nvarchar](20) NOT NULL,

-- [tno] [int] NOT NULL

--)

----建立外键约束,早已存有二张表,我觉得用sql语句创建这二张表的主外键约束关联

----ALTER TABLE 表名1 add constraint 管束名 foreign key(字段名) references 表名2(字段名)

--alter table course add constraint course_to_student foreign key(tno) references teacher(tno);

--ALTER TABLE [dbo].[course] WITH CHECK ADD

--CONSTRAINT [FK_course_teacher] FOREIGN KEY([tno])

--REFERENCES [dbo].[teacher] ([tno])

----插进数据信息

--insert into course(cno,cname,tno) values(1,'企业经营管理',3)

--insert into course(cno,cname,tno) values(2,'马克思主义',1)

--insert into course(cno,cname,tno) values(3,'UML',2)

--insert into course(cno,cname,tno) values(4,'数据库查询',5)

--insert into course(cno,cname,tno) values(5,'物理学',8)

--5.建立成绩单

use test1

if exists(select * from test1.dbo.sysobjects where id=object_id(N'[dbo].[sc]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table sc ----[dbo].[sc]

go

create table sc

(

sno int not null,

cno int not null,

score float not null

)

go

--if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[table_name]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

--drop table [dbo].[table_name]

--GO

--CREATE TABLE [dbo].[table_name] (....)

--GO

--建立外键约束

--alter table [dbo].[sc] with check add constraint [foreign_key1] foreign key([cno]) references [dbo].[course] ([cno])

--alter table [dbo].[sc] with check add constraint [foreign_key2] foreign key([sno]) references [dbo].[student] ([sno])

ALTER TABLE [dbo].[sc] WITH CHECK ADD CONSTRAINT [FK_sc_course] FOREIGN KEY([cno])

REFERENCES [dbo].[course] ([cno])

ALTER TABLE [dbo].[sc] WITH CHECK ADD CONSTRAINT [FK_sc_student] FOREIGN KEY([sno])

REFERENCES [dbo].[student] ([sno])

--删掉外键约束

--第一
步:找到特定表上的外键约束姓名

--exec sp_helpconstraint 'dbo.sc'

--第二步:删掉外键约束

alter table [dbo].[studnet] drop constraint FK_sc_student

--插进数据信息

INSERT INTO sc(sno,cno,score)VALUES(1,1,80)

INSERT INTO sc(sno,cno,score)VALUES(1,2,86)

INSERT INTO sc(sno,cno,score)VALUES(1,3,83)

INSERT INTO sc(sno,cno,score)VALUES(1,4,89)

INSERT INTO sc(sno,cno,score)VALUES(2,1,50)

INSERT INTO sc(sno,cno,score)VALUES(2,2,36)

--INSERT INTO sc(sno,cno,score)VALUES(2,3,43)

INSERT INTO sc(sno,cno,score)VALUES(2,4,59)

INSERT INTO sc(sno,cno,score)VALUES(3,1,50)

INSERT INTO sc(sno,cno,score)VALUES(3,2,96)

--INSERT INTO sc(sno,cno,score)VALUES(3,3,73)

INSERT INTO sc(sno,cno,score)VALUES(3,4,69)

有一篇文章,不清楚是不是对给你协助:

SQL Server的系统软件表以及应用研究

1. SQL Server的系统软件表

Microsoft的SQL Server是一个可伸缩式的性能卓越数据库查询智能管理系统,专为分布式系统远程服务器/网络服务器自然环境而设计方案,SQL Server基本上将全部的配备信息内容、安全系数信息内容和目标信息内容都储存在了它本身的系统软件表格中,而系统软件表存有于每一个单独的数据库查询中,储存一个特殊数据库查询目标信息内容的系统软件表一般称之为数据库查询文件目录,MASTER数据库查询有其独有的系统软件表用以储存全部系统软件和全部数据库查询的信息内容,一般称之为网络服务器文件目录或系统目录。

网络服务器上全部的数据库查询包含MODULE, MASTER等都带有18个具备同样名字、构造的系统软件表,如表SYSOBJECTS用以叙述数据库查询中的目标棗表、主视图、存储过程等,表SYSUSER用以叙述数据库查询的客户,而MASTER数据库查询此外也有13个独立的全局性系统软件表,如表SYSLOGINS用以储存每一个网络服务器的用户名、动态口令和配备信息内容、表SYSDATABASE储存网络服务器上全部数据库查询名、使用者、情况以及他信息内容。

存储过程是嵌入于数据库查询中的编程代码,它与表、主视图等一样是数据库查询的一个构成部分,有别于一般的外界编程代码,它是历经预编译解决的编码,因而具备运作速度更快、高效率的特性,存储过程也是SQL Server的一个关键作用,很多单纯性对于后台管理数据库查询的实际操作一般都交给存储过程来进行以提升系统软件高效率。文中将得出一个存储过程来表明SQL Server系统软件表的运用。

2. SQL Server系统软件表的运用

在运用SQL Server的根据远程服务器/网络服务器系统架构的信息管理系统开发设计中,有时候必须将后台管理SQL Server上的某一数据库查询的表构造都复印出去,便于于开发者查看及最后文本文档的产生。SQL Server自身出示了一个系统软件存储过程(SP_COLUMNS),能够进行对单独表结构的查寻,要是在SLQ Server的ISQL-W专用工具中输入SP_COLUMNS“表名”,并实行就可以获得結果集。但该方式 有很多存在的不足,其关键缺陷是:

1)只有对数据库查询中单独数据分析表开展实际操作,当必须查寻一个数据库查询中全部的表时,必须数次实行系统软件存储过程SP_COLUMNS,因而看起来十分繁杂。

2)查寻結果集中化包括了很多多余的信息内容,欠缺应用的协调能力。

下边大家建立一个存储过程来进行对某一个数据库查询中全部表结构的查寻。

在建立一个数据库查询的另外,系统软件会全自动创建一些系统软件表,仅限于篇数的原因大家在这儿只详细介绍与运用案例相关的三个系统软件表(SYSOBJECTS,SYSCOLUMNS,SYSTYPES)以及有关的字段名。 表SYSOBJECTS为数据库查询内建立的每一个目标(管束,标准,表,主视图,触发器原理等)建立一条纪录。

该表有关字段名的含意以下:

SYSOBJECTS.name 目标名,如:表名,主视图名。

SYSONJECTS.id 目标id。

SYSOBJECTS.type 目标种类(p存储过程,v视图,s系统表,u客户表)。

表SYSCOLUMNS为每一个表、主视图中的每一个列和每一个存储过程的每一个主要参数建立一条纪录。 该表有关字段名的含意以下:(这里的列是指数据库查询中每一个表、主视图中的列)

SYSCOLUMNS.id 该列隶属的表的id,可与SYSOBJECTS.id关联

SYSCOLUMNS.colid 列id,表明该列是表或主视图的第几行

SYSCOLUMNS.type 物理学储存种类,可与SYSTYPES.type关联.

SYSCOLUMNS.length 数据信息的物理学长短。

SYSCOLUMNS.name 列姓名,即字段。

SYSCOLUMNS.Pre 列的精密度级。

SYSCOLUMNS.Scale 列的标度级。

表SYSTYPES为每一个系统软件和每一个客户出示的基本数据类型建立一条纪录,假如他们存有,给出域和初始值,叙述系统软件出示的基本数据类型的行不能变更。

该表有关字段名的含意以下:

SYSTYPES.name 基本数据类型的姓名。

SYSTYPES.type 物理学储存基本数据类型。

在SQL SERVER的公司管理工具(SQL ENTERPRISE MANAGER)中,选中某一数据库查询,建立存储过程print_dbstructure。

源码以下:

if exists (select* from sysobjects where id=object_id( 'dbo.print_dbstructure ')and sysstat & 0xf=4)存储过程

drop procedure dbo. print_dbstructure

GO

CREATE PROCEDURE print_dbstructure

AS

SELECT DISTINCT sysobjects.name, syscolumns.colid,

syscolumns.name, systypes.name, syscolumns.prec, syscolumns.scale

FROM syscolumns, sysobjects, systypes

WHERE sysobjects.id=syscolumns.id AND systypes.type=syscolumns.type AND ((sysobjects. type= 'u '))

GO

最先分辨是不是存有一个名叫print_dbstructure的存储过程,假如存有,就切除它,不然,界定SQL句子创建新的存储过程。从三个系统软件表格中挑选出符合条件的纪录(即该数据库查询中储存在系统软件表格中的客户表信息内容)。

实行时,在ISQL_W专用工具中,选中print_dbstructure所属的数据库查询,实行该存储过程,就可以获得結果集(即该数据库查询中客户表的构造信息内容)。

3. SQL Server系统软件表的应用推广

之上所详细介绍存储过程的关键缺点取决于只有对网络服务器上某一特殊的数据库查询(print_dbstructure所属的数据库查询)开展查寻实际操作,我们可以根据在SQL Server系统软件数据库查询MASTER中创建含有数据库查询名主要参数的系统软件存储过程来处理这一难题,请阅读者自主进行。自然,SQL Server 系统软件表的运用远远不止于止,阅读者也可依文中所详细介绍的方式 去发掘别的好多个系统软件表的运用。

/*建立bbsDB数据库查询*/

use master

if exists(select * from sysdatabases where name='bbsDB')

drop database bbsDB

create database bbsDB

on

(

name='bbsDB_data',

filename='D:\project\bbsDB_data.mdf',

size=10,

filegrowth=20%

)

log on

(

name='bbsDB_log',

filename='D:\project\bbsDB_log.ldf',

size=3,

maxsize=20,

filegrowth=10%

)

/*建立bbsUsers表*/

use bbsdb

if exists(select * from sysobjects where name='bbsUsers')

drop table bbsUsers

create table bbsUsers

(

UID int identity(1,1) not null,--学籍号,标志列

Uname varchar(15) not null,--客户呢称

Upassword varchar(10) not null,--客户登陆密码

Uemail varchar(20),--邮件地址

Usex bit not null,--客户性別

Uclass int,--级别

Uremark varchar(20),--备注名称

UregDate datetime not null,--申请注册时间

Ustate int null, --情况

Upoint int null--客户積分

)

/*建立bbsUsers表格中的管束*/

alter table bbsUsers

add constraint PK_uid primary key(uid),--主键

constraint DF_Upassword default(888888) for Upassword,--密码为888888

constraint DF_Usex default (1) for Usex,--性別默认设置为男

constraint DF_UregDate default (getdate()) for UregDate,--申请注册时间默认设置为系统软件时间

constraint DF_Ustate default(0) for Ustate,--情况默认设置为线下

constraint DF_Upoint default(20) for Upoint,--積分默认设置为20点

constraint CK_Uemail check(Uemail like '%@%'),--电子邮箱务必带有@标记

constraint CK_Upassword check (len(Upassword)>=6)--登陆密码最少为六位

/*建立bbsSection表*/

use bbsdb

if exists(select * from sysobjects where name='bbsSection')

drop table bbsSection

create table bbsSection

(

SID int identity(1,1) not null,--版块型号,全自动提高

Sname varchar(32) not null,--版面名字

SmasterID int not null,--论坛版主客户ID

Sprofile varchar(20) null,--版块介绍

SclickCount int null, --点击量

StopicCount int null--发帖数

)

/*建立bbsSection表格中的管束*/

alter table bbsSection

add constraint PK_sid primary key(sid),--主键

constraint DF_SclickCount default(0) for SclickCount,--点击量默认设置为0

constraint DF_StopicCount default(0) for StopicCount,--发帖数默认设置为0

constraint DF_SmasterID foreign key(SmasterID)references bbsUsers (UID)--外键约束

/*建立bbsTopic表*/

use bbsdb

if exists(select * from sysobjects where name='bbsTopic')

drop table bbsTopic

create table bbsTopic

(

TID int identity(1,1) not null,--贴子序号,全自动提高

TsID int not null,--发帖人ID

TuID int not null,--论坛版主客户ID

TreplyCount int null,--回应总数

Tface int null, --发帖子小表情

Ttopic varchar(20) not null,--题目

Tcontents varchar(30) not null,--文章正文

Ttime datetime null,--发帖子時间

TclickCount int null,--点击量

Tstate int not null,--情况

TlastReply datetime null--回应時间

)

/*建立bbsTopic表的管束*/

alter table bbsTopic

add constraint DF_TreplyCount default(0) for TreplyCount,--回应总数默认设置为0

constraint PK_tid primary key(tid),--主键

constraint DF_TclickCount default (0) for TclickCount,--点击量默认设置为0

constraint DF_Tstate default (1) for Tstate,--情况默认设置为1

constraint DF_Ttime default (getdate()) for Ttime,--发帖子時间默认设置为系统软件时间

constraint CK_Tcontents check (len(Tcontents)>=6),--文章正文务必超过六个标识符

constraint CK_TlastReply check ((TlastReply)>(Ttime)),--最终回应時间务必晚于发帖子時间

constraint DF_TsID foreign key(TsID)references bbsSection (SID),--外键约束

constraint DF_TuID foreign key(TuID)references bbsUsers (UID)--外键约束

/*建立bbsReply表*/

use bbsdb

if exists(select * from sysobjects where name='bbsReply')

drop table bbsReply

create table bbsReply

(

RID int identity(1,1) not null,--自动编号,贴子序号

RtID int not null,--主贴ID

RsID int not null,--版块ID

RuID int not null,--回贴人ID

Rface int null, --回贴小表情

Rcontents varchar(30) not null,--文章正文

Rtime datetime null,--回贴時间

RclickCount int null--点击量

)

/*建立bbsReply表的管束*/

alter table bbsReply

add constraint DF_Rtime default (getdate()) for Rtime,--回贴時间默认设置为系统软件时间

constraint CK_Rcontents check
(len(Rcontents)>=6),--文章正文务必超过六个标识符

constraint DF_RtID foreign key(RtID)references bbsTopic (TID),--外键约束

constraint DF_RsID foreign key(RsID)references bbsSection (SID),--外键约束

constraint DF_RuID foreign key(RuID)references bbsUsers (UID)--外键约束

数据库怎么创建表(用SQL语句创建数据库和表)

如有转载,请注明本文链接: http://www.luding333.com/176166.html

AD:【内容仅限学习交流使用,如有侵权联系作者删除】

商品标题怎么写(商品的标题语该如何去写) 创业新闻

商品标题怎么写(商品的标题语该如何去写)

产品标题怎么写(产品的题目语该如何去写)京东商城商品标题的设定和提升,这一还可以说成一个老调重弹的层面了。终究题目的必要性,也是许多店家都掌握的。那麼应当如何去提升呢?很有可能還是有一部分店家对于此事...
相关性分析结果怎么看(要做相关性分析) 创业新闻

相关性分析结果怎么看(要做相关性分析)

有关明确是要剖析不一样要素间的关联性? 相关分析关键用以:(1)分辨2个或好几个自变量中间的应用统计学关系;(2)假如存有关系,进一步剖析关系抗压强度和方位。 那麼,哪些的科学研究能够开展相关分析呢?...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: