SQL语句创建表

使用SQL语句创建如下表1、字段说明系别编号系名称系主任字段名称depNodepNamedepMan2、教师信息表(Teacher表)(编号,姓名,性别,出生日期,工资,... 使用SQL语句创建如下表
1、字段说明 系别编号 系名称 系主任
字段名称 depNo depName depMan
2、教师信息表(Teacher表)(编号,姓名,性别,出生日期,工资,聘用时间,系别编号) 主码:tNo,性别只能取“男”或“女”
字段说明 教师编号 姓名性别 出生日期 工资 聘用日期 系别编号
字段名称 tNo tName tSex tBirthDate tSalary tHairDate depNo
要创建的第一个表里面,主码:depNo
展开
 我来答
酒好烂
推荐于2019-10-08 · TA获得超过3308个赞
知道答主
回答量:42
采纳率:0%
帮助的人:1.2万
展开全部

1.定义基本表语句

语法:

USE 数据库名 CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值',

列名 类型(大小) DEFAULT'默认值',  

2.定义完整性约束

语法:

USE 数据库名 CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,

列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,  

列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,

约束定义

(1)NULL | NOT NULL  用于定义列的空值约束。(定义列)  (下面的蓝色部份是单选其中之一)

语法:CONSTRAINT 约束名 NULL | NOT NULL

例:下面的 SQL 语句强制 "Id_P" 列和 "LastName" 列不接受 NULL 值:

(3)PRIMARY KEY 约束唯一标识数据库表中的每条记录。(即可以定义列也可能定义表)

语法:CONSTRAINT 约束名 PRIMARY KEY (列名, 列名, ... ...);

说明:用于定义基本表的主键。与UNIQUE约束类似,PRIMARY KEY 约束也是通过建立唯一索引来保证基本表在主键列(某一个列或多个列的组合)上取值的唯一性。然而它们之间也存在着很大差别:在一个基本表中只能定义一个 PRIMARY KEY 约束,却能定义多个UNIQUE约束。如果为基本表的某一个列或多个列的组合指定了 PRIMARY KEY 约束,那么其中在任何一个列都不能出现空值;而 UNIQUE 约束允许出现空值。

下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 PRIMARY KEY 约束:

(2)UNIQUE  约束唯一标识数据库表中的每条记录。(即可以定义列也可能定义表)

语法:CONSTRAINT 约束名 UNIQUE (列名, 列名, ... ...);

说明:用于指定基本表在某一个列或多个列的组合上取值必须唯一。定义了UNIQUE约束的那些列称为唯一键。如果为基本表的革一列或多个列的组合指定了UNIQUE约束,则系统将为这些列建立唯一索引,从而保证在表中的任意两行记录在指定的列或列组合上不能取同样的值。

注意:

a. UNIQUE 约束唯一标识数据库表中的每条记录。

b. UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。

c. PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

d.请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

(4)FOREIGN KEY 外键 (即可以定义列也可能定义表)

语法:CONSTRAINT 约束名 FOREIGN KEY (列名, 列名, ... ...) REFERENCES (列名, 列名, ... ...) ;

说明:指定某一个列或多个列的组合作为外部键,并在外部键和它所引用的主键或唯一键之间建立联系。在这种联系中,包含外部键的基本表称为从表,包含外部键引用的主键或唯一键的表称为主表。一旦为一列或列的组合定义了 FOREIGN KEY 约束,系统将保证从表在外部键上的取值要么是主表中某一个主键值或唯一键值,要么取空值。

下面的 SQL 在 "Orders" 表创建时为 "Id_P" 列创建 FOREIGN KEY:

全安梦H4
推荐于2019-11-12 · TA获得超过1638个赞
知道答主
回答量:5
采纳率:0%
帮助的人:751
展开全部

用SQL语句创建表----1

  • 数据库中的所有数据存储在表中。数据表包括行和列。列决定了表中数据的类型。行包含了实际的数据。

  • 例如,数据库pubs中的表authors有九个字段。其中的一个字段名为为au_lname,这个字段被用来存储作者的名字信息。每次向这个表中添加新作者时,作者名字就被添加到这个字段,产生一条新记录。

  • 通过定义字段,你可以创建一个新表。每个字段有一个名字和一个特定的数据类型(数据类型在后面的“字段类型”一节中讲述),例如字段au_lname存储的是字符型数据。一个字段也可以存储其它类型的数据。

  • 使用SQL Sever,创建一个新表的方法是很多的。你可以可执行一个SQL语句或使用SQL事务管理器(SQL Enterprise Manager)来创建一个新表。在下一节里,你将学会如何用SQL语句来创建一个新表。

一、用CREATE语句创建表

注意:如果你还没有建立自己的数据库,现在就跳回到第三章创建这个库。你绝不能向master,tempdb或任何其他任何系统数据库中添加数据。

从SQL Sever程序组(在任务栏中)中启动ISQL/w程序。出现查询窗口后,从窗口顶部的下拉列表中选择你在第三章所创建的数据库。下一步,在查询窗口中键入下面的SQL语句,单击执行查询按钮,执行这个语句:

CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate DATETIME)

