当前位置:首页 » 编程语言 » sql模式的命令
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql模式的命令

发布时间: 2022-05-10 19:09:50

sql常用的命令语句有几条,各自的功能分别是什么

常用的也不只这些:

1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_admpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2... from tab_old definition only
5、说明:删除新表
drop table tabname
6、说明:增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键: Alter table tabname add primary key(col)
说明:删除主键: Alter table tabname drop primary key(col)
8、说明:创建索引:create [unique] index idxname on tabname(col....)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement
删除视图:drop view viewname

⑵ 在SQL中,建立、修改和删除数据库中基本表结构的命令分别为________、________和________命令。

在SQL中,建立、修改和删除数据库中基本表结构的命令分别为INSERT、UPDATE和DELETE命令。添加、修改和删除命令是属于结构化查询语言的数据操作语言,用户通过它可以实现对数据库的基本操作。

INSERT是在指定记录前添加记录,把数据插入到数据库中指定的位置上去。UPDATE是修改记录或数据库模式,或在原有数据的基础上, 产生新的关系模式和记录。DELETE命令是删除数据库中不必再继续保留的一组记录,DELETE 对数据库中记录作删除标志。

(2)sql模式的命令扩展阅读:

SQL的语言特点:

1、SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录人数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作,这就为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式。

2、高度非过程化。用SQL进行数据操作,用户无须了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。

3、面向集合的操作方式。不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

4、以同一种语法结构提供两种使用方式。SQL既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接输入SQL命令对数据库进行操作。

⑶ sql是什么意思

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式。

所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

用途:更新表中原有数据

单独使用,使用where匹配字段。

例:

“Person”表中的原始数据:

LastName FirstName Address City。

Nilsen Fred Kirkegt 56 Stavanger。

Rasmussen Storgt 67。

运行下面的SQL将Person表中LastName字段为”Rasmussen”的FirstName更新为”Nina”。

UPDATE Person SET FirstName = 'Nina' WHERE LastName = 'Rasmussen'。

⑷ SQL命令怎么用

SQL语句:

通过SQL语句可以完成对数据库、表、数据的操作,也就是我们本教程要学习的主要内容。

一条SQL语句类似这样,它的含义是:从Users表中取出列名为UserName的数据。

一些重要的SQL命令:

  • SELECT – 从数据库中提取数据

  • UPDATE – 更新数据库中的数据

  • DELETE – 从数据库中删除数据

  • INSERT INTO – 向数据库中插入新数据

  • CREATE DATABASE – 创建新数据库

  • ALTER DATABASE – 修改数据库

  • CREATE TABLE – 创建新表

  • ALTER TABLE – 变更数据库表

  • DROP TABLE – 删除表

  • CREATE INDEX – 创建索引

  • DROP INDEX – 删除索引

-from shulanxt

⑸ sql基本命令都是什么含义,求列表解释

--SQL基本命令

--数据定义语言
Create(创建)
Alter(更改)
Drop(删除)

--数据操纵语言
Insert(插入)
select(选择)
delete(删除)
update(更新)

--事务控制语言
commit(提交)
savepoint(保存点)
rollback(回滚)

--数据控制语言
Grant(授权)
Revoke(回收)

--Orcale数据类型

--字符数据类型
char这种数据类型的列长度可以是1到2000个字节。
varchar2该数据类型的大小在1-4000个字节范围内
long这种数据类型可存储最大2GB。

--数值数据类型
number数据类型可以存储正数、负数、零、定点数和精度为38位的浮点数。

--日期时间数据类型
date数据类型使用七个字节固定长度,每个字节分别存储世纪、年、月、日、小时、分和秒。从4712年1月1日到公元9999年12月13日。
Timestamp数据类型用于存储日期的年、月、日以及时间的小时、分和秒值。秒值是精确到小数点后6位。该数据类型还包括了时区信息。

--Raw和LongRaw数据类型
Raw数据类型
Raw数据类型用于存储基于字节的数据。如二进制数据或字节串,该数据类型最多能存储2000个字节。
LongRaw数据类型用于存储可变长度的二进制数据,最多能存储2GB。(该数据不能使用索引,long受到的所有限制对longraw数据类型同样有效)

