今天是:
首 页信息查询网站SEO查询工具CSS编辑器建站素材
网海拾贝,电脑资讯,电脑快报,it资讯,网站建设资讯,教程基地
软件新闻
操作系统
Vista Winxp Win2003 Linux Windows综合
工具软件
系统工具 媒体工具 网络工具 杀毒软件 聊天
软件开发
C教程 C++ Java C# ASP.NET JSP PHP
数据库
Oracle MySQL DB2 SQL Server Sybase
安全
网络 病毒
办公应用
Word Excel Powerpoint Outlook 其他
平面设计
Photoshop Fireworks Coreldraw Flash Illustrator 3dsmax
网站运营
网站运营 网站优化 网站策划 策划书下载 建站心得 站长故事 网站盈利 网页制作 网页特效 建站素材 免费资源 QQ频道
  当前位置:首 页 >> 数据库栏 >> SQLServer >> 主要SQL语句详解

主要SQL语句详解

  发布于2005-06-26 16:16 来源:网海拾贝

1 CREATE DATABASE database_name [WITH LOG IN “pathname”]


创建数据库。

database_name:数据库名称。

“pathname”:事务处理日志文件。

创建一database_name.dbs目录,存取权限由GRANT设定,无日志文件就不能使用

BEGIN WORK等事务语句(可用START DATABASE语句来改变)。

可选定当前数据库的日志文件。

如:select dirpath form systables where tabtype = “L”;

例:create databse customerdb with log in “/usr/john/log/customer.log”;





2 DATABASE databse-name [EXCLUSIVE]

选择数据库。

database_name:数据库名称。

EXCLUSIVE:独占状态。

存取当前目录和DBPATH中指定的目录下的数据库,事务中处理过程中不要使用此语句。

例:dtabase customerdb;




3,CLOSE DATABASE


关闭当前数据库。

database_name:数据库名称。


此语句之后,只有下列语句合法:

CREATE DATABASE; DATABASE; DROP DATABSE; ROLLFORWARD DATABASE;

删除数据库前必须使用此语句。

例:close database;





DROP DATABASE database_name


删除指定数据库。

database_name:数据库名称。

用户是DBA或所有表的拥有者;删除所有文件,但不包括数据库目录;不允许删除当前数据库(须先关闭当前数据库);事务中处理过程中不能使用此语句,通过ROLLBACK WORK 也不可将数据库恢复。

例:drop databse customerdb;





CREATE [TEMP] TABLE table-name (column_name datatype [NOT NULL], …)


[IN “pathname”]

创建表或临时表。

table-name :表名称。

column_name:字段名称。

data-type:字段数据类型。

path-name:指定表的存放位置

TEMP用于指定建立临时表;表名要唯一,字段要唯一;有CONNECT权限的用户可建立临时表;创建的表缺省允许CONNECT用户存取,但不可以ALTER。


例:create table user

( c0 serial not null, c1 char (10),

c2 char(2),

c3 smallint,

c4 decimal(6,3),

c5 date

) in “usr/john/customer.dbs/user;





ALTER TABLE


ALTER TABLE table-name

{ADD (newcol_name newcol_type [BEFORE oldcol_name], …) | DROP (oldcol_name, …)

| MODIFY (oldcol_name newcol_type [NOT NULL], … )}, …

修改表结构。

table-name:表名称。

newcol_name:新字段名称

newcol_type:新字段类型

oldcol_name:老字段名称

可以使用单个或多个ADD子句、DROP子句、MODIFY子句,但某个字句失败,操作即中止;原字段是NULL,不允许MODIFY为NOT NULL,除非所有NULL字段中均非空,反之可以;ALTER使用者是表的拥有者或拥有DBA权限,或被授权;事务中处理过程中不要使用此语句。



例:alter table user

add ( c6 char(20) before c5);





RENAME TABLE oldname TO newname


修改表名。

oldname:原名称。

newname:新名称。

RENAME使用者是表的拥有者或拥有DBA权限,或被授权;事务中处理过程中不要使用此语句。

例:rename user to bbb;





DROP TABLE table-name


删除表。

table-name:表名称。

删除表意味着删除其中所有数据、各字段上的索引及对表的赋权、视图等;用户不能删除任何系统目录表;语句使用者是表拥有者或拥有DBA权限,事务中处理过程中不要使用此语句。