如果一切正常,你会在结果窗口中看到如下的文字(如果出现异常,请参阅第三章):

This command dit not return data ,and it did not return any rows

二、字段类型

不同的字段类型用来存放不同类型的数据。创建和使用表时,你更应该理解五种常用的字段类型:字符型,文本型,数值型,逻辑性和日期型。

(1)字符型数据

字符型数据非常有用。当你需要存储短的字符串信息时,你总是要用到字符型数据。例如,你可以把从HTML form的文本框中搜集到的信息放在字符型字段中。

要建立一个字段用来存放可变长度的字符串信息,你可以使用表达式 VARCHAR。考虑你前面创建的表guestbook:

CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate DATETIME)

在 这个例子中,字段visitor的数据类型为VARCHAR。注意跟在数据类型后面的括号中的数字。这个数字指定了这个字段所允许存放的字符串的最大长 度。在这个例子中,字段visitor能存放的字符串最长为四十个字符。如果名字太长,字符串会被截断,只保留四十个字符。

VARCHAR类型可以存储的字符串最长为255个字符。要存储更长的字符串数据,可以使用文本型数据(下一节中讲述)。

另一种字符型数据用来存储固定长度的字符数据。下面是一个使用这种数据类型的例子:

CREATE TABLE guestbook (visitor CHAR(40),comments TEXT,entrydate DATETIME)

在这个例子中,字段visitor被用来存储四十个字符的固定长度字符串。表达式CHAR指定了这个字段应该是固定长度的字符串。

VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。假如你向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates。当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度。

现在假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。

当你建立自己的站点时,你会发现使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段时,你不需要为剪掉你数据中多余的空格而操心。

VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要。

(2)文本型数据

字符型数据限制了字符串的长度不能超过255个字符。而使用文本型数据,你可以存放超过二十亿个字符的字符串。当你需要存储大串的字符时,应该使用文本型数据。

这里有一个使用文本型数据的例子:

CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate DATETIME)

在这个例子中,字段comments被用来存放访问者对你站点的意见。注意文本型数据没有长度,而上一节中所讲的字符型数据是有长度的。一个文本型字段中的数据通常要么为空,要么很大。

当你从HTML form的多行文本编辑框(TEXTAREA)中收集数据时,你应该把收集的信息存储于文本型字段中。但是,无论何时,只要你能避免使用文本型字段,你就应该不适用它。文本型字段既大且慢,滥用文本型字段会使服务器速度变慢。文本型字段还会吃掉大量的磁盘空间。

警告:

一旦你向文本型字段中输入了任何数据(甚至是空值),就会有2K的空间被自动分配给该数据。除非删除该记录,否则你无法收回这部分存储空间。

(3)数值型数据

SQL Sever支持许多种不同的数值型数据。你可以存储整数、小数、和钱数。

通常,当你需要在表中的存放数字时,你要使用整型(INT)数据。INT型数据的表数范围是从-2,147,483,647到2,147,483,647的整数。下面是一个如何使用INT型数据的例子:

CREATE TABLE visitlog (visitor VARCHAR(40),numvisits INT)

这个表可以用来记录你站点被访问的次数。只要没有人访问你的站点超过2,147,483,647次,nubvisits字段就可以存储访问次数。

为了节省内存空间,你可以使用SMALLINT型数据。SMALLINT 型数据可以存储从-32768到32768的整数。这种数据类型的使用方法与INT型完全相同。

最后,如果你实在需要节省空间,你可以使用TINYINT型数据。同样,这种类型的使用方法也与INT型相同,不同的是这种类型的字段只能存储从0到255的整数。TINYINT型字段不能用来存储负数。

通 常,为了节省空间,应该尽可能的使用最小的整型数据。一个TINYINT型数据只占用一个字节;一个INT型数据占用四个字节。这看起来似乎差别不大,但 是在比较大的表中,字节数的增长是很快的。另一方面,一旦你已经创建了一个字段,要修改它是很困难的。因此,为安全起见,你应该预测以下,一个字段所需要 存储的数值最大有可能是多大,然后选择适当的数据类型。

