SQL入门经典小结

前言

      听说,SQL就是数据库?我抱着这种疑问开始了对SQL的学习。为期两周的学习,今天终于摘下了它的面具,慢慢地看清它的真面孔。

正文

初见,在那个上午

      两周前,我打开PDF版的SQL入门经典,看到目录的那一刻,只是觉得内容好多呀,我能在预期内初步学习完它嘛?这念想只是一闪而过,然后就开始了对它的探索。利用三四天的零散时间看完了第一遍。脑海中感觉乱乱的,但还是硬着头皮画了一下思维导图,企图利用导图来帮助自己逐渐理清脉络。下面这就是自己的第一版SQL思维导图。


相识,在那个下午

      与它相见之后的几天里,对它不敢有一点怠慢,在第一遍大致浏览过后,就紧接着进行了第二遍详细的学习。为了有更好的学习的感觉,也为了在短时间内能方便学习,所以就从图书馆借了一本纸质版的SQL。在这学习的过程中,还要感谢它是如此的善待我。随着时间的推移,脑海中的阴霾逐渐驱散开来,慢慢地看到了零星的灯光。接下来就跟随我一起,来看看这星星点点的灯光吧。

       数据库:百度上面给出的定义是,数据库是按照数据结构来组织、存储和管理数据的仓库。它能够帮助我们存储、组织和检索数据。简单来说,它就像我们机房工具部门盛放工具的仓库一样。仓库里有很多种工具,像音响、麦克风、装展牌用的螺丝、改锥等等,很多的工具都放在一间屋子里,也就是一个仓库里。虽然工具很多,但它们不是乱放置的,而是由管理员制定一定的标准,按照一个标准把他们分门别类放到不同的地方。这个盛放工具的仓库就好比是一个数据库,仓库屋子是425,也就是说,当我们提到425机房时,大家就会想到里面都是我们需要的工具。425机房就相当于数据库中提到的“表”。在数据库中插入一个名为“XX表”,当我们提到这个表时,也该会让我们联想到里面存放的信息,这些信息也该是分门别类存放。那么这些工具都是按什么来分开存放的呢?比如说按照工具的功能,或者按照物品的名称,将相同一类的放到一起,这些分类的标准在数据库就类似于是“字段”,一个物品名称为一个字段,或者某一功能为一字段,这些所有“字段”集合在一起就组成了一个“表”。就拿咱们装站牌时所用工具来说,需要螺丝、螺母、改锥等基本工具。如果分别以它们的名称为各个字段的话,在螺丝、螺母的集合中就包含了不同大小型号的螺丝螺母。比如螺丝、螺母共有五种配套类型,这些里面就包含了所有我们需要类型、数量的螺丝螺母,这些集合在一起就相当于数据库中提到的“记录”。详细记载、包含了所有需要的东西。

      仓库按照一定的标准放置工具,为什么要这样做呢?最大的优点就是方便我们寻找工具。可能大家都有这样的体验,高中的我们每时每刻都与堆积成山的卷子打交道,当老师上课讲某张卷子时,我们是很平淡、很顺其自然地就把卷子拿出来,还是从成堆的教材中、练习册中匆忙的翻找出来呢?数据库也是一样,存放的大量的数据信息都是按照一定的逻辑方式组织而成的,当我们检索自己需要的数据时就非常的快速了,大大的提高了我们的搜索效率。除此以外,数据库还有更多的优点。比如数据保持一致性(数据类型一样)、能够存储原始数据(不经过处理而存在的数据,比如收集大家的自考成绩,只要每科的成绩,而不需要大家计算出自己的平均分啥的)、共享容易(就像大家网购一样,看到谁买的东西好,就让他给自己分享链接,然后自己点进去,进入的都是同一卖家)、安全性高(一些数据的分享是有选择性的,管理员有分配权,想让什么人看到什么东西他就能够办到。就像QQ的普通用户和VIP用户一样,被挡访客的信息只有VIP才能看到,普通用户看不到)。

      数据库是宏观上呈现在大家眼前的东西,而SQL是建立、更新、删除、查询数据库所需要的背后力量。像425库房一样,不打开门,看到的就是和我们学习使用的机房一样的房间,打开门后才能看到各种工具,因为这些工具的存在,才把这间屋子称为库房。SQL中文翻译就是结构化查询语言。从这个名字中不难看出它是一门语言,像汉语、英语一样。既然是语言,那么就该与语言的特征。学习过英语语法、汉语语法,SQL也该有属于它自己的语法。这门语言的一大特点就是呈现结构化、标准化,有相应的语法规则。SQL最常用的功能就是用于查询,还有创建、更新、删除的功能。不同的功能由SQL中不同的子语言负责。

     创建新表和字段、定义结构、建立规则等,都是由DCL(数据控制语言)来表达,语句关键字有grant,revoke,commit,rollback;查询功能由DML(数据操纵语言)来负责,语句关键字包括select、insert、update、delete;在数据库中创建新表或删除表、为表加入索引等,都是由DDL(数据定义语言)负责,语句关键词包括create、alter、drop和declare。