RENAME COLUMN table.oldcolumn, TO newcolumn


修改字段名。

table.oldcolumn:表名及原字段名称

newcolumn:新字段名称。

语句使用者是表的拥有者或拥有DBA权限或有ALTER权限的用户,事务中处理过程中不要使用此语句。

例:rename column user.c6 to c7;

CREATE VIEW view-name column-list


CREATE VIEW view-name column-list AS select_statement [WITH CHECK OPTION]

创建视图。

view-name:视图名称。

column-list:字段列表。

select_statement:SELECT语句。

以下语句不使用视图:ALTER TABLE,DROP INDEX,ALTER INDEX,LOCK TABLE,CREATE INDEX, RENAME TABLE;视图将延用基表的字段名,对表达式等虚字段和多表间字段重名必须指明标识其字段名;若对视图中某些字段命名,则所有字段都必须命名;视图中数据类型延用基表中的数据类型,虚字段起诀于表达式;不能使用ORDER BY和UNION子句;对视图中所有的字段要有SELECT权限;事务中处理过程中使用此语句,即使事务回滚,视图也将建立,不能恢复。

例:create view v_user as select * from user where c1 = “B1”;





DROP VIEW view-name


删除视图。

view-name:视图名称。

用户可删除自己建立的视图;视图的后代视图也被删除;事务中处理中不要使用此语句。

例:drop view v_user;

CREATE INDEX


CREATE [UNIQUE/DISTINCT] [CLUSTER] INDEX index_name ON table_name

([column_name ASC/DESC],…)

创建索引。

index_name:索引名称。

table_name:表名称。

column_name:字段名称。

UNIQUE/DISTINCT:唯一索引。

CLUSTER:使表的物理存放顺序按索引排列。

ASC/DESC:升序或降序,缺省升序。

语句执行时,将表的状态置为EXCLUSIVE;复合索引最多包含8个字段,所有字段长度和不得大于120字节;事务中处理过程中使用此语句,即使事务回滚,索引将建立,不能恢复。

例:create cluster index ix_user on user(c5);





ALTER INDEX index-name TO [NOT] CLUSTER


修改索引性质。

index-name:索引名称。

TO [NOT] CLUSTER:去掉或加上CLUSTER属性。

语句执行时,将表的状态置为EXCLUSIVE;事务中处理过程中使用此语句,即使事务回滚,索引性质将改变,不能恢复。

例:alter index ix_user to not cluster;

DROP INDEX index-name


删除索引。

index-name:索引名称。

语句使用者是索引的拥有者或拥有DBA权限,事务中处理过程中不要使用此语句,否则事务无法恢复。

例:drop index ix_user;





CREATE SYNONYM synonym FOR table-name


创建同义名。

synonym:同义名

table-name:表名称

数据库的创建者可以使用同义名;没有赋予同义名权限的用户不能使用同义名;同义名不能和表名相同;事务中处理过程中不要使用此语句。

例:create synonym user_alias for user;





DROP SYNONYM synonym


删除同义名。

synonym:同义名

可以删除自己建立的同义名;事务中处理过程中不要使用此语句,否则无法恢复。

例:drop synonym user_alias;





UPDATE STATISTICS [FOR TABLE table-name]


更新数据库的统计数字。

table-name:表名称

此语句仅作用于当前数据库;可提高查询效率;只有执行此语句,才改变统计数据
例:update statistics for table user;

GRANT {DBA|RESOURCE|CONNECT} TO {PUBLIC|user-list}
授权命令。

PUBLIC|user-list:全部或指定的用户。

三种权限居且仅居其一,事务处理过程中不要执行GRANT语句。

例:grant resource to pulbic;

GRANT tab-privilege ON table-name TO {PUBLIC|user-list} [WITH GRANT OPTION]


授表级权限。

tab-privilege:表级权限。

table-name:表名称。

PUBLIC|user-list:全部或指定的用户。

[WITH GRANT OPTION]:表示被授权用户有否权限进行二次授权。

用户可以在自己建立表达式或被[WITH GRANT OPTION]准许的表中进行赋权;限定越多的权限优先级越高。

例:grant update(c1,c6) on user to dick with grant option;