为 了能对字段所存放的数据有更多的控制,你可以使用NUMERIC型数据来同时表示一个数的整数部分和小数部分。NUMERIC型数据使你能表示非常大的数 ——比INT型数据要大得多。一个NUMERIC型字段可以存储从-10^38到10^38范围内的数。NUMERIC型数据还使你能表示有小数部分的 数。例如,你可以在NUMERIC型字段中存储小数3.14。

当定义一个NUMERIC型字段时,你需要同时指定整数部分的大小和小数部分的大小。这里有一个使用这种数据类型的例子:

CREATE TABLE numeric_data (bignumber NUMERIC(28,0), fraction NUMERIC (5,4) )

当这个语句执行时,将创建一个名为numeric_data的包含两个字段的表。字段bignumber可以存储直到28位的整数。字段fraction可以存储有五位整数部分和四位小数部分的小数。

一个NUMERIC型数据的整数部分最大只能有28位,小数部分的位数必须小于或等于整数部分的位数,小数部分可以是零。

你 可以使用INT型或NUMERIC型数据来存储钱数。但是,专门有另外两种数据类型用于此目的。如果你希望你的网点能挣很多钱,你可以使用MONEY型数 据。如果你的野心不大,你可以使用SMALLMONEY型数据。MONEY型数据可以存储从-922,337,203,685,477.5808到 922,337,203,685,477.5807的钱数。如果你需要存储比这还大的金额,你可以使用NUMERIC型数据。

SMALLMONEY型数据只能存储从-214,748.3648到214,748.3647 的钱数。同样,如果可以的话,你应该用SMALLMONEY型来代替MONEY型数据,以节省空间。下面的例子显示了如何使用这两种表示钱的数据类型:

CREATE TABLE products (product VARCHAR(40),price MONEY,

Discount_price SMALLMONEY)

这个表可以用来存储商品的折扣和普通售价。字段price 的数据类型是MONEY,字段discount_price的数据类型是SMALLMONEY。

(4)存储逻辑值

如果你使用复选框(CHECKBOX)从网页中搜集信息,你可以把此信息存储在BIT型字段中。BIT型字段只能取两个值:0或1。这里有一个如何使用这种字段的例子:

CREATE TABLE opinion (visitor VARCHAR(40),good BIT)

这个表可以用来存放对你的网站进行民意调查所得的信息。访问者可以投票表示他们是否喜欢你的网站。如果他们投YES,就在BIT型字段中存入1。反之,如果他们投NO,就在字段中存入0(在下一章里,你将学会如何计算投票)。

当心,在你创建好一个表之后,你不能向表中添加BIT型字段。如果你打算在一个表中包含BIT型字段,你必须在创建表时完成。

(5)存储日期和时间

当你建立一个网站时,你也许需要记录在一段时间内的访问者数量。为了能够存储日期和时间,你需要使用DATETIME型数据,如下例所示:

CREATE TABL visitorlog(arrivaltime DATETIME ,departuretime DATETIME)

这个表可以用来记录访问者进入和离开你网站的时间和日期。一个DATETIME型的字段可以存储的日期范围是从1753年1月1日第一毫秒到9999年12月31日最后一毫秒。

如 果你不需要覆盖这么大范围的日期和时间,你可以使用SMALLDATETIME型数据。它与DATETIME型数据同样使用,只不过它能表示的日期和时间 范围比DATETIME型数据小,而且不如DATETIME型数据精确。一个SMALLDATETIME型的字段能够存储从1900年1月1日到2079 年6月6日的日期,它只能精确到秒。

DATETIME型字段在你输入日期和时间之前并不包含实际的数据,认识这一点是重要的。在下一章,你将学习怎样使用大量的SQL函数来读取和操作日期和时间(参见下面的“缺省值”一节)。你也可以在VBScript和JScript 中使用日期和时间函数来向一个DATETIME型字段中输入日期和时间。 

用SQL语句创建表----2

三、字段属性

上一节介绍了如何建立包含不同类型字段的表。在这一节中,你将学会如何使用字段的三个属性。这些属性允许你控制空值,缺省值和标识值。

(1)允许和禁止空值

大多数字段可以接受空值(NULL)。当一个字段接受了空值后,如果你不改变它,它将一直保持空值。空值(NULL)和零是不同的,严格的说,空值表示没有任何值。