--LOB数据类型
Clob数据类型能够存储大量字符数据。该数据类型可以存储单字节数据和多字节字符数据。clob可用于存储非结构化的XML文档。
Blob数据类型可以存储较大的二进制对象,如图形、视频剪辑和声音剪辑等。
Bfile数据类型能够将二进制文件存储二进制文件存储在数据库外部的操作系统文件中。Bfile列存存储一个Bfile定位器。它指向位于服务器文件系统上的二进制文件。支持的文件最大为4GB。

--查看指定伪列用户(scott)
select rowid,ename,comm from emp where sal=1500

--查看伪列数
select * from emp where rownum<2

--数据定义语言
create table (需要创建的表)
alter table (需要更改的表)
truncate table (需要截断的表)
drop table (需要删除的表)

--create table保命令
create table [所有者即模式的名称,如果用户在自己的模式中创建表,则可以不指定所有者名称。][需要创建的表名]
([列的名称] [数据类型及长度]);
--例子(在当前用户下创建了一张名为(Cool)的表,里有有三个列分别是:Cool_ID、Cool_Name、Cool_like):
create table Cool(
Cool_ID number,
Cool_Name varchar(20),
Cool_like varchar(30));
--在表中插入数据
insert into Cool values(8850,'酷儿','编写Java应用程序');
insert into Cool values(8851,'酷儿','编写Java应用程序1');
insert into Cool values(8852,'酷儿','编写Java应用程序2');
insert into Cool values(8853,'酷儿','编写Java应用程序3');
insert into Cool values(8854,'酷儿','编写Java应用程序4');
insert into Cool values(8856,'酷儿','编写Java应用程序5');
insert into Cool values(8855,'酷儿','编写Java应用程序6');

--alter table命令
alter table [需要更改的表命称] [模式(modify=更改,add=添加,drop=删除)] (表中的列名)
--例子
--更改表中Cool_like列数据长度更改为15
alter table cool modify (cool_name varchar(15));
--插入数据进行测试第一条数据可以顺利插入到列中,而第二条数据则不能插入列数,应为它的长度己超过了15个字符。(执行结果为:Error位于第一行:ora-01401:插入数据值对于列过大);

insert into Cool values(8855,'酷儿Test','编写Java应用程序、游戏等等。');
insert into Cool values(8855,'测试用户名,此列长度将超过15个字符。','编写Java应用程序、游戏等等。');

--在表中添加一个列,在表中添加一个Cool_Tel来存储电话号码。
alter table Cool add (Cool_Tel varchar(12));

insert into Cool values(8856,'酷儿8856','编写Java应用程序','13529424360');

--在表中删除Cool_Tel列;
alter table cool drop column cool_tel;

--Truncate table命令
--删除表中的记录而不删除列,此方法不能回滚因为它不使用事务处理。(优点:删除速度快)
truncate table cool;(执行结果:表己截断)

--desc查看cool表的结构
desc cool;

--drop table命令
--删除Cool表。此方法可以使用事务回滚。
drop table cool;

--数据操纵语言
--选择命令(Select)
select * from emp;(查询表中所有数据)
select * from emp where ename='adams';(按条件查询表中数据)
select distinct * from emp;(不选择表中的重复行,使用distinct关键字);
select * from cool where cool_name='酷儿' order by cool_id asc;(按Coo_ID进行升序排序)
select * from cool where cool_name='酷儿' order by cool_id desc;(按Coo_ID进行降序排序)
create table CoolDemo as select * from cool;(用现有表Cool创建一个新表,数据包括在select语包里,可以是所有,也可以是指定的列)
create table CoolDemo2 as select * from cool where 1 = 2;(此条件不成立,所有只创建了表结构,没有数据)
select cool_id+10 sum ,cool_name from cool;(此条语句使用了别名sum并且是cool_id+10语后的值,但原始值不会改变。)

--插入命令(Insert)
insert into cool values(8857,'酷儿','编写Java应用程序');(在Cool表中插入数据)
insert into cool(cool_name,cool_like) values('酷儿','编写Java应用程序null');(只插入姓名列(cool_name)和爱好列(cool_like)的值)
insert into cool values(8858,'酷儿',null);(在cool表中跳过了cool_like列,使用空值来填充)
alter table cool add(cool_date date);(在表中添加一个日期列,以便下面插入日期值)
insert into cool values(8859,'酷儿','编写Java应用程序8859','22-11月-06');(此条语句在Cool表中cool_date列插入了2006年11月12日的日期)
insert into cool select * from cooldemo;(此条语句插入了来自期它表的数据)

