CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
)
数据类型(data_type)规定了列可容纳何种数据类型。下面的表格包含了SQL中最常用的数据类型:
数据类型
描述
integer(size)
int(size)
smallint(size)
tinyint(size)
仅容纳整数。在括号内规定数字的最大位数。decimal(size,d)
numeric(size,d)
容纳带有小数的数字。
"size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。
char(size)
容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。
在括号中规定字符串的长度。
varchar(size)
容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。
在括号中规定字符串的最大长度。
date(yyyymmdd) 容纳日期。
创建一个基本的表需要做的工作包括:命名表、定义列和各列的数据类型。
SQL 语言使用 CREATE TABLE 语句来创建新表。
语法:
CREATE TABLE 的基本语法如下所示:
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
columnN datatype,
PRIMARY KEY( one or more columns )
);
CREATE TABLE 向数据库系统指明了你的意图。在此例中,你想要创建一个新表,新表的唯一名称(或者说标识符)紧跟在 CREATE TABLE 后面。
随后的圆括号以列表的形式定义了表中的列以及各列所属的数据类型。下面的示例对该创建新表的语法做出了更清晰的阐释。
将 CREATE TABLE 语句和 SELECT 语句结合起来可以创建现有表的副本。详细信息请见利用现有表创建新表
示例:
下面的示例创建了一个 CUSTOMERS 表,主键为 ID,某些字段具有 NOT NULL 的约束,表示在创建新的记录时这些字段不能为 NULL。
SQL> CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
你可以通过查看 SQL 服务器返回的消息来确定新表创建成功,或者也可以像下面这样使用 DESC 命令:
SQL> DESC CUSTOMERS;
+---------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------+------+-----+---------+-------+
| ID | int(11) | NO | PRI | | |
| NAME | varchar(20) | NO | | | |
| AGE | int(11) | NO | | | |
| ADDRESS | char(25) | YES | | NULL | |
| SALARY | decimal(18,2) | YES | | NULL | |
+---------+---------------+------+-----+---------+-------+
5 rows in set (000 sec)
现在数据库中已经有 CUSTOMERS 表了,你可以用它来存储和客户有关的信息。
创建数据库的SQL语句:
create database stuDB
on primary -- 默认就属于primary文件组,可省略
(
/--数据文件的具体描述--/
name='stuDB_data', -- 主数据文件的逻辑名称
filename='D:\stuDB_datamdf', -- 主数据文件的物理名称
size=5mb, --主数据文件的初始大小
maxsize=100mb, -- 主数据文件增长的最大值
filegrowth=15%--主数据文件的增长率
)
log on
(
/--日志文件的具体描述,各参数含义同上--/
name='stuDB_log',
filename='D:\stuDB_logldf',
size=2mb,
filegrowth=1mb
)
创建表和删除表的SQL语句如下:
use StuDB
go
if exists(select from sysobjects where name='stuMarks')
drop table stuMarks
create table stuMarks
(
ExamNo int identity(1,1) primary key,
stuNo char(6) not null,
writtenExam int not null,
LabExam int not null
)
go
-- 其中,列属性"identity(起始值,递增量)" 表示"ExamNo"列为自动编号, 也称为标识列
alter table 表名
add constraint 约束名 约束类型 具体的约束说明
alter table 表名
drop constraint 约束名
alter table stuMarks
add constraint UQ_stuNo Unique(stuNo)
alter table stuMarks
drop constraint UQ_stuNo
/--添加SQL登录账户--/
exec sp_addlogin 'xie', '123456' -- 账户名为xie,密码为123456
--删除xie账户名
exec sp_droplogin 'xie'
/--在stuDB数据库中添加两个用户(必须存在)--/
use stuDB
go
exec sp_grantdbaccess 'xie','123456'
go
-- 提示:SQL Server 中的dbo用户是具有在数据库中执行所有活动权限的用户,表示数据库的所有者(owner),一般来说,
-- 如果创建了某个数据库,就是该数据库的所有者,即dbo用户,dbo用户是一个比较特殊的数据库用户,无法删除,且此用
-- 户始终出现在每个数据库中
/ --给数据库用户授权-- /
-- 授权的语法如下
-- grant 权限 [on 表名] to 数据库用户
use stuDB
go
grant select,update,insert on stuMarks to xie
grant create table to xie
go
以上就是关于怎么用sql语句创建表全部的内容,包括:怎么用sql语句创建表、sql语句创建表、sql创建数据库语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)