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 |