--更新命令(Update)
update cool set cool_name='酷儿至酷' where cool_name='酷儿';(如果cool_name列的值等于(酷儿)那么就将它更改为(酷儿至酷),这是有条件的查询)
update cool set cool_name='酷儿';(此条语句将cool_name列的所有值更改为(酷儿))

--删除命令(delete)
delete cool where cool_like='编写Java应用程序null';(如果cool表中cool_like列值等于(编写Java应用程序null)就删除它)

--提交命令(Commit)
commit;(提交事务)
commit work;(功能同上)

--标记命令(SavePoint)
savepoint savepoint_id;(它用来标记事务中可以应用回滚的点。)

--回滚事务(RollBack)
rollback;
rollback work;
rollback to savepoint [自己标记的记录点];

--数据控制语言

--授权命令(Grant)
Grant [操作权限如:select,update,delete等] on [表名称] to [用户名]
grant select,update,delete on cool to hedong911;(此条语句授权给用户hedong911查询、更新、删除cool表的权力)
grant update(cool_id,cool_name) on cool to hedong911;(此条语句授权给用户hedong911更新cool表(cool_id,cool_name)列权力)
grant select on cool to hedong911 with grant option;(此语句授权的用户hedong911可以给其它用户授权)

--回收授权命令(revoke)
revoke select,update,delete on cool to hedong911;(此条语句回收了hedong911的查询、更新、删除权力)

--算术操作符
(跳过)

--比较操作符
--比较操作符包括(=、!=、<、>、<=、>=、between……and(检查是否在两个值之间)、in(与列表中的值相匹配)、like(匹配字符模式)和is null(检查是否为空),最后四个操作符还可以和not(非)一起使用如:not between……and等
select * from cool where cool_name!='1';
select * from cool where cool_name like '酷儿';
select * from cool where cool_id < 8853;
select * from cool where cool_id > 8853;
select * from cool where cool_id <= 8853;
select * from cool where cool_id >= 8853;
select * from cool where cool_like in ('编写Java应用程序');

--逻辑操作符
--逻辑操作符包括and(与)、or(或)和now(非);
select * from cool where cool_id <=8856 and cool_id >= 8853;
select * from cool where cool_id =9999 or cool_like in ('编写Java应用程序');

--集合操作符
--联合查询(union)
select * from cool union select * from cooldemo;(此条语句将Cool和CoolDemo两张表的查询结果合拼,并删除重复行)

--联合所有查询(union all)
select * from cool union all select * from cooldemo;(此条语句将Cool和CoolDemo两张表的查询结果合拼,不删除重复行)

--交集查询(intersect)
select * from cool intersect select * from cooldemo;(此条语句查询两张表都有的行)

--减集查询(minus)
select * from cool minus select * from cooldemo;(此条语句返回第二张表没有的数据)

--连接(||)操作符
select ('用户编号:'||cool_id||'姓名是:'||cool_name||'爱好是:'||cool_like||'日期是:'||cool_date) from cool where cool_id=8859;(运行结果:用户编号:8859姓名是:酷儿爱好是:编写Java应用程序8859日期是:22-11月-06)

⑹ sql命令语句

update 入货单 set 货物名称=alltrim(thisform.text2.value),进货价格=alltrim(thisform.text3.value),批发价=alltrim(thisform.text4.value),零售价=alltrim(thisform.text5.value) where 货物名称==alltrim(thisform.text1.value)

在sql语句中,里面的值必须是数据,thisform.text2.value 是表单 上的内容,

在页面上,通过构造sql字符串,然后
sql="update 入货单 set 货物名称=alltrim(thisform.text2.value),进货价格=alltrim(thisform.text3.value),批发价=alltrim(thisform.text4.value),零售价=alltrim(thisform.text5.value) where 货物名称==alltrim(thisform.text1.value)"
将字符串提交执行。

sql="update 入货单 set 货物名称='"+alltrim(thisform.text2.value)+"',进货价格="+alltrim(thisform.text3.value)+",批发价="+alltrim(thisform.text4.value)+",零售价="+alltrim(thisform.text5.value)+" where 货物名称='"+alltrim(thisform.text1.value)+"'"

通过上面语句将thisform.text2.value 内容嵌入到字符串中,然后提交即可。

你的错误,是提交的字符串中,类似于alltrim(thisform.text2.value)的数据在数据库中是不存在的,如果将其换上它的内容就对了。

当然,按照sql规则,如果是字符格式,需添加''.

应该在你程序里添加一下语句,
sql="update 入货单 set 货物名称='"+alltrim(thisform.text2.value)+"',进货价格="+alltrim(thisform.text3.value)+",批发价="+alltrim(thisform.text4.value)+",零售价="+alltrim(thisform.text5.value)+" where 货物名称='"+alltrim(thisform.text1.value)+"'"

执行完这句代码后,

假定
alltrim(thisform.text2.value)="11"
进货价格=10
批发价=20,
零售价=30
alltrim(thisform.text1.value)="22"


sql="update 入货单 set 货物名称='11',进货价格=10,
批发价=20,
零售价=30
where 货物名称='22'"

你在代码语句后输出看是否是这样的,如果是,在通过数据库连接,执行sql即可。

⑺ 在sql中建立和删除数据库模式的命令分别为

你好
分别为
create schema

drop schema
望采纳
谢谢

⑻ SQL 数据库常用命令及语法举例

SQL2000常用命令,语法使用方法
(1) 数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"

sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"

sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"

sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"

sql="select * from 数据表 where 字段名 between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表 set 字段名=字段值 where 条件表达式"

sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

(3) 删除数据记录:

sql="delete from 数据表 where 条件表达式"

sql="delete from 数据表" (将数据表所有记录删除)

(4) 添加数据记录:

sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"

sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)

