SQL Server 语法 使用SQL语句创建数据库、表
2011-10-30 20:33
666 查看
v创建一个只含一个数据文件和一个事务日志文件的数据库
vCREATE DATABASE 数据库名
[ON [PRIMARY]
{(NAME=数据文件的逻辑名称,
FILENAME='数据文件的路径和文件名',
SIZE=数据文件的初始容量,
MAXSIZE=数据文件的最大容量,
FILEGROWTH=数据文件的增长量)}[,…n]
LOG ON
{(NAME=事务日志文件的逻辑名称,
FILENAME='事务日志文件的物理名称',
SIZE=事务日志文件的初始容量,
MAXSIZE=事务日志文件的最大容量,
FILEGROWTH=事务日志文件的增长量) }[,…n]]
说明
Transact-SQL的语法规则
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
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(课程档案)表
create table kcda
(kch char(4) primary key,
kcmc char(10) not null,
zxs smallint)
xkqk选课情况
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,杭州娃哈哈,无)
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 |
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 | 包含@ |
(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 |
(kch char(4) primary key,
kcmc char(10) not null,
zxs smallint)
xkqk选课情况
字段名 | 说明 | 字段数据类型 | 字段大小 | 约束 |
sno | 学号 | char | 15 | 主键;外键 |
kch | 课程号 | char | 4 | 主键;外键 |
grade | 分数 | smallint | [0,100] |
(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,杭州娃哈哈,无)
相关文章推荐
- 如何使用sql语句创建数据库–SQL Server 2012 (Win 8)
- 1.在sql server 2000 或者 2005中使用sql语句创建数据库
- SQL server 数据库的表的创建与使用T-SQL语句操控数据表
- 使用T-SQL语句创建数据库2
- 创建数据库、表、主外键、各种约束、存储过程、视图、索引、事务使用、触发器、创建登录账号、数据库用户 Sql语句示例
- Visual C# 2008+SQL Server 2005 数据库与网络开发-- 9.3 XML相关的SQL语句使用
- sql server中利用sql语句如何创建角色和用户&数据库安全设置 给出了实例
- 在SQL Server中创建用户角色及授权(使用SQL语句)
- 在SQL Server中创建用户角色及授权(使用SQL语句)
- S2 1本2章 使用SQL语句创建,删除数据库,表等
- 使用SQL语句创建和删除数据库
- 用 SQL 语句创建数据库用户(SQL Server 2005)(
- 使用sql语句创建修改SQL Server标识列(即自动增长列)
- 课后作业11--使用SQL语句创建一个数据库
- SQLServe_使用T-SQL语句创建数据库、创建表以及表的约束
- 使用SQL语句创建登录名,并为指定数据库分配制定权限
- 使用SQL语句创建数据库
- 使用SQL语句创建数据库
- sql语法复习:增删查改,各种数据库对象创建和函数使用
- 使用 SQL 语句创建 School 数据库(包括参数)、 TblClass 表、 TblStudent 表。