SQL Server 语法 使用SQL语句创建数据库、表

本文详细介绍了如何使用SQL语句创建数据库、表及其结构,并通过示例演示了创建复杂数据库的过程。此外,还展示了如何使用SQL语句插入、修改表结构及数据,以及如何删除表。教程覆盖了从数据库创建到基本操作的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
v创建一个只含一个数据文件和一个事务日志文件的数据库
 
vCREATE   DATABASE   数据库名

     [ON  [PRIMARY]

    {(NAME=数据文件的逻辑名称,

    FILENAME='数据文件的路径和文件名',

    SIZE=数据文件的初始容量,

    MAXSIZE=数据文件的最大容量,

    FILEGROWTH=数据文件的增长量)}[,…n]

    LOG ON

    {(NAME=事务日志文件的逻辑名称,

   FILENAME='事务日志文件的物理名称',

    SIZE=事务日志文件的初始容量,

    MAXSIZE=事务日志文件的最大容量,

    FILEGROWTH=事务日志文件的增长量) }[,…n]]                说明

Transact-SQL的语法规则

规则

描述

|(竖线)

分隔括号或大括号内的语法项目。只能选择一个项目

[](方括号)

可选语法项目。不必键入方括号

{}(大括号)

必选语法项目。不必键入大括号

[,…n]

表示前面的项可重复n次,每一项由逗号分隔

参数

参数值

数据库名称

Student1

数据文件逻辑名

Student1_dat

数据文件物理名

D:\student1_dat.mdf

数据文件初始大小

10MB

数据文件最大值

50MB

数据文件增长值

原来的20%

事务日志文件逻辑名

Student1_log

日志文件物理名

D:\student1_log.ldf

日志文件初始大小

4MB

日志文件最大值

25MB

日志文件增长值

5MB

create database student1
on
(name=student1_dat,
filename='d:\student_dat.mdf',
size=10,
maxsize=50,
filegrowth=20%)
log on
(name=student1_log,
filename='d:\student_log.ldf',
size=4,
maxsize=25,
filegrowth=5)
 
举例
2、可以简单地来创建数据库, CREATE  DATABASE  mytest
§没有指定主文件名,在默认的情况下,命名主文件为mytest.mdf,
§日志文件名为mytest_log.ldf。
§主文件和日志文件的大小都同Model数据库的主文件和日志文件大小一致,并且可以自由增长。
删除数据库
格式:DROP DATABASE 数据库名
例、将mytest数据库删除
§Drop database mytest
删除数据库将删除数据库所使用的数据库文件和磁盘文件。
 
 
例3、复杂一点的数据库创建范例
数据库名称为Student,
§第一个数据文件逻辑名称为class1,物理文件名为E:\class1.mdf, 初始大小20MB,最大尺寸为无限大,增长速度为20%。
§第二个的数据文件Class2, E:\class2.ndf,初始大小40MB,最大尺寸为100MB,增长速度10MB。
§2个15MB的事务日志文件,事务日志文件的逻辑名为class1_log和class2_log,物理文件名为E:\classlog1.ldf和classlog2.ldf。
 
CREATE DATABASE student
ON  PRIMARY
  ( NAME = class1,
          FILENAME = 'E:\class1.mdf',
          SIZE = 20MB,
          MAXSIZE = unlimited,
          FILEGROWTH = 20%),
  ( NAME = class2,
    FILENAME = 'E:\class2.ndf',
          SIZE = 40MB,
          MAXSIZE = 100MB,
          FILEGROWTH = 10MB)
LOG ON
  ( NAME = class1_log,
    FILENAME = 'E:\classlog1.ldf',
          SIZE = 15MB),
  ( NAME = class2_log,
    FILENAME = 'E:\classlog2.ldf',
          SIZE =15MB)
GO
 
使用SQL语句创建表

CREATE TABLE  表名

 (

    字段1 数据类型 列的特征,

    字段2 数据类型 列的特征,

     ...

)

