《使用sql语句创建数据库创建表》由会员分享,可在线阅读,更多相关《使用sql语句创建数据库创建表(30页珍藏版)》请在金锄头文库上搜索。
1、使用SQL语句创建数据库、表,创建数据库,创建一个只含一个数据文件和一个事务日志文件的数据库,CREATE DATABASE 数据库名 ON PRIMARY (NAME=数据文件的逻辑名称, FILENAME=数据文件的路径和文件名, SIZE=数据文件的初始容量, MAXSIZE=数据文件的最大容量, FILEGROWTH=数据文件的增长量),n LOG ON (NAME=事务日志文件的逻辑名称, FILENAME=事务日志文件的物理名称, SIZE=事务日志文件的初始容量, MAXSIZE=事务日志文件的最大容量, FILEGROWTH=事务日志文件的增长量) ,n 说明,Transact
2、-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, 日志文件名为mytes
3、t_log.ldf。 主文件和日志文件的大小都同Model数据库的主文件和日志文件大小一致,并且可以自由增长。,删除数据库,格式:DROP DATABASE 数据库名 例、将mytest数据库删除 Drop database mytest 删除数据库将删除数据库所使用的数据库文件和磁盘文件。,例3、复杂一点的数据库创建范例,数据库名称为Student, 第一个数据文件逻辑名称为class1,物理文件名为E:class1.mdf, 初始大小20MB,最大尺寸为无限大,增长速度为20%。 第二个的数据文件Class2, E:class2.ndf,初始大小40MB,最大尺寸为100MB,增长速度10
4、MB。 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
5、 = 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 数据类型 列的特征, . ),列的特征: 是否为主键 包括该列是是否
6、为空(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
7、 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 -将
8、当前数据库设置为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,NUMERIC (18,0) 代表1
9、8位数字,小数位数为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(
10、经手人)列,数据类型为整型。 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 recReipt values (R081008001,2008-10-8,杭州娃哈哈,无),