CONNECT权限:只允许对数据库表中的数据进行存取,建立和删除视图与临时表。

(2)表级权限(对表的建立、修改、检索和更新等权限)


ALTER:更改权限

DELETE:删除权限

INDEX:索引权限

INSERT:插入权限

SELECT [(cols)]:指定字段或所有字段上的查询权限,不指明字段缺省为所有字段。

UPDATE [(cols)] :指定字段或所有字段上的更新权限,不指明字段缺省为所有字段。

ALL [PRIVILEGES]:以上所有表级权限




REVOKE {DBA|RESOURCE|CONNECT} FROM {PUBLIC|user-list}

收权命令。

PUBLIC|user-list:全部或指定的用户。

三种权限居且仅居其一,事务处理过程中不要执行GRANT语句。

例:revoke resource from john;

REVOKE tab-privilege ON table-name FROM {PUBLIC|user-list}


收表级权限。

tab-privilege:表级权限。

table-name:表名称。

PUBLIC|user-list:全部或指定的用户。


[WITH GRANT OPTION]:表示被授权用户有否权限进行二次授权。

用户只能取消由其本人赋予其他用户的表级存取权限;不能取消自己的权限,对SELECT和UPDATE作取消时,将取消所有表中字段的SELECT 和UPDATE权限。

例;revoke update on user from dick;





LOCK TABLE table-name IN {SHARE|EXCLUSIVE} MODE

记录级加锁和表级加锁或文件加锁。

table-name:表名称。

SHARE:允许读表中数据,但不允许作任何修改

EXCLUSIVE:禁止其他任何形式访问表

每次只能对表琐定一次;事务处理过程中,BEGIN WORK后立即执行LOCK TABLE以取代记录级加锁,COMMIT WORK和ROLLBACK WORK语句取消所有对表的加锁;若没有事务处理,锁将保持到用户退出或执行UNLOCK为止。

例:lock table user in exclusive mode;





UNLOCK TABLE table-name

取消记录级加锁和表级加锁或文件加?/FONT>

table-name:表名称。

例:unlock user;

SET LOCK MODE TO [NOT] WAIT

改变锁定状态。

TO [NOT]:等待解锁,有可能被死锁或不等待并提示错误信息,表示此记录被锁,缺省值。

访问一个EXCLUSIVE状态下的记录,将返回一个错误。





START DATABSE db_name [WITH LOG IN “pathname”]

启动事务处理。

“pathname”:事务处理日志文件。

执行该语句前,需要先关闭当前数据库。

例;clost database;

start databse customer with log in “/usr/john/log/customer.log”;





BEGIN WORK

开始事务。例:begin work;




COMMIT WORK

提交(正常结束)事务。例:commit work;





ROLLBACK WORK

回滚(非正常结束)事务。例:rollback work;





SELECT

SELECT select_list FROM tab_name|view_name

WHERE condition

GROUP BY column_name





附(INFORMIX的权限)

(1) 数据库的权限(控制对数据库的访问以及数据库中表的创建和删除)


DBA权限:全咳ɡ薷南低潮恚⒑蜕境碛胨饕⒃黾雍突指幢硎荩约笆谟杵渌没菘馊ㄏ薜龋?/FONT>

RESOURCE权限:允许对数据库表中的数据进行存取,建立永久性表以及索引。



HAVING condition

ORDER BY column_list

INTO TEMP table_name

查询语句。

select_list:选择表或*

tab_name:表名称

view_name:视图名称。

condition:查询条件,可使用BETWEEN、IN、LIKE、IS NULL、LIKE、MATCHES、NOT、

AND、OR、=、!=或<>、>、 >= 、<=、<、ALL、ANY、SOME

column_name:分组字段名称

condition:群聚条件

column_list:排序字段列表,缺省ASC,可指定DSC;排序时,NULL值小于非零值。


table_name:临时表名称

例:略

附(常用函数)

(1)集合函数:

count(*)、

sum(数据项/表达式)、avg(数据项/表达式)、max(数据项/表达式)、min(数据项/表达式)

count(distinct 数据项/表达式)、sum(distinct数据项/表达式)、avg(distinct数据项/表达式)

(2)代数函数和三角函数