列的特征:
是否为主键
包括该列是是否为空(NULL)
、是否是标识列(自动编号)、
是否有默认值、等。
student

字段名

说明

字段数据类型

字段大小

约束

sno

学号

char

15

主键

sname

姓名

char

10

Not null

ssex

性别

char

2

(‘男’,‘女’);默认值为‘男’

sbirth

出生年月日

datetime

[1990-1-1,1992-12-31]

email

E-mail

varchar

40

包含@

create table student
(sno char(15)  primary key,
sname char(10)  not null,
ssex char(2) check(ssex in('男','女')) default('女'),
 sbirth datetime check(sbirth between '1990-1-1' and '1992/12/31'),
email char(40)  check(email like '%@%'))
练习:用creat bable语句创建Kcda(课程档案)表

字段名

说明

字段数据类型

字段大小

约束

kch

课程号

char

4

主键

kcmc

课程名称

char

10

Not null

zxs

总学时

smallint

 
create table kcda
(kch char(4) primary key,
kcmc char(10) not null,
zxs smallint)
 

xkqk选课情况

字段名

说明

字段数据类型

字段大小

约束

sno

学号

char

15

主键;外键

kch

课程号

char

4

主键;外键

grade

分数

smallint

[0,100]

 
create table xkqk
(sno char(15) foreign key references student(sno),
kch char(4) foreign key references kcda(kch),
grade smallint check(grade between 0 and 100),
constraint pk_xkqk primary key(sno,kch))
 

USE stuDB   --将当前数据库设置为stuDB

GO

CREATE  TABLE  stuInfo    /*-创建学员信息表-*/

(

 stuName  VARCHAR(20)  NOT  NULL ,  --姓名,非空(必填)

 stuNo   CHAR(6)  NOT  NULL,   --学号,非空(必填)

 stuAge  INT  NOT  NULL,  --年龄,INT类型默认为4个字节

 stuID  NUMERIC(18,0),     --身份证号

 stuSeat   SMALLINT  IDENTITY (1,1),   --座位号,自动编号

 stuAddress   varchar(60)   --住址,允许为空,即可选输入

)

GO

CREATE TABLE stuMarks

(

 ExamNo  CHAR(7)  NOT NULL,  --考号

 stuNo  CHAR(6)  NOT NULL,   --学号

 writtenExam  numeric(4,1)  NOT NULL,  --笔试成绩

 LabExam numeric(4,1) NOT NULL    --机试成绩

)

GO

使用ALTER TABLE语句修改表结构

使用ALTER TABLE语句可以为表添加或删除列,也可以修改列性质
使用ALTER TABLE语句修改Receipt表,具体要求如下:
① 插入Dealer(经手人)列,数据类型为整型。
 alter table receipt add dealer int
 
② 插入Checker(审核人)列,数据类型为字符型,长度为10。
alter table receipt add checker char(10)
 
③ 将Dealer列的数据类型该为字符型,长度为10。
alter table receipt alter column dealer char(10)
④ 删除Dealer列。
alter table receipt drop column  dealer
⑤ 删除Checker列。
 
删除表的语法:
DROP  TABLE  表名
IF EXISTS(SELECT  * FROM  sysobjects  WHERE  name=’xkqk’ and type=‘U’ )
    DROP  TABLE  xkqk
 

USE jxgl

GO

IF EXISTS(SELECT * FROM  sysobjects  WHERE  name=’xkqk’ and type=‘U’ )

    DROP  TABLE  xkqk

CREATE  TABLE  xkqk

(

…..

)

GO

插入(添加)数据
 

插入

一个

元组

INSERT [INTO]  表名[(属性列1[,属性列2]…)]  

 VALUES (常量1[,常量2]…)

插入

子查询

结果

INSERT [INTO] 表名[(属性列1[,属性列2]…)]   SELECT 语句

v注意:插入字符型和日期型数据时必须用单引号。
 
insert into recReipt
values (R081008001,2008-10-8,杭州娃哈哈,无)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值