SQLÓïÑÔ·ÖÀà
DDL¡ªÊý¾Ý¶¨ÒåÓïÑÔ(Create£¬Alter£¬Drop£¬DECLARE)
DML¡ªÊý¾Ý²Ù×ÝÓïÑÔ(Select£¬Delete£¬Update£¬Insert)
DCL¡ªÊý¾Ý¿ØÖÆÓïÑÔ(GRANT£¬REVOKE£¬COMMIT£¬ROLLBACK)
Êý¾Ý¶¨ÒåÓïÑÔ
Êý¾Ý¶¨ÒåÓïÑÔ (Data Definition Language, DDL) ÊÇSQLÓïÑÔ¼¯ÖиºÔðÊý¾Ý½á¹¹¶¨ÒåÓëÊý¾Ý¿â¶ÔÏó¶¨ÒåµÄÓïÑÔ£¬ÓÉCREATE¡¢ALTERÓëDROPÈý¸öÓï·¨Ëù×é³É£¬×îÔçÊÇÓÉ Codasyl (Conference on Data Systems Languages) Êý¾ÝÄ£ÐÍ¿ªÊ¼£¬ÏÖÔÚ±»ÄÉÈë SQL Ö¸ÁîÖÐ×÷ΪÆäÖÐÒ»¸ö×Ó¼¯¡£Ä¿Ç°´ó¶àÊýµÄDBMS¶¼Ö§³Ö¶ÔÊý¾Ý¿â¶ÔÏóµÄDDL²Ù×÷£¬²¿·ÝÊý¾Ý¿â (Èç PostgreSQL) ¿É°ÑDDL·ÅÔÚ½»Ò×Ö¸ÁîÖУ¬Ò²¾ÍÊÇËü¿ÉÒÔ±»³·»Ø (Rollback)¡£½Ïа汾µÄDBMS»á¼ÓÈëDDLרÓõĴ¥·¢³ÌÐò£¬ÈÃÊý¾Ý¿â¹ÜÀíÔ±¿ÉÒÔ×·×ÙÀ´×ÔDDLµÄÐ޸ġ£
CREATE
CREATE ÊǸºÔðÊý¾Ý¿â¶ÔÏóµÄ½¨Á¢£¬¾Ù·²Êý¾Ý¿â¡¢Êý¾Ý±í¡¢Êý¾Ý¿âË÷Òý¡¢Ô¤´æ³ÌÐò¡¢Óû§º¯Êý¡¢´¥·¢³ÌÐò»òÊÇÓû§×Ô¶¨ÐͱðµÈ¶ÔÏ󣬶¼¿ÉÒÔʹÓà CREATE Ö¸ÁîÀ´½¨Á¢£¬¶øÎªÁ˸÷ʽÊý¾Ý¿â¶ÔÏóµÄ²»Í¬£¬CREATE Ò²ÓкܶàµÄ²ÎÊý¡£
ÀýÈ磬CREATE DATABASE (½¨Á¢Êý¾Ý¿â) µÄÖ¸ÁîΪ£º
CREATE DATABASE Sales
ON ( NAME = Sales_dat, FILENAME = 'saledat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )
LOG ON ( NAME = Sales_log, FILENAME = 'salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )
ÆäÖеÄONΪÊý¾Ý¿âÎļþµÄÉùÃ÷£¬¶øLOG ONΪ½»Ò׼ǼµµµÄÉùÃ÷¡£ ÈôÐèÒª¸ü¸ß¼¶µÄÉèÖã¬Ôò»¹ÓÐ FOR ºÍ WITH ÒÔ¼° COLLATEµÈµÈ¡£
ÓÖÀýÈ磬CREATE TABLE (½¨Á¢Êý¾Ý±í) µÄÖ¸ÁîΪ£º
CREATE TABLE [dbo].[PurchaseOrderDetail](
[PurchaseOrderID] [int] NOT NULL REFERENCES Purchasing.PurchaseOrderHeader(PurchaseOrderID), -- ¾ßÒýÓÃÍêÕûÐÔÏÞÖÆ×Ö¶Î
[LineNumber] [smallint] NOT NULL,
[ProductID] [int] NULL REFERENCES Production.Product(ProductID), -- ¾ßÒýÓÃÍêÕûÐÔÏÞÖÆ×Ö¶Î
[UnitPrice] [money] NULL,
[OrderQty] [smallint] NULL,
[ReceivedQty] [float] NULL,
[RejectedQty] [float] NULL,
[DueDate] [datetime] NULL,
[rowguid] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT
[DF_PurchaseOrderDetail_rowguid] DEFAULT (newid()), -- ¾ßÏÞÖÆ×ֶΣ¬²¢ÓÐĬÈÏÖµ
[ModifiedDate] [datetime] NOT NULL CONSTRAINT [DF_PurchaseOrderDetail_ModifiedDate] DEFAULT (getdate()), -- ¾ßÏÞÖÆ×ֶΣ¬²¢ÓÐĬÈÏÖµ
[LineTotal] AS (([UnitPrice]*[OrderQty])),
[StockedQty] AS (([ReceivedQty]-[RejectedQty])),
CONSTRAINT [PK_PurchaseOrderDetail_PurchaseOrderID_LineNumber] -- Ö÷¼üÐû¸æ
PRIMARY KEY CLUSTERED ([PurchaseOrderID], [LineNumber])
WITH (IGNORE_DUP_KEY = OFF)
)
ON [PRIMARY]
ÆäÖУ¬Ã¿¸ö×ֶεĸñʽ¶¼Óж¨Ò壬²¢ÇÒÈôÓÐÐèÒª½¨Á¢²Î¿¼ÍêÕûÐÔµÄÁ´½Óʱ£¬¿ÉÒÔʹÓà REFERENCES À´ÉùÃ÷£¬Ö÷¼üÔòÊÇÓÃPRIMARK KEY À´ÉùÃ÷£¬¼ÆËãÐÍ×Ö¶Î(Computed Field)ÔòÊÇÖ±½Ó¸ø¶¨±í´ïʽµÈµÈ£¬CREATE TABLE Ö¸ÁîºÜ³£Ó㬵«ÈôÉèÖÃÆðÀ´»á½ÏΪ¸´ÔÓ£¬Òò´ËºÜ¶àÊý¾Ý¿â¹ÜÀíÈËÔ±¶¼»áʹÓÃGUI¹¤¾ßÀ´Éè¼Æ¡£
ÆäËûÏñÊÇ£º
CREATE INDEX£º½¨Á¢Êý¾Ý±íË÷Òý¡£
CREATE PROCEDURE£º½¨Á¢Ô¤´æ³ÌÐò¡£
CREATE FUNCTION£º½¨Á¢Óû§º¯Êý¡£
CREATE VIEW£º½¨Á¢²é¿´±í¡£
CREATE TRIGGER£º½¨Á¢´¥·¢³ÌÐò¡£
µÈµÈ£¬¶¼ÊÇʹÓÃÀ´½¨Á¢²»Í¬Êý¾Ý¿â¶ÔÏóµÄÖ¸Áî¡£
ALTER
ALTER ÊǸºÔðÊý¾Ý¿â¶ÔÏóÐ޸ĵÄÖ¸ÁÏà½ÏÓÚ CREATE ÐèÒª¶¨ÒåÍêÕûµÄÊý¾Ý¶ÔÏó²ÎÊý£¬ALTER ÔòÊÇ¿ÉÒÀÕÕÒªÐ޸ĵķù¶ÈÀ´¾ö¶¨Ê¹ÓõIJÎÊý£¬Òò´ËʹÓÃÉϲ¢²»»áÌ«À§ÄÑ£¬ÀýÈ磺
ALTER TABLE doc_exa ADD column_b VARCHAR(20) NULL ; -- ÔÚÊý¾Ý±í doc_exa ÖмÓÈëÒ»¸öеÄ×ֶΣ¬Ãû³ÆÎª column_b£¬Êý¾ÝÐͱðΪ varchar(20)£¬ÔÊÐí NULL Öµ¡£
ALTER TABLE doc_exb DROP COLUMN column_b ; -- ÔÚÊý¾Ý±í doc_exb ÖÐÒÆ³ý column_b ×ֶΡ£
DROP
DROP ÔòÊÇɾ³ýÊý¾Ý¿â¶ÔÏóµÄÖ¸Á²¢ÇÒÖ»ÐèÒªÖ¸¶¨ÒªÉ¾³ýµÄÊý¾Ý¿â¶ÔÏóÃû³Æ¼´¿É£¬ÔÚ DDL Óï·¨ÖÐËãÊÇ×î¼òµ¥µÄ¡£
ÀýÈ磺
DROP TABLE myTable; -- ɾ³ý myTable Êý¾Ý±í¡£
DROP VIEW myView; -- ɾ³ý myView ¼ìÊÓ±í¡£
Êý¾Ý²Ù×ÝÓïÑÔ
Êý¾Ý²Ù×ÝÓïÑÔDML£¨Data Manipulation Language£©£¬Óû§Í¨¹ýËü¿ÉÒÔʵÏÖ¶ÔÊý¾Ý¿âµÄ»ù±¾²Ù×÷¡£ÀýÈ磬¶Ô±íÖÐÊý¾ÝµÄ²åÈ롢ɾ³ý¡¢Ð޸ġ¢ÅÅÐòºÍ¼ìË÷¡£
²åÈë²Ù×÷
°ÑÊý¾Ý²åÈëµ½Êý¾Ý¿âÖÐÖ¸¶¨µÄλÖÃÉÏÈ¥£¬ÈçAppend ÊÇÔÚÊý¾Ý¿âÎļþµÄĩβÌí¼Ó¼Ç¼£¬¶øINSERTÊÇÔÚÖ¸¶¨¼Ç¼ǰÌí¼Ó¼Ç¼¡£
ɾ³ý²Ù×÷
ɾ³ýÊý¾Ý¿âÖв»±ØÔÙ¼ÌÐø±£ÁôµÄÒ»×é¼Ç¼£¬ÈçDELETE ¶ÔÊý¾Ý¿âÖмǼ×÷ɾ³ý±êÖ¾¡£PACKÊǽ«±êÓÐɾ³ý±êÖ¾µÄ¼Ç¼³¹µ×Çå³ýµô¡£ZAP ÊÇÈ¥µôÊý¾Ý¿âÎļþµÄËùÓмǼ¡£
Ð޸IJÙ×÷
Ð޸ļǼ»òÊý¾Ý¿âģʽ£¬»òÔÚÔÓÐÊý¾ÝµÄ»ù´¡ÉÏ£¬²úÉúÐµĹØÏµÄ£Ê½ºÍ¼Ç¼£¬ÈçÁ¬½ÓJoin²Ù×÷ºÍͶӰ²Ù×÷Projection.
ÅÅÐò²Ù×÷
¸Ä±äÎïÀí´æ´¢µÄÅÅÁз½Ê½¡£ÈçSORTÃüÁî°´Ö¸¶¨¹Ø¼ü×Ö´®°ÑDBFÎļþÖмǼÅÅÐò¡£´ÓÎïÀí´æ´¢µÄ¹Ûµã¿´£¬Êý¾Ý¿â·¢ÉúÁ˱仯£¬µ«´ÓÂß¼µÄ¹Ûµã£¨»ò¼¯ºÏÂ۹۵㿴£©£¬ÐµĹØÏµÓëÅÅÐòǰÊǵȼ۵ġ£
¼ìË÷²Ù×÷
´ÓÊý¾Ý¿âÖмìË÷³öÂú×ãÌõ¼þµÄÊý¾Ý£¬Ëü¿ÉÒÔÊÇÒ»¸öÊý¾ÝÏһ¸ö¼Ç¼»òÒ»×é¼Ç¼¡£ÈçBROWSEµ¥ÔªÊµÏÖ¶ÔÊý¾ÝµÄä¯ÀÀ²Ù×÷¡£SELECTÑ¡³öÂú×ãÒ»¶¨Ìõ¼þºÍ·¶Î§µÄ¼Ç¼¡£
Êý¾Ý¿ØÖÆÓïÑÔ
Êý¾Ý¿ØÖÆÓïÑÔDCL£¨Data Control Language£©ÊÇÓÃÀ´ÉèÖûòÕ߸ü¸ÄÊý¾Ý¿âÓû§»ò½ÇɫȨÏÞµÄÓï¾ä£¬ÕâЩÓï¾ä°üÀ¨GRANT¡¢DENY¡¢REVOKEµÈÓï¾ä£¬ÔÚĬÈÏ״̬Ï£¬Ö»ÓÐsysadmin¡¢dbcreator¡¢db_owner»òdb_securityadminµÈ½ÇÉ«µÄ³ÉÔ±²ÅÓÐȨÀûÖ´ÐÐÊý¾Ý¿ØÖÆÓïÑÔ¡£
GRANTÓï¾ä
GRANTÓï¾äÊÇÊÚȨÓï¾ä£¬Ëü¿ÉÒÔ°ÑÓï¾äȨÏÞ»òÕß¶ÔÏóȨÏÞÊÚÓè¸øÆäËûÓû§ºÍ½ÇÉ«¡£
ÊÚÓèÓï¾äȨÏÞµÄÓï·¨ÐÎʽΪ£ºGRANT {ALL | statement[,...n]} TO security_account [ ,...n ]
ÊÚÓè¶ÔÏóȨÏÞµÄÓï·¨ÐÎʽΪ£ºGRANT{ ALL [ PRIVILEGES ] | permission [ ,...n ] }{[ ( column [ ,...n ] ) ]ON { table | view }| ON { table | view } [ ( column [ ,...n ] ) ]| ON {stored_procedure | extended_procedure }| ON { user_defined_function } }TO security_account [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role} ]
DENYÓï¾ä
DENYÓï¾äÓÃÓھܾø¸øµ±Ç°Êý¾Ý¿âÄÚµÄÓû§»òÕß½ÇÉ«ÊÚÓèȨÏÞ£¬²¢·ÀÖ¹Óû§»ò½Çɫͨ¹ýÆä×é»ò½ÇÉ«³ÉÔ±¼Ì³ÐȨÏÞ¡£·ñ¶¨Óï¾äȨÏÞµÄÓï·¨ÐÎʽΪ£ºDENY { ALL | statement [ ,...n ] } TO security_account [ ,...n ]
·ñ¶¨¶ÔÏóȨÏÞµÄÓï·¨ÐÎʽΪ£ºDENY{ ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( column [ ,...n ] )] ON { table | view } | ON { table | view } [ ( column [ ,...n ] ) ] |ON { stored_procedure | extended_procedure } | ON {user_defined_function } } TO security_account [ ,...n ] [ CASCADE ]
REVOKEÓï¾ä
REVOKEÓï¾äÊÇÓëGRANTÓï¾äÏà·´µÄÓï¾ä£¬ËüÄܹ»½«ÒÔǰÔÚµ±Ç°Êý¾Ý¿âÄÚµÄÓû§»òÕß½ÇÉ«ÉÏÊÚÓè»ò¾Ü¾øµÄȨÏÞɾ³ý£¬µ«ÊǸÃÓï¾ä²¢²»Ó°ÏìÓû§»òÕß½ÇÉ«´ÓÆäËû½ÇÉ«ÖÐ×÷Ϊ³ÉÔ±¼Ì³Ð¹ýÀ´µÄȨÏÞ¡£
ÊÕ»ØÓï¾äȨÏÞµÄÓï·¨ÐÎʽΪ£ºREVOKE { ALL | statement [ ,...n ] } FROM security_account [ ,...n ]
ÊջضÔÏóȨÏÞµÄÓï·¨ÐÎʽΪ£ºREVOKE[ GRANT OPTION FOR ] { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [( column [ ,...n ] ) ] ON { table | view } | ON { table | view } [ (column [ ,...n ] ) ] | ON { stored_procedure | extended_procedure } |ON { user_defined_function } } { TO | FROM } security_account [ ,...n ][ CASCADE ] [ AS { group | role } ]
|
ÎÄÕÂ
|
21399
|
´´½¨ÈÕÆÚ
|
10-15-2014
|
×÷Õß
|
lill
|
ÆÀ·Ö
|
(None)
|
|