HEX(数据项/表达式)、ROUND(数据项/表达式)、TRUNC(数据项/表达式)、


TAN(数据项/表达式)、ABS(数据项/表达式)、MOD(被除数,除数)

(3)统计函数

标准差,stdev()、方差,variance()、范围,rang()

(4)时间函数

DAY(日期/时间表达式):返回数字型

MONTH(日期/时间表达式):返回整数

WEEKDAY(日期/时间表达式):0&#0;&#0;6,0星期天,1星期一;返回整数

YEAR(日期/时间表达式)、返回整数


DATE(非日期表达式):返回日期型

EXTEND(日期/时间表达式,[第一个至最后一个]):返回指定的整数

MDY(月,日,年):返回日期型

CURRENT:返回日期型

(5)时间函数

ROUND(),四舍五入。如:ROUND(10.95,position)position进行四舍五入的前一位置

TRUNC(),截取。如:TRUNC(10.95,0)position截取的位置

INFORMIX临时表在下列情况下自动取消:

A.退出数据库访问工具(如DBACCESS)

B.SQL通话结束(DISCONNECT)

C.发出取消表语句

D.退出程序时


INSERT
INSERT INTO view_name|table_name [(column_list)] VALUES (value_list)

或 INSERT INTO view_name|table_name [(column_list)] select_statement

插入数据

view_name|table_name:视图名或表名称

column_list:数据项列表。

value_list:值列表

select_statement:查询语句。

例:略



DELETE FROM view_name|table_name WHERE search-conditions
删除语句。

view_name|table_name:视图名或表名称

search-conditions;删除条件

例:略


UPDATE
UPDATE view_name|table_name SET column_1 = value_1ist WHERE search_conditions

或UPDATE view_name|table_name SET column_1|* = value_1ist WHERE search_conditions

更新数据语句。

view_name|table_name:表名称或视图表名称

value_1ist:字段值

search_conditions:更新数据的条件

例:略


CHECK TABLE table-name
检查索引语句。

语句使用者是表的拥有者或拥有DBA权限;不能对systable使用此语句。

例:略


REPAIR TABLE table-name
修复索引。

语句使用者是表的拥有者或拥有DBA权限;不能对systable使用此语句。

例:略


LOAD FROM “file-name” INSERT INTO table_name [(column_name[,…])]
将文本数据栽入表中。

例:load form “aa.txt” insert into user;


UNLOAD TO “pathname”
将表中数据卸为文本。

例:unload to “aa.txt” select * from user;


INFO
系统信息查询。

INFO TABLES:得到当前数据库上表的名字。

INFO columns FOR table_name:指定表上的字段信息。

INFO INDEXES FOR table_name:指定表上的索引信息。

INFO [ACCESS|PRIVILEGES] FOR table_name:指定表上的存取权限。

INFO STATUS FOR table_name:指定表的状态信息。
例: info tables;

中查找“主要SQL语句详解”更多相关内容

中查找“主要SQL语句详解”更多相关内容



上一篇:SQL语法参考手册(SQL)
下一篇:SQL概述及在网络安全中的应用
最近更新 赞助商
·性能损伤SQL Server 2008的全文检索11-20
·如何使用 SQL Server 数据库查询累计值10-29
·MSSQL server数据库备份还原SQL语句10-28
·SQL Server 2005最后的升级:SP3年底发布10-24
·微软SQL Server 2008数据库中的新数据类型10-13
· 微软发布数据库SQL Server规划线路图和..10-13
·教你如何在SQL Server数据库中加密数据10-13
·在SQL Server 2008数据库中实现数据压缩09-19
·网友分析微软SQL Server 2008的精妙之处09-19
·免费SQL注入扫描程序09-18
·Microsoft RTM版本数据库SQL Server 200809-11

共有评论 0 条 网友评分 0分 查看所有评论


发表评论→ 学而不思则罔,思而不学则殆,请大胆发表你的见解。

输验证码:

您对此篇文章的评分:1分 2分 3分 4分 5分

  • 站内搜索
关键词

搜索方式

搜索范围

精确匹配
Baidu
网站首页 - 关于本站 - 网站地图 - 广告合作 - 站点声明 - RSS订阅 - 联系我们
Copyright © 2005 网海拾贝.[新ICP备05003216号]. All Rights Reserved .