{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

如何更好的学习和理解SQL及语法?

zhaochunqizhaochunqi 回答0 收藏1
收藏问题

6条回答

hss01248

hss01248

回答于2022-06-28 13:43

其实如果想学好sql还是一个比较漫长的过程,需要时间积累,看你提问你应该是想有一个比较深刻的sql知识掌握,深度学习sql肯定就离不开对数据库原理的掌握,数据库我建议你选择mysql,开源数据库可以根据个人能力去挖掘学习,而mysql以后可能也是主流,所以个人建议基本分下面几步去学习,:

1.首先不要追求太深入,达到会写会用的阶段就好,熟练编写sql语句,即买本教材边看边练习,包括简单的sql语句和后期的高级sql。

2.熟练编写以后就是对sql的优化,比如explain等,这个阶段就是理解sql的执行过程并掌握如何写出高效的sql。

3.最后一步就是了解掌握数据库原理,这对你的sql知识是很大的提高.

希望对你有所帮助,谢谢……

评论0 赞同0
  •  加载中...
lylwyy2016

lylwyy2016

回答于2022-06-28 13:43

如何更好的学习和理解SQL及语法?

首先:

对于仅限于增删改查辅助类似java的其他语言使用来说需要掌握的东西不用太多是很好学习和理解的

基本熟练使用DML(数据库操作语言) 、DDL(数据库定义语言)、DQL(数据库查询语言)、DCL(数据库控制语言)

(1)DML:用于更新、删除和插入记录的语法。

  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据

(2)DDL:用于创建或删除表格,也可以定义索引(键),规定表之间的关系,以及添加表间的约束。

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

(3)DQL:用于执行查询的语法,基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块。

  SELECT <字段名>

  FROM <表名或视图>

  WHERE <条件>

(4)DCL:用于创建与用户访问相关的对象,以及控制用户的权限

  • ALTER PASSWORD
  • GRANT <授权>
  • REVOKE
  • CREATE SYNONYM

相关书籍:初学者推荐图灵出的《SQL必知必会(第4版)》 等

如果要更深层次的学习和使用就不是一朝一夕之功了,下一步就需要关注SQL语句的执行性能和各种数据库系统的原理

虽然 SQL 是一门 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的 SQL 语言。之前学习的时候在论坛看到《十步完全理解 SQL--很好的一篇关于sql的文章》提供了学习sql时的思考方式觉得不错,我简要列出十条目录分享给各位,如有需要请百度搜索。

  1. SQL 是一种声明式语言
  2. SQL 的语法并不按照语法顺序执行
  3. SQL 语言的核心是对表的引用(table references)
  4. 灵活引用表能使 SQL 语句变得更强大
  5. SQL 语句中推荐使用表连接
  6. SQL 语句中不同的连接操作
  7. SQL 中如同变量的派生表
  8. SQL 语句中 GROUP BY 是对表的引用进行的操作
  9. SQL 语句中的 SELECT 实质上是对关系的映射
  10. SQL 语句中的几个简单的关键词: DISTINCT , UNION , ORDER BY 和 OFFSET

在进一步学习时看一些书籍是很必要的例如:《SQL解惑(第2版)》,《SQL沉思录》、《SQL编程风格》、《SQL权威指南》等

希望对大家有所帮助,我是老猫儿c,偶尔分享一些东西,求赞求关注。

评论0 赞同0
  •  加载中...
inapt

inapt

回答于2022-06-28 13:43

别看太高深的SQL,可以看看入门的SQL,像计算机二级这种水平的,入门什么的,肯定就可以了,而且也不难,也非常好接受。

希望对你的学习有帮助~~

评论0 赞同0
  •  加载中...
SoapEye

SoapEye

回答于2022-06-28 13:43

从基础知识开始,再加上更多的动手练习,SQL的语法并不难。遇到问题尽量想办法解决,在解决问题的过程中就可以学到更多知识。

推荐看一下《SQL基础教程第二版》,《SQL 必知必会》。这两本书介绍的内容比较详细和全面。

此外也可以关注一下SQL 这方面的技术作者,可以了解一些深层次的内容,有助于开阔技术层面。

评论0 赞同0
  •  加载中...
cooxer

cooxer

回答于2022-06-28 13:43

谢邀。SQL不是过程的语言,写惯了流程的程序员开始的时候可能会有些不适应。理解SQL的语义而不是语法是成为SQL达人的关键。

Where语句的语义

举个例子,一个学生表通常使用学号作为主键,学号就代表了学生的所有信息。当Where语句中使用了全主键时,就是代表了一个特定的对象。在Where语句中使用普通字段或部分主键时,需要注意这些字段的语义并做相应的处理。现在思考一下如何从学生表中找到所有男生的名单:

  • 普通的办法 让学生排好队,一个一个看过去,遇到男生就记下来。
  • 高效的办法 让男生和女生分别站成两队,然后让男生报上名字。

通过给性别建立索引可实现高效的办法。这个索引的赋予性别字段的语义就是让男生和女生分别站队。

Join语句的语义

使用Join语句时,要抓住相互组合的数据表在语义上的关系。再以学生表为例,这次我们增加一个成绩表。我们想找出平均成绩80分以上的学生名单。在这个需求中抽出的对象是学生表,但是学生表中没有平均成绩的属性,需要用成绩表算出来。从语义的角度来看,要先做一个平均成绩表,从中选出80分以上的学号,同学生表组合即可。可以看出由于学生表中缺少了平均成绩字段,我们只好先做一个平均成绩表,这种做法效率不高。最好的办法是在学生表中加入平均成绩字段,在登录学生成绩的同时,顺便把学生表也更新了。这样就可以用这样的方法选出学生了:

  • 平均成绩从高到低排队,选出80分以上的学生(对平均成绩建立索引)

上面两个例子试图说明写好SQL文的关键是明确语义的关系。很多时候数据表的设计并不理想,经常出现使用复杂SQL文重新组合出所需的字段的情形,这时候,要抓住目标对象的语义,排除所有多余的操作才能让SQL简洁易懂。

评论0 赞同0
  •  加载中...
diabloneo

diabloneo

回答于2022-06-28 13:43

如何更好的学习和理解SQL及语法?

首先找一两本比较好的书籍比如sql必知必会的第四版。

其次一些比较好的学习网站如菜鸟教程。

http://www.runoob.com/sql/sql-tutorial.html

最后就是自己多多练习,实践,实战。多去itpub上帮别人写语句或看别人写语句(当年国内牛X的数据库人都知道她)。

http://www.itpub.net/forum-3-1.html

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<