(5) 数据记录统计函数:

AVG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加

引用以上函数的方法:

sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.execute(sql)

用 rs("别名") 获取统的计值,其它函数运用同上。

(5) 数据表的建立和删除:

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 数据表名称 (永久性删除一个数据表)

4. 记录集对象的方法:

rs.movenext 将记录指针从当前的位置向下移一行
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst 将记录指针移到数据表第一行
rs.movelast 将记录指针移到数据表最后一行
rs.absoluteposition=N 将记录指针移到数据表第N行
rs.absolutepage=N 将记录指针移到第N页的第一行
rs.pagesize=N 设置每页为N条记录

2、更改表格
ALTER TABLE table_name
ADD COLUMN column_name DATATYPE
说明:增加一个栏位(没有删除某个栏位的语法。
ALTER TABLE table_name
ADD PRIMARY KEY (column_name)
说明:更改表得的定义把某个栏位设为主键。
ALTER TABLE table_name
DROP PRIMARY KEY (column_name)
说明:把主键的定义删除。

3、建立索引
CREATE INDEX index_name ON table_name (column_name)
说明:对某个表格的栏位建立索引以增加查询时的速度。

4、删除
DROP table_name
DROP index_name

二、的资料形态 DATATYPEs
smallint
16 位元的整数。
interger
32 位元的整数。
decimal(p,s)
p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数
点后有几位数。如果没有特别指定,则系统会设为 p=5; s=0 。
float
32位元的实数。
double
64位元的实数。
char(n)
n 长度的字串,n不能超过 254。
varchar(n)
长度不固定且其最大长度为 n 的字串,n不能超过 4000。
graphic(n)
和 char(n) 一样,不过其单位是两个字符 double-bytes, n不能超过127。这个形态是为
了支援两个字符长度的字体,例如中文字。
vargraphic(n)
可变长度且其最大长度为 n 的双字符字串,n不能超过 2000。
date
包含了 年份、月份、日期。
time
包含了 小时、分钟、秒。
timestamp
包含了 年、月、日、时、分、秒、千分之一秒。

三、资料操作 DML (Data Manipulation Language)
资料定义好之后接下来的就是资料的操作。资料的操作不外乎增加资料(insert)、查询资料(query)、更改资料(update) 、删除资料(delete)四种模式,以下分 别介绍他们的语法:

1、增加资料:
INSERT INTO table_name (column1,column2,...)
valueS ( value1,value2, ...)
说明:
1.若没有指定column 系统则会按表格内的栏位顺序填入资料。
2.栏位的资料形态和所填入的资料必须吻合。
3.table_name 也可以是景观 view_name。

INSERT INTO table_name (column1,column2,...)
SELECT columnx,columny,... FROM another_table
说明:也可以经过一个子查询(subquery)把别的表格的资料填入。

2、查询资料:
基本查询
SELECT column1,columns2,...
FROM table_name
说明:把table_name 的特定栏位资料全部列出来
SELECT *
FROM table_name
WHERE column1 = xxx
[AND column2 > yyy] [OR column3 <> zzz]

三)交叉连接