为了允许一个字段接受空值,你要在字段定义的后面使用表达式NULL。例如,下面的表中两个字段都允许接受空值:

CREATE TABLE empty (empty1 CHAR (40) NULL,empty2 INT NULL)

注意:

BIT型数据不能是空值。一个这种类型的字段必须取0或者1。

有时你需要禁止一个字段使用空值。例如,假设有一个表存储着信用卡号码和信用卡有效日期,你不会希望有人输入一个信用卡号码但不输入有效日期。为了强制两个字段都输入数据,你可以用下面的方法建立这个表:

CREATE TABLE creditcards (creditcard_number CHAR(20) NOT NULL,

Creditcard_expire DATETIME NOT NULL)

注意字段定义的后面跟有表达式NOT NULL。通过包含表达式NOT NULL,你可以禁止任何人只在一个字段中插入数据,而不输入另一个字段的数据。

你将会发现,在你建设自己的网站过程中,这种禁止空值的能力是非常有用的。如果你指定一个字段不能接受空值,那么当你试图输入一个空值时,会有错误警告。这些错误警告可以为程序调试提供有价值的线索。

(2)缺省值

假设有一个存储地址信息的表,这个表的字段包括街道、城市、州、邮政编码和国家。如果你预计地址的大部分是在美国,你可以把这个值作为country字段的缺省值。

为了在创建一个表时指定缺省值,你可以使用表达式DEFAULT。请看下面这个在创建表时使用缺省值的例子:

CREATE TABLE addresses (street VARCHAR(60) NULL,

city VARCHAR(40) NULL,

state VARCHAR(20) NULL

zip VARCHAR(20) NULL,

country VARCHAR(30) DEFAULT ‘USA’)

在这个例子中,字段country的缺省值被指定为美国。注意单引号的使用,引号指明这是字符型数据。为了给非字符型的字段指定缺省值,不要把该值扩在引号中:

CREATE TABLE orders(price MONEY DEFAULT $38.00,

quantity INT DEFAULT 50,

entrydate DATETIME DEFAULT GETDATE())

在这个CREATE TABLE语句中,每个字段都指定了一个缺省值。注意DATETIME型字段entrydate所指定的缺省值,该缺省值是函数Getdate()的返回值,该函数返回当前的日期和时间。

(3)标识字段

每个表可以有一个也只能有一个标识字段。一个标识字段是唯一标识表中每条记录的特殊字段。例如,数据库pubs中的表jobs包含了一个唯一标识每个工作标识字段:

job_id job_desc

…………………………………………………………….

1 New Hire Job not specified

2 Chief Executive officer

3 Bushness Operations Manager

4 Chief Financial Officier

5 Publisher

字段job_id为每个工作提供了唯一的一个数字。如果你决定增加一个新工作,新增记录的job_id字段会被自动赋给一个新的唯一值。

为了建立一个标识字段,你只需在字段定义后面加上表达式IDENTITY即可。你只能把NUMERIC型或INT型字段设为标识字段,这里有一个例子:

CREATE TABLE visitorID (theID NUBERIC(18) IDENTITY,name VARCHAR(40))

这个语句所创建的表包含一个名为theid的标识字段。每当一个新的访问者名字添加到这个表中时,这个字段就被自动赋给一个新值。你可以用这个表为你的站点的每一个用户提供唯一标识。

技巧:

建立一个标示字段时,注意使用足够大的数据类型。例如你使用TINYINT型数据,那么你只能向表中添加255个记录。如果你预计一个表可能会变得很大,你应该使用NUMERIC型数据。

标 识字段的存在会使你想尝试许多不可能的事情。例如,你也许想利用标识字段来对记录进行基于它们在表中位置的运算。你应该抛弃这种意图。每个记录的标识字段 的值是互不相同的,但是,这并不禁止一个标识字段的标识数字之间存在间隔。例如,你永远不要试图利用一个表的标识字段来取出表中的前十个记录。这种操作会 导致失败,比如说6号记录和7号记录根本不存在。

四、删除和修改表

要删除一个表,你可以使用SQL语句DROP TABLE。例如,又从数据库中彻底删除表mytable,你要使用如下的语句:

DROP TABLE mytable

警告:

使用DROP TABLE命令时一定要小心。一旦一个表被删除之后,你将无法恢复它。

当你建设一个站点时,你很可能需要向数据库中输入测试数据。而当你准备向世界提供你的网点时,你会想清空表中的这些测试信息。如果你想清除表中的所有数据但不删除这个表,你可以使用TRUNCATE TABLE语句。例如,下面的这个SQL语句从表mytable中删除所有数据:

