当前位置:文档之家› 使用SQL语句创建数据库创建表

使用SQL语句创建数据库创建表


举例
❖例2、可以简单地来创建数据库, CREATE DATABASE mytest
▪ 没有指定主文件名,在默认的情况 下,命名主文件为mytest.mdf,
▪ 日志文件名为mytest_log.ldf。 ▪ 主文件和日志文件的大小都同Model
数据库的主文件和日志文件大小一 致,并且可以自由增长。
WHERE name=’xkqk’ and type=‘U’ ) DROP TABLE xkqk CREATE TABLE xkqk ( ….. ) GO
插入(添加)数据
插入 一个 元组
INSERT [INTO] 表名[(属性列1[,属性 列2]…)]
VALUES (常量1[,常量2]…)
插入 子查询 结果
xkqk选课情况
字段名
sno kch grade
说明
学号 课程号 分数
字段数据类 型 char char smallint
字段大 小
15
4
约束
主键;外键 主键;外键 [0,100]
❖create table xkqk
❖ (sno char(15) foreign key references student(sno),

FILENAME = 'E:\class2.ndf',

SIZE = 40MB,

MAXSIZE = 100MB,

FILEGROWTH = 10MB)
❖ LOG ON

( NAME = class1_log,

FILENAME = 'E:\classlog1.ldf',

SIZE = 15MB),
❖kch char(4) foreign key references kcda(kch), ❖grade smallint check(grade between 0 and 100),
❖constraint pk_xkqk primary key(sno,kch))
使用ALTER TABLE语句修改表结构 ❖使用ALTER TABLE语句可以为表
使用SQL语句创建表
CREATE TABLE 表名 (
字段1 数据类型 列的特征, 字段2 数据类型 列的特征, ...
)
❖列的特征: ❖是否为主键 ❖包括该列是是否为空(NULL) ❖、是否是标识列(自动编号)、 ❖是否有默认值、等。
student
字段名 sno sname ssex sbirth
练习:用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)
INSERT [INTO] 表名[(属性列1[,属性列 2]…)] SELECT 语句
❖注意:插入字符型和日期型数据 时必须用单引号。
❖ insert into recReipt ❖ values (R081008001,2008-10-8,杭州娃哈哈,无)
删除数据库
❖格式:DROP DATABASE 数据库名 ❖例、将mytest数据库删除
▪ Drop database mytest ❖删除数据库将删除数据库所使用的数
据库文件和磁盘文件。
例3、复杂一点的数据库创建范例
❖数据库名称为Student,
▪ 第一个数据文件逻辑名称为class1,物理文件名为 E:\class1.mdf, 初始大小20MB,最大尺寸为无限 大,增长速度为20%。
使用SQL语句创建数据库、表
创建数据库
❖创建一个只含一个数据文件和一个 事务日志文件的数据库
❖CREATE DATABASE 数据库名
[ON [PRIMARY] {(NAME=数据文件的逻辑名称, FILENAME='数据文件的路径和文件名', SIZE=数据文件的初始容量, MAXSIZE=数据文件的最大容量, FILEGROWTH=数据文件的增长量)}[,…n] LOG ON {(NAME=事务日志文件的逻辑名称, FILENAME='事务日志文件的物理名称', SIZE=事务日志文件的初始容量, MAXSIZE=事务日志文件的最大容量, FILEGROWTH=事务日志文件的增长量) }[,…n]] 说明
Transact-SQL的语法规则
规则
描述
|(竖线) [](方括号)
分隔括号或大括号内的语法项目。只 能选择一个项目
可选语法项目。不必键入方括号
{}(大括号) 必选语法项目。不必键入大括号
[,…n]
表示前面的项可重复n次,每一项由逗 号分隔
参数
数据库名称 数据文件逻辑名 数据文件物理名 数据文件初始大小 数据文件最大值 数据文件增长值 事务日志文件逻辑名 日志文件物理名 日志文件初始大小 日志文件最大值 日志文件增长值
❖alter table receipt add checker char(10)
❖③ 将Dealer列的数据类型该为字符型, 长度为10。
❖alter table receipt alter column dealer char(10)
❖④ 删除Dealer列。
❖alter table receipt drop column dealer
参数值
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)
说明 学号
字段数据类 字段大 约束


char
15
主键
姓名
char
10
Not null
性别
char
2
出生年月 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,
▪ 第二个的数据文件Class2, E:\class2.ndf,初始 大小40MB,最大尺寸为100MB,增长速度 10MB。
▪ 2个15MB的事务日志文件,事务日志文件的逻辑 名为class1_log和class2_log,物理文件名为 E:\classlog1.ldf和classlog2.ldf。
❖⑤ 删除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
❖ CREATE DATABASE student
❖ ON PRIMARY

( NAME = class1,

FILENAME = 'E:\class1.mdf',

SIZE = 20MB,

MAXSIZE = unlimi),

( NAME = class2,
添加或删除列,也可以修改列性质。
❖使用ALTER TABLE语句修改Receipt表, 具体要求如下:
❖① 插入Dealer(经手人)列,数据类 型为整型。
❖ alter table receipt add dealer int
❖② 插入Checker(审核人)列,数据类 型为字符型,长度为10。
❖ ssex char(2) check(ssex in('男','女')) default('女'),
❖ sbirth datetime check(sbirth between '1990-11' and '1992/12/31'),
❖email char(40) check(email like '%@%'))

( NAME = class2_log,

FILENAME = 'E:\classlog2.ldf',

SIZE =15MB)
❖ GO
▪ 使用模板: ▪ Create dababase中的 ▪ Create Database on Multiple
Files Groups.tql
❖ 建表的语法
相关主题