DDL语句DML语句TCL语句

来源:互联网 发布:windows8装mac 编辑:程序博客网 时间:2024/06/05 17:32

一.表操作(DDL)

1.创建表

CREATE TABLE table_name(

  column_name  datatype [DEFAULT  expr],

  column_name  datatype [DEFAULT  expr],

     ...

 column_name  datatype [DEFAULT  expr]

);

注意创建表时,列与列之间用逗号隔开,最后一列之后不需要逗号

DEFAULT表示设置默认值

NOT  NULL表示一种约束条件,表示当数据更改时,这一列不能为空


2.查看表结构:可以看见表名,数据类型,长度

DESC  table_name;


3.删除表:删除表的结构和类容

DROP TABLE  table_name;


4.删除表表的内容,保留表的结构(即保留列)

TRUNCATE TABLE  table_name;


5.给表重命名

RENAME  old_name  TO  new_name;


二.列操作(DDL)

1.增加列:只能增加在最后,不能插入现有列之中

ALTER  TABLE  table_name  ADD(

    column_name  datatype(length)  [DEFAULT  expr],

    column_name  datatype(length)  [DEFAULT  expr],   

       ...

    column_name  datatype(length)  [DEFAULT  expr]

);


2.删除列:需要从每一行中删除该字段所占据的长度和数据,并释放在数据块中占据的空间

ALTER TABLE  table_name  DROP(column);


3.修改列:尽量不要修改字段的类型,字段的长度尽量不要减少,修改后的字段只对新插入的数据产生影响。修改前的所有字段数据不受影响(即修改前的字段数据延用未修改的类型和长度)。

ALTER  TABLE  table_name  MODIFY(

    column_name  datatype(length)  [DEFAULT  expr],

    column_name  datatype(length)  [DEFAULT  expr],   

       ...

    column_name  datatype(length)  [DEFAULT  expr]

);


三.数据操作(DML)

1.向表中插入数据

INSTERT  INTO  table_name(column_name,column_name,...,column)

VALUES(value,value,...,value);

注意:

(1)列名必须和插入的数据一一对应,若不写列名,则是全列依次插入

(2)指定的列对应的值会被插入表中对应的列,未被列举的列会被插入NULL。

(3)若某一列未被列举但设置有默认值,则会插入设置的默认值

(4)若某一列设置为NOT NULL,则在列举时必须列举该列,在插入数据时,这一列也必须插入数据,否则会抛出违反为空约束的异常。


2.修改表中的记录数据

UPDATE  table_name 

SET  column_name = value,

         column_name = value,

              ...

         column_name = value

WHERE  condition;

若没有WHERE子句,则全表的数据都会被更新,通常情况下必须加WHERE过滤条件。


3.从表中删除数据

DELETE  FROM  table_name

WHERE  condition;

如果没有WHERE过滤条件,则全表的数据都将被删除。


DELETE和TRUNCATE的区别:

(1)DELETE可以有条件的删除,TRUNCATE只能将表中的数据全部删除,DELETE更灵活。

(2)DELETE是DML语句,可以回退,TRUNCATE是DDL语句,立即生效,不能回退。

(3)TRUNCATE在删除较大数据量的全部记录时,效率更高。


四.事物控制(TCL)

1.事物提交:用于提交事物,DML操作的数据,并没有立马提交,而是在缓存中,只有自己能见,其他人不能见。

COMMIT;


2.事物回退:用于回滚事物,当执行了回滚事物操作,那么本次事物中所有未提交的增删改操作都将失效。

ROLLBACK;


3.设置保存点:将事物回滚到指定的保存点

SAVEPOINT;


五.虚表(DUAL)

虚表是一个虚幻的表,并不实际存在,只为了满足SELETE的语法要求

在数据库中我们想测试某个表达式的结果只能用SELETE语句来实现

我们常常用虚表来测试表达式的结果。当SELETE语句中没有任何表中的字段参与时,我们选择使用虚表。

0 0