交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数
据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等
于6*8=48行。
SELECT type,pub_name
FROM titles CROSS JOIN publishers
ORDER BY type
UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。UNION的语法格式为:
select_statement
UNION [ALL] selectstatement
[UNION [ALL] selectstatement][…n]
其中selectstatement为待联合的SELECT查询语句。
ALL选项表示将所有行合并到结果集合中。不指定该项时,被联合查询结果集合中的重复行将只保留一
行。
联合查询时,查询结果的列标题为第一个查询语句的列标题。因此,要定义列标题必须在第一个查询语
句中定义。要对联合查询结果排序时,也必须使用第一查询语句中的列名、列标题或者列序号。
在使用UNION 运算符时,应保证每个联合查询语句的选择列表中有相同数量的表达式,并且每个查询选
择表达式应具有相同的数据类型,或是可以自动将它们转换为相同的数据类型。在自动转换时,对于数值类

型,系统将低精度的数据类型转换为高精度的数据类型。

在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。例如:

查询1 UNION (查询2 UNION 查询3)

INSERT语句

用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:

INSERT INTO EMPLOYEES valueS

('Smith','John','1980-06-10',

'Los Angles',16,45000);

通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。

我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。

如果SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。这是因为SQL提供对事务的支持。一次事务将数据库从一种一致性转移到另一种一致性。如果事务的某一部分失败,则整个事务都会失败,系统将会被恢复(或称之为回退)到此事务之前的状态。

回到原来的INSERT的例子,请注意所有的整形十进制数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别。为了增加可读性而在数字间插入逗号将会引起错误。记住,在SQL中逗号是元素的分隔符。

同样要注意输入文字值时要使用单引号。双引号用来封装限界标识符。

对于日期类型,我们必须使用SQL标准日期格式(yyyy-mm-dd)

⑼ SQL数据库命令怎么用

首先你要知道会员号那列的字段名,还有存放会员号的表名
再用insert语句添加吧
网吧的数据库没那么简单就添上去吧
Insert
into
表名
(表中列名...)
values
(你添加的值)
insert
into
table_name
(column_1,
column_2,
...)
values
('value1',
'value2',...)

⑽ 通过SQL语句使用什么命令创建数据库

CREATE DATABASE 为SQl语句,用于创建数据库。

语法

CREATE DATABASEdatabase_name

[ ON

[ < filespec > [,...n] ]

[,< filegroup > [,...n] ]

]

[ LOG ON { < filespec > [,...n] } ]

[ COLLATEcollation_name]

[ FOR LOAD | FOR ATTACH ]

< filespec > ::=

[ PRIMARY ]

([ NAME=logical_file_name,]

FILENAME='os_file_name'

[,SIZE=size]

[,MAXSIZE={max_size| UNLIMITED } ]

[,FILEGROWTH=growth_increment])[,...n]

< filegroup > ::=

FILEGROUPfilegroup_name< filespec > [,...n]

参数

database_name

新数据库的名称。数据库名称在服务器中必须唯一,并且符合标识符的规则。database_name最多可以包含 128 个字符,除非没有为日志指定逻辑名。如果没有指定日志文件的逻辑名,则 Microsoft&reg; SQL Server™ 会通过向database_name追加后缀来生成逻辑名。该操作要求database_name在 123 个字符之内,以便生成的日志文件逻辑名少于 128 个字符。

ON

指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。该关键字后跟以逗号分隔的 <filespec> 项列表,<filespec> 项用以定义主文件组的数据文件。主文件组的文件列表后可跟以逗号分隔的 <filegroup> 项列表(可选),<filegroup> 项用以定义用户文件组及其文件。

n

占位符,表示可以为新数据库指定多个文件。

LOG ON

指定显式定义用来存储数据库日志的磁盘文件(日志文件)。该关键字后跟以逗号分隔的 <filespec> 项列表,<filespec> 项用以定义日志文件。如果没有指定 LOG ON,将自动创建一个日志文件,该文件使用系统生成的名称,大小为数据库中所有数据文件总大小的 25%。

FOR LOAD

支持该子句是为了与早期版本的 Microsoft SQL Server 兼容。数据库在打开dbo use only数据库选项的情况下创建,并且将其状态设置为正在装载。SQL Server 7.0 版中不需要该子句,因为 RESTORE 语句可以作为还原操作的一部分重新创建数据库。

