数据库系统原理第三章学习心得
    在这一章我了解了SQL语言的产生和发展,学习了SQL的数据定义和各种查询方法,还学习了SQL的数据更新和视图的建立。

    通过学习我了解到SQL有很多数据类型,我把他们归为了四类,分别是字符串类型、数值类型、日期类型和二进制类型。其中字符串类型有char、varchar2、nchar、long、clob等。其中最好不要使用char,首先它不是变长的,会造成磁盘空间的浪费,其次它的最大长度没有varchar2长。nchar的特点是支持Unicode。clob的特点是可以存放音频和视频;数值类型有number、numeric和int等等,使用最广泛的是number类型,它可以根据我们的需求来设置,numeric和int都是number的特殊情况,numeric相当于number带上size,int相当于number不带size。;日期类型分为date和timestamp两种,date储存了世纪、年、月、日期、小时、分钟和秒,一般占用7个字节的存储空间。timestamp时间戳有小数秒,但是如果与数值进行加减运算会自动转换为date型,也就是说小数秒会自动去除;二进制类型主要有raw、blob等类型,用于存储未结构化的数据。

    SQL是一种结构化查询语言,它是由DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)、TCL(事务控制语言)和DCL(数据控制语言)构成的。

    其中,DDL可以用create、alter、drop命令创建、更改、删除表、索引、视图等。

    而DML可以用insert、update、delete相关命令添加、更新、删除表中的数据。

    DQL使用select选择查询语句来进行查询操作。我把所学的查询归总了一下,分别有普通查询(select x from x)、比较运算符查询(<=>)、区间查询(between x and x)、空值判断查询(select x from x where x is null/is not null)、逻辑查询(and、or)、算术运算查询(select x from x where x=x+1)、关键词查询(in、like、distinct、as、order by)、聚合查询和分组聚合查询(聚合函数有min、max、sum等等,利用order by可以实现分组聚合查询)、嵌套子查询(主要分为行子查询和表子查询)、分页查询、多表查询(交叉连接、内连接、外连接、自然连接)、合并查询。

    TCL主要有commit提交命令、rollback回滚命令、savepoint设置回滚点命令。

    DCL常用命令有conn、show user、disconn、quit、create user、alter user、grant、revoke、lock等。

    通过对第三章的学习,我对SQL语法有了初步的理解,我相信随着不断地学习,我对数据库的理解会越来越深刻。