Java学习笔记-Java基础13(SQL之表)

1.SQL:结构化查询语言,是执行在关系数据库上执行数据操作、检索及维护所使用的标准语言。可分为:

    1)DDL:数据定义语言,用于建立、修改、删除数据库对象

        -CREATE:创建表或其他对象结构

        -ALTER:修改表或其他对象结构

        -DROP:删除表或其他对象结构

        -TRUNCATE:删除表数据,保留表结构

    2)DML:数据操作语言,用于改变表中的数据

        -INSERT:将数据插入表中

        -UPDATE:更新表中已存在的数据

        -DELETE:删除表中的数据

    3)TCL:事务控制语言,用来维护数据一致性

        -COMMIT:提交,确认已经进行的数据改变

        -ROLLBACK:回滚,取消已经进行的数据改变

        -SAVEPOINT:保存点,使当前的事务可以回退到指定的保存点,便于取消部分改变

    4)DQL:数据查询语言,用来查询数据

        -SELECT语句

    5)DCL:数据控制语言,用于执行权限的赋予和收回

        -GRANT:授予,用于给用户或角色授予权限

        -REVOKE:收回,用于收回用户或角色的权限

        -CREATE USER:创建用户

2.数据类型

    1)NUMBER:数字类型,经常被定义为NUMBER(P,S)

        -P:表示数字的总位数

        -S:表示小数点后的位数

    2)CHAR:固定长度的字符类型,经常被定义为CHAR(N)

        -N:表示字节数,最大长度是2000

    3)VARCHAR2:变长字符类型,经常被定义为VARCHAR2(N)

        -N:表示字节数,最大长度是4000

    4)DATE:日期时间的数据类型,长度7个字节,默认格式:DD-MON-RR

3.DML语法:

    1)CREATE TABLE [schema.]table_name (column_name datatype[DERAULT expr][...]):创建表

Java学习笔记-Java基础13(SQL之表)

    2)DESC table_name:查看表结构,可显示表的列名字,以及对应的数据类型,长度等

    3)DROP TABLE table_name:删除表

    4)RENAME old_name TO new_name:修改表名字

    5)ALTER TABLE table_name ADD (column_name datatype[DERAULT expr][...]):增加列,只能加在最后

    6)ALTER TABLE table_name DROP (column_name):删除表的列

    7)ALTER TABLE table_name MODIFY (column_name datatype[DERAULT expr][...]):修改表中的列

        -尽量不修改字段类型

        -字段长度尽量不要减少

        -修改后的字段,只对以后插入的新数据有影响,修改前的不影响

    8)INSERT INTO table_name (column,column...) VALUES (value,value...):插入对应列数据到表中,没有列举的列会插入null,但是若该列有默认值,会插入默认值,如果某列有NOT NULL约束,插入时没有指定,会报出违反不为空约束的异常

Java学习笔记-Java基础13(SQL之表)

    9)UPDATE table_name SET column=value,column=value... [WHERE condition]:修改表中的记录,若没有where子句,则全表的数据都会被修改

Java学习笔记-Java基础13(SQL之表)

    10)DELETE FROM table_name [WHERE condition]:删除表中的数据,若不添加where子句会全表删除

4.DELETE和TRUNCATE的区别:

    1)DELETE可以有条件的删除,TRUNCATE将表中的数据全部删除

    2)DELETE是DML语句,可以回退,TRUNCATE是DDL语句,立即生效,无法回退

    3)如果删除表中的全部数据,且数据量较大时,TRUNCATE的效率高

5.DML语句执行后,需要再执行COMMIT,才算真正的执行