FOR ATTACH

指定从现有的一组操作系统文件中附加数据库。必须有指定第一个主文件的 <filespec> 条目。至于其它 <filespec> 条目,只需要与第一次创建数据库或上一次附加数据库时路径不同的文件的那些条目。必须为这些文件指定 <filespec> 条目。

附加的数据库必须使用与 SQL Server 相同的代码页和排序次序创建。应使用sp_attach_db系统存储过程,而不要直接使用 CREATE DATABASE FOR ATTACH。只有必须指定 16 个以上的 <filespec> 项目时,才需要使用 CREATE DATABASE FOR ATTACH。

如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行sp_removedbreplication从数据库删除复制。

collation_name

指定数据库的默认排序规则。排序规则名称既可以是 Windows 排序规则名称,也可以是 SQL 排序规则名称。如果没有指定排序规则,则将 SQL Server 实例的默认排序规则指派为数据库的排序规则。

有关 Windows 和 SQL 排序规则名称的更多信息,请参见COLLATE。

PRIMARY

指定关联的 <filespec> 列表定义主文件。主文件组包含所有数据库系统表。还包含所有未指派给用户文件组的对象。主文件组的第一个 <filespec> 条目成为主文件,该文件包含数据库的逻辑起点及其系统表。一个数据库只能有一个主文件。如果没有指定 PRIMARY,那么 CREATE DATABASE 语句中列出的第一个文件将成为主文件。

NAME

为由 <filespec> 定义的文件指定逻辑名称。如果指定了 FOR ATTACH,则不需要指定 NAME 参数。

logical_file_name

用来在创建数据库后执行的 Transact-SQL 语句中引用文件的名称。logical_file_name在数据库中必须唯一,并且符合标识符的规则。该名称可以是字符或 Unicode 常量,也可以是常规标识符或定界标识符。

FILENAME

为 <filespec> 定义的文件指定操作系统文件名。

'os_file_name'

操作系统创建 <filespec> 定义的物理文件时使用的路径名和文件名。os_file_name中的路径必须指定 SQL Server 实例上的目录。os_file_name不能指定压缩文件系统中的目录。

如果文件在原始分区上创建,则os_file_name必须只指定现有原始分区的驱动器字母。每个原始分区上只能创建一个文件。原始分区上的文件不会自动增长;因此,os_file_name指定原始分区时,不需要指定 MAXSIZE 和 FILEGROWTH 参数。

SIZE

指定 <filespec> 中定义的文件的大小。如果主文件的 <filespec> 中没有提供 SIZE 参数,那么 SQL Server 将使用model数据库中的主文件大小。如果次要文件或日志文件的 <filespec> 中没有指定 SIZE 参数,则 SQL Server 将使文件大小为 1 MB。

size

<filespec> 中定义的文件的初始大小。可以使用千字节(KB)、兆字节(MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。size的最小值为 512 KB。如果没有指定size,则默认值为 1 MB。为主文件指定的大小至少应与model数据库的主文件大小相同。

MAXSIZE

指定 <filespec> 中定义的文件可以增长到的最大大小。

max_size

<filespec> 中定义的文件可以增长到的最大大小。可以使用千字节(KB)、兆字节(MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。如果没有指定max_size,那么文件将增长到磁盘变满为止

说明在磁盘即将变满时,Microsoft Windows NT&reg; S/B 系统日志会警告 SQL Server系统管理员。

UNLIMITED

指定 <filespec> 中定义的文件将增长到磁盘变满为止。

FILEGROWTH

指定 <filespec> 中定义的文件的增长增量。文件的 FILEGROWTH 设置不能超过 MAXSIZE 设置。

growth_increment

每次需要新的空间时为文件添加的空间大小。指定一个整数,不要包含小数位。0 值表示不增长。该值可以 MB、KB、GB、TB 或百分比 (%) 为单位指定。如果未在数量后面指定 MB、KB 或 %,则默认值为 MB。如果指定 %,则增量大小为发生增长时文件大小的指定百分比。

如果没有指定 FILEGROWTH,则默认值为 10%,最小值为 64 KB。指定的大小舍入为最接近的 64 KB 的倍数。

(10)sql模式的命令扩展阅读

组成

在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:

1、一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。

2、一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。

3、一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。

4、一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。

5、用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。

6、SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。

参考资料来源:网络-SQL数据库

参考资料来源:网络-Create Database