下面就将SQL入门经典书中的基本语句进行简要的汇总:

1.创建数据库:create database 数据库名称

 *数据库名称的设置:用字母、数字、下划线,不用标点,一般不以数字开始,提高安全性。

2.删除数据库:drop database 数据库名称

3.添加表

 A、创建新表:create table tablename

    使用旧表创建新表:create table name_of_table

 B、更改表

    添加列:alter table name_of_table

               add name_of_field data_type

    删除列:alter table name_of_table

               drop column name_of_field

 C、删除现有表:drop table name_of_table

4.在一个表中基本的SQL语句

 A、插新数据:insert into table_name(column_name) values(data_values)

 B、检查添加的数据是否正确:select * from 新插入的名

 C、更新数据:update table_name

               set column_name_value

               where condition

    *where 子句:检查一个条件,或者测试多个条件(用and、or连接)

 D、删除数据:delete from 标识符

 E、查询信息:select column1 from table_name

 F、仅返回不同的行(不重复获取):select distinct xxx from xxx

 G、使用别名:select (原本返回名) as (取代名) from xxx

 H、过滤结果:利用where子句

 I、排序查询结果:select * from table order by field1,field2 desc(降序)、默认是升序ASC

 J、分组数据:用croup by 子句  过滤分组:使用having子句                         

5.从一个表复制到另一个表:用insert into语句复制select语句,提供的数据到另一个表

6.从多个表中选择数据

 内部联合:inner join

 交叉联合:cross join

 外部联合:outer join

7.可以利用索引加速对结果的查询

  创建索引:create index <index_name>

             on <table_name>(<column_names>)

  删除索引:drop index语句

      除了以上这些新接触的知识,还有其他的在以前的学习中已经接触到的东西,比如数据类型、函数等内容,同样也可以应用到我们学习的SQL中。 由这些基本语句构成的复杂结构,应用子查询、函数等一些嵌套结构,需要按照一定的逻辑、一定的结构顺序完成相应的功能。

相知,在那个晚上

      前两遍持续地学习,逐渐深入地了解了SQL后,想着再重新梳理一下整体内容,翻开书后,突然不知道该怎么把这些内容串联在一起了。仔细回顾了一下大致内容,发现自己还不能比较清晰的表达出他们之间的联系,顿时有了想放弃总结的念想了。但还是在浏览了自己的手写稿凌乱的笔记之后,强迫自己重新做总结。下面的思维导图就是建立在前两遍的学习基础之上的第二版总结。


结语

      总的来说,这两周的学习确实让我对SQL和数据库有了初步的认识。并且在这学习的过程中,能够提前计划如何学习,每天学习什么内容,学习进度的安排都在自己的掌控之中,整体感觉还是不错的。未来还需继续深入学习。

猜你喜欢

转载自blog.csdn.net/LZ15932161597/article/details/80775329