零基础快速自学SQL,2天足矣
SQL快速学习路线
零基础自学SQL时通常会遇到2个坑:
一坑:学习之前先安装数据库软件,可以是SQL Sever,也可以是MySQL。对于新人而言,安装数据库软件挺费时间,坑太多。我刚上大学那会要求2天内自学SQL,结果我花了1天时间安装SQL Sever。前一篇文章分享了MySQL的安装教程,刚开始学用不上太庞杂的功能,所以推荐小而美的MySQL,SQL Sever也是可以的。
二坑:一上来就背SQL语法。我看过太多新人在那边吭哧吭哧做笔记背SQL,个人不赞成这种学法,不实践记不住。就和Excel函数一样,理解含义和如何使用,关键时候去w3school查询一下就行了,以后用得多了自然就掌握了。(后台回复关键词“SQL”获得)
SQL学习路线
1、下载安装MySQL,或者安装软件phpstudy(这个软件自带了mysql数据库,而且安装启动方便)。
2、我这里用的是phpstudy,打开phpstudy后,点击下图中的启动,点击后数据库服务就会启动了。
3、下载安装Navicat软件
这个软件可以轻松连接数据库,我们可以在这个软件中练习学习SQL语法
4、使用Navicat建立数据库连接
点击文件——新建连接,连接名随便填写,比如我写的是“本地”。主机名、端口都不需要修改,用户名和密码都是root(因为我们安装的phpstudy里的mysql默认用户名密码就是root),点击连接测试显示为成功后点确定保存。
以后再次访问时,双击即可。
5、下载习题进行学习,内含习题需要用到的数据表。
6、导入第5步中下载的数据表。(后台回复关键词“SQL”获得)
右击第4步中的“本地”,新建一个数据库test1,双击打开新建的数据库(打开后颜色是绿色)。
拖拽刚才下载的数据表文件(sqltest1.sql)到test1上面。
这时会出现上述弹窗,点击开始,等待导入完成后,点击关闭
在左侧空白处右击,选择“刷新”,即可看到刚才导入的数据表了。
7、打开sql语法编辑器
如下图点击查询——新建查询,在空白处输入sql语法,点击运行,如果输入错误会有报错,输入正确则会返回查询内容。
8、边做边学
打开第一部分习题,边做边学,通过查询w3c的sql语法手册完成
9、巩固练习
尝试不看sql语法手册,独立完成第二部分习题。
以上是sql的学习路径,接下来是sql语句的学习,掌握使用场景和含义,具体语法就不做解释了,大家参考w3c的sql语法手册学习。这里我归了下类,挑重点讲。
数据库表基础操作
首先数据库表必掌握的基础操作,建表、删表、往表里增数据、往表里删数据以及最重要的取数等等。
1、CREATE TABLE(建表)
怎么着也得先建立表~
当你建表成功后,发现忘记添加主键,或者忘记添加外键,莫着急。使用以下咒语即可:
建好的表如下:
emp表
orders表
2、INSERT(插入)
向表中插入数据
插入数据后的emp表
插入数据后的orders表
3、UPDATE(更新)
4、DELETE(删除)
在使用delete删除emp表中数据时,要注意该表与其他表是否存在关联关系,比如:外键。emp表id是表orders的外键,如果要删除emp表中的id,得先删除orders表中的外键。
5、DISTINCT(去重)
在表中,可能会包含重复值,这并不成问题。不过,有时你也许希望仅仅返回唯一不同的值。使用distinct关键字进行处理,用于返回唯一不同的值。
注意:distinct关键字是去重!去重!去重!*把列中的重复值去掉!
曾经我在笔试的时候,有道SQL考题:请写出表中所有重复的name的所有数据。我当时没反应过来,直接就用了distinct关键字,后来就....
6、Select(取数)
SELECT 语句用于从表中选取数据,结果被存储在一个结果表中(称为结果集)。这是以后最常用的操作,占据你90%。
SQL SELECT 语法
SELECT 列名称 FROM 表名称
以及:
SELECT * FROM 表名称
比如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句:
SELECT LastName,FirstName FROM Persons
SELECT通常结合其他函数和语法使用。
SQL基础语句
在实际的SQL使用中,肯定会涉及到有关函数的使用,这里简单介绍几种初学时必学的函数类型。
1、AVG()
AVG 函数返回数值列的平均值。NULL 值不包括在计算中。
2、COUNT()
COUNT( ) 函数用于返回匹配指定条件的行数。
3、MAX()
MAX函数返回指定列的最大值,NULL值不包括在计算中
4、MIN()
MIN函数返回的指定列的最小值,NULL值不包括在计算中
5、SUM()
SUM函数返回指定列的总数
6、ROUND()
ROUND 函数用于把数值字段舍入为指定的小数位数
round函数需要的参数
7、FORMAT()
FORMAT 函数用于对字段的显示进行格式化
format函数需要的参数
SQL高级语句
这一部分的内容是通常用到的,属于最开始学习SQL知识时必须要熟练的,我这里大致列出几项。
1、LIMIT
2、LIKE
一般配合where使用,搜索条件中的指定模式
在上面我们可以看到,通配符“%”的使用方法,所以通配符必须要配合like 运算符一块使用。
通配符还有以下几种:
3、IN
从字面意思就可以知道它的作用是什么了
4、JOIN
联表运算符JOIN,该运算符是用于将两个或者两个以上的表进行关联,并从这些表中查询数据。
对于联表来说,通过使用主键(primary key)和外键(foreign key)也可以建立连接。
除了上述直接使用条件关联,下面我们可以用可读性更高的INNER JOIN来写
还有其他几种方连接方式(外连接):
- LEFT JOIN:就算右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN:即使左表没有匹配,也行右表返回所有的行
- FULL JOIN:只要有一个表存在着匹配,就返回行
5、ALTER
穿插介绍一下alter,前面的例子中已经包含了几种alter使用方法。
6、UNION
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
上面引用的意思就是:道不同,不相为谋!
UNION和UNION ALL命令几乎是等效的,不过加了“ALL”,就会列出所有的值。
注意:因为其也具有“唯一性”,容易和PRIMARY KEY混淆。面试或笔试常考两者的不同,在这里说明一下:
与PRIMARY KEY不同的是,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
为表添加UNION,这里给出使用的SQL语法。
7、AUTO-INCREMENT(自增)
在运用中,我们希望在每添加一条数据后,自动的为我们的主键创建值。
8、ORDER BY
在前面中已经使用到了有关order by的SQL语句,order by该语句用于对结果集进行排序,默认是进行ASC正序排序(从小到大)。
排序的两种方式:
- ASC:升序(从小到大)
- DESC:降序(从大到小)
举栗:
ASC排序
对于DESC排序,这里就不进行举例了,大家可以自己写SQL试一下。
9、GROUP BY
通常配合合计函数使用,根据一个或多个列对结果集进行分组。
具体的用法在介绍函数时会涉及到。
10、HAVING
在上面的例子中,我们使用where关键字来增加查询条件,这里增加having字句是因为,where关键字无法与合计函数一起使用
同样引用上面的SQL语句。
具体的用法在介绍函数时会涉及到。
11、DEFAULT
DEFAULT约束用于向列中插入默认值。
零基础快速自学SQL,2天足矣相关推荐
- sql怎么撤回update_零基础快速自学SQL,2天足矣!
此文是<10周入门数据分析>系列的第6篇. 想了解学习路线,可以先行阅读" 学习计划 | 10周入门数据分析 " 上一篇分享了数据库的基础知识,以及如何安装数据库,今天 ...
- 【大学四年自学Java的学习路线】写了一个月,这是一份最适合普通大众、非科班的路线,祝你零基础快速找到一份满意的工作
零基础自学 Java,大概多久可以找到工作? 最近又有一个读者"在你的世界各地"向我提了上面这个问题.但说实话,这个问题并不太好问答.因为 Java 是一门"历史悠久&q ...
- 怎么自学python编程-零基础如何自学编程?
原标题:零基础如何自学编程? 对于所有编程学习者,尤其是零基础的同学们,在学习的初期,一定要给自己做一个思想上的转在我的编程学习理论中,这个思想的转变至关重要,什么时候你把这个思维转换过来了,你就是真 ...
- 学php应该怎么学习数学,数学是怎样学好的 零基础怎么自学数学
零基础自学数学,看你什么目的学数学了?假如是为了兴趣,那你就无敌了,由于兴趣是最好的教师!假如是别的目的的话,就有针对的去学就行了. 学数学的小办法 有良好的学习兴趣,试着去培养数学得兴趣,久而久之, ...
- 零基础快速入门web学习路线(含视频教程)
下面小编专门为广大web学习爱好者汇总了一条完整的自学线路:零基础快速入门web学习路线(含视频教程)(绝对纯干货)适合初学者的最新WEB前端学习路线汇总! 在当下来说web前端开发工程师可谓是高福利 ...
- python海龟教程_Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 7. 条件循环...
条件循环能够让程序在条件成立时(即为真时)重复执行循环体中的语句.如果条件一直成立(即永远不会为假),则循环会一直进行下去,不会停止.如果初始时,条件不成立,则循环 1 次也不会执行.Python 中 ...
- 零基础怎样自学编程?新手如何学习编程?编程学习入门指南
对于编程,很多新手的第一感觉可能就是: 高深,难学. 学好编程,有的时候,可以把一些需要我们重复劳动的工作,自动化批量处理,为我们节省很多时间和精力. 对于一些学得比较深入的朋友来说,更是可以通过它找 ...
- 零基础如何自学软件测试?2020软件测试学习路线
零基础如何自学软件测试?2019软件测试学习路线 软件测试自学实践部分比较难,因为需要找到有问题的源代码进行测试,更建议跟团队一起学习. 下面讲讲软件测试的学习路线,希望对你有所帮助: 功能测试 1. ...
- 零基础快速打造一个属于自己的微信聊天工具
" 零基础快速打造一个属于自己的微信聊天工具" 打开微信,我们可以和别人进行聊天,发送消息.非常方便,那微信是怎么来的呢?这个本质的问题让人突发奇想,我们能不能做一个属于自己的微 ...
- 零基础快速入门SpringBoot2.0教程 (三)
一.SpringBoot Starter讲解 简介:介绍什么是SpringBoot Starter和主要作用 1.官网地址:https://docs.spring.io/spring-boot/doc ...
最新文章
- pyqt怎么给字体加粗_微信拍一拍可设置后缀?怎么用?还有更多新功能!
- JDK1.6.0下载安装与环境配置
- 没有找到mysql。sock_linux系统安装mysql数据库
- VMware安装和使用时遇到的一些小问题及解决方法
- VC(MFC、ATL)中 得到2个SYSTEMTIME时间差
- MIPI related
- cocos2dx集成友盟社会化分享图片崩溃问题
- 用Thread实现socket多线通讯
- 微软同步框架入门之五--使用WCF同步远程数据
- linux运维故障报告,iis7报为应用程序池“xx”提供服务的进程在启动过程中尝试读取配置时报告故障(503错误)处理方法...
- js版palppy brid代码_从 JS 引擎到 JS 运行时(上)
- Linux下Socket网络编程send和recv使用注意事项
- 前台如何正确接收流信息_如何绕过 Android 8.0 startService 限制?
- Git 分支 - 分支的新建
- DG - 开启Active Data Guard
- MySQL二进制包安装简略过程
- 编译好的编译ffmpeg又出错:更改输出目录产生各种古怪错误
- Intel600P三星sm951pm961nvme等固态硬盘安装WIN7教程
- UCOS操作系统——创建与删除任务(三)
- 杭电2567寻梦(字符串处理)
热门文章
- 模糊综合评价模型(下:多级)
- 聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路
- 【ECU】汽车电子/嵌入式工程师学习网站、资源、路线
- 报童模型仿真,运行不出来,哪儿出问题了
- 实用的chrome插件
- 10w单词库(含释义)(包含sql,csv)
- ~《概率论》~联合分布与边际分布
- vue当前浏览器是否为ie_vue判断当前浏览器为IE低版本,给出升级提示;IE11及其他浏览器正常使用...
- 计算机无法安装VC2015,win10 vc++2015一个或多个问题导致了安装失败如何处理
- 广播前置放大器的作用_前置放大器的作用和特点