您的位置:首页 > 博客中心 > 数据库 >

SQL语法基础:DDL、DML

时间:2022-03-15 07:37

一、DDL(Data Definition Language):数据定义语句

#常见的语句

1)CREATE TABLE/DATABASE:创建数据库

CREATE [TEMPORARY] TABLE tbl_name
[(create_definition,...)]
[table_options] [select_statement]

2)ALTER TABLE/DATABASE:创建数据库表格

ALTER TABLE tbl_name
alter_specification [, alter_specification] ...
alter_specification:
ADD [COLUMN] column_definition [FIRST | AFTER col_name ]
| ADD [COLUMN] (column_definition,...)
| ADD INDEX (index_col_name,...)
| ADD [CONSTRAINT [symbol]]
PRIMARY KEY (index_col_name,...)
| ADD [CONSTRAINT [symbol]]
UNIQUE (index_col_name,...)
| ADD (index_col_name,...)
| ADD [CONSTRAINT [symbol]]
FOREIGN KEY (index_col_name,...)
[reference_definition]
| ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
| CHANGE [COLUMN] old_col_name column_definition
[FIRST|AFTER col_name]
| MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
| DROP [COLUMN] col_name
| DROP PRIMARY KEY
| DROP INDEX index_name
| DROP FOREIGN KEY fk_symbol
| DISABLE KEYS
| ENABLE KEYS
| RENAME [TO] new_tbl_name
| ORDER BY col_name
| CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]
| [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name]
| DISCARD TABLESPACE
| IMPORT TABLESPACE
| table_options

3)DROP TABLE/DATABASE:修改数据库表格

DROP [TEMPORARY] TABLE
tbl_name [, tbl_name] ...
[RESTRICT | CASCADE]

4)CREATE VIEW:创建查询命令

CREATE[ORREPLACE][ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]

5)ALTER VIEW:修改查询命令

ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]

6)DROP VIEW:删除查询命令

DROP VIEW
view_name [, view_name] ...
[RESTRICT | CASCADE]

7)TRUNCATE TABLE:删除数据表内容

TRUNCATE TABLE name [DROP/REUSE STORAGE]
DROP STORAGE:显式指明释放数据表和索引的空间
REUSE STORAGE:显式指明不释放数据表和索引的空间
 
注意:
 1)在一些特定情况下,如:金融、安全、税务等等部门,有一些数据库为了安全需要,需要禁止执行DDL语句。在Oracle数据库下,禁止DDL语句需要执行下面的SQL语句:
 2)执行完这条语句之后,Oracle所有的DDL语句,均无法执行,包括SYS用户。
 

二、DML:数据操纵语句

1)功能:

 A、主要功能即是访问数据,因此其语法都是以读取与写入数据库为主,除了INSERT以外,其他指令都可能需搭配指令来过滤数据范围,或是不加WHERE指令来访问全部的数据。 

 B、负责(对数据库对象运行数据访问工作的)指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除,是开发以数据为中心的应用程序必定会使用到的指令,因此有很多开发人员都把加上SQL的SELECT语句的四大指令以“”来称呼。
 

2)基本语法结构

 A)SELECT

  主条目:
  功能:查询表格内字段数据,可搭配条件限制的子句(如where)或排列顺序的子句(如order)来获取查询结果。
  格式:
1
SELECT  [ ALL  |  DISTINCT ]  栏位名 [, 栏位名...]  FROM  资料表名 [, 资料表名...]  [ WHERE  筛选条件式]  [ GROUP  BY  栏位名[, 栏位名.. .]]  [ ORDER  BY  栏位名[, 栏位名...]]

 B)INSERT

  条目:
  功能:将数据插入到数据库对象中,可以插入数据的数据库对象有以及可更新查看表两种。
  格式:
1
2
INSERT  INTO  [ 资料表或可更新检视表物件名称]  ( 栏位1 ,  栏位2 ,  栏位3 ,  ...)  VALUES  ( 值1 ,  值2 ,  值3 ,  ...)  --只需要根据指定的栏位来设定插入值。
INSERT  INTO  [ 资料表或可更新检视表物件名称]  VALUES  ( 值1 ,  值2 ,  值3 ,  ...)  --必须要指定所有栏位的插入值。
  例如:
1
INSERT  INTO  myTable  ( col1 ,  col2 ,  col3 ,  col4 ,  col5 )  VALUES  ( 1 ,  2 ,  3 ,  ‘4‘ ,  ‘5‘ 
1
INSERT  INTO  myTable  VALUES  ( 1 ,  2 ,  3 ,  ‘4‘ ,  ‘5‘ )

 C)UPDATE

  条目:
  功能:依给定条件,将匹配条件的数据表中的数据,更新为新的数值
  格式:
1
UPDATE  [ 资料表或可更新检视表物件名称]  SET  栏1 = 值1 ,  栏2 = 值2 ,  栏3 = 值3 ,  ...  WHERE  [ 指定条件]
  例如:
1
UPDATE  myTable  SET  Col1  =  3 ,  Col2  =  5 ,  Col4  =  5  WHERE  Col0  =  198273

 D)DELETE

  条目:
  功能:删除自数据库对象中数据
  格式:
1
2
DELETE FROM [资料表或可更新检视表名称] WHERE [给定条件]
DELETE * FROM [资料表或可更新检视表名称] WHERE [给定条件] -- 部份资料库需要加"*" 才会生效,例如Microsoft Access
  例如:
1
DELETE  FROM  myTable  WHERE  col0  =  1918299

 

热门排行

今日推荐

热门手游