使用SQL语句创建数据库创建表.ppt
使用SQL语句创建数据库、表,创建数据库,创建一个只含一个数据文件和一个事务日志文件的数据库,CREATE DATABASE 数据库名 ON PRIMARY(NAME=数据文件的逻辑名称,FILENAME=数据文件的路径和文件名,SIZE=数据文件的初始容量,MAXSIZE=数据文件的最大容量,FILEGROWTH=数据文件的增长量),n LOG ON(NAME=事务日志文件的逻辑名称,FILENAME=事务日志文件的物理名称,SIZE=事务日志文件的初始容量,MAXSIZE=事务日志文件的最大容量,FILEGROWTH=事务日志文件的增长量),n 说明,Transact-SQL的语法规则,create database student1on(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 studentON 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,使用模板:Create dababase中的Create Database on Multiple Files Groups.tql,使用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),建表示例 1,USE stuDB-将当前数据库设置为stuDB GOCREATE 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,NUMERIC(18,0)代表18位数字,小数位数为0,IDENTITY(起始值,递增量),建表示例 2,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 jxglGOIF EXISTS(SELECT*FROM sysobjects WHERE name=xkqk and type=U)DROP TABLE xkqkCREATE TABLE xkqk(.)GO,插入(添加)数据,注意:插入字符型和日期型数据时必须用单引号。,insert into recReipt values(R081008001,2008-10-8,杭州娃哈哈,无),