TRUNCATE TABLE mytable

虽然你不能删除和修改已经存在的字段,但你可以增加新字段。最容易的实现方法是使用SQL事务管理器中的Manager Tables窗口。你也可以使用SQL语句ALTER TABLE。下面是一个如何使用这种语句的例子:

ALTER TABLE mytable ADD mynewcolumn INT NULL

这个语句向表mytable中增加了一个新字段mynewcolumn。当你增加新字段时,你必须允许它接受空值,因为表中原来可能已经有了许多记录。

  参考文献:百度百科-sql

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
推荐于2019-09-01 · TA获得超过733个赞
知道答主
回答量:23
采纳率:0%
帮助的人:8884
展开全部

方法一:SQL语句创建数据库

create database stuDB

on  primary  -- 默认就属于primary文件组,可省

(

/*--数据文件的具体描述--*/

name='stuDB_data',  -- 主数据文件的逻辑名称

filename='D:\stuDB_data.mdf', -- 主数据文件的物理名称

size=5mb, --主数据文件的初始大小

maxsize=100mb, -- 主数据文件增长的最大值

filegrowth=15%--主数据文件的增长率

)

log on

(

/*--日志文件的具体描述,各参数含义同上--*/

name='stuDB_log',

filename='D:\stuDB_log.ldf',

size=2mb,

filegrowth=1mb

)

方法二:phpMyAdmin创建数据库

一、双击打开服务器

二、启动服务器

三、点击MySQL管理器

四、进入phpMyAdmin,登录,点击数据库,输入数据库名,点击创建(如下图红箭头)

五、数据库就创建完了

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一搜娱乐
推荐于2019-10-30 · TA获得超过6541个赞
知道答主
回答量:88
采纳率:0%
帮助的人:6.9万
展开全部

一、系别表(Department表),SQL语句如下:

CREATE TABLE `department` (

`depNo` int(11) NOT NULL AUTO_INCREMENT COMMENT '系别编号',

`depName` varchar(100) DEFAULT NULL COMMENT '系名称',

`depMan` varchar(50) DEFAULT NULL COMMENT '系主任',

PRIMARY KEY (`depNo`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

二、教师信息表(Teacher),SQL语句如下:

CREATE TABLE `teacher表` (

`tNo` int(11) NOT NULL AUTO_INCREMENT COMMENT '教师编号',

`tName` varchar(50) DEFAULT NULL COMMENT '姓名',

`tSex` varchar(10) DEFAULT NULL COMMENT '性别',

`tBirthDate` int(11) DEFAULT NULL COMMENT '出生日期',

`tSalary` decimal(9,2) DEFAULT NULL COMMENT '工资',

`tHairDate` int(11) DEFAULT NULL COMMENT '聘用日期',

`depNo` int(11) DEFAULT NULL COMMENT '系别编号',

PRIMARY KEY (`tNo`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

扩展资料:

CREATE TABLE 语句用于创建数据库中的表。CREATE TABLE 语法如下:

CREATE TABLE 表名称

(

列名称1 数据类型,

列名称2 数据类型,

列名称3 数据类型,

....

)

数据类型(data_type)规定了列可容纳何种数据类型。常用的数据类型如下:

(1)integer(size),int(size),smallint(size),tinyint(size),仅容纳整数。在括号内规定数字的最大位数。

(2)decimal(size,d),numeric(size,d),容纳带有小数的数字。"size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。

(3)char(size),容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。在括号中规定字符串的长度。

(4)varchar(size),容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。在括号中规定字符串的最大长度。

(5)date(yyyymmdd) ,容纳日期。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
啤酒哥知识站
推荐于2019-09-03 · TA获得超过2.6万个赞
知道答主
回答量:191
采纳率:0%
帮助的人:9.2万
展开全部

CREATE TABLE 语句用于创建数据库中的表。

具体用法为:

CREATE TABLE 表名称

(

列名称1 数据类型,

列名称2 数据类型,

列名称3 数据类型,

....

)

扩展资料

创建表数据类型:

integer(size) int(size) smallint(size) tinyint(size):仅容纳整数。

decimal(size,d) numeric(size,d):容纳带有小数的数字。

char(size):容纳固定长度的字符串

varchar(size):容纳可变长度的字符串

date(yyyymmdd):容纳日期。

参考资料百度百科-SQL CREATE TABLE

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(16)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式