SQL第一周学习笔记---sql语句、select、insert、count、update、delete

734 阅读7分钟

这是我参与8月更文挑战的第2天,活动详情查看:8月更文挑战

大家好,我是【豆干花生】,这次我带来了一整套sql、mysql学习笔记,后续还会更新~

sql大家是很常用的数据库语言,但是对于初学者,往往不能系统的学习,所以我带来了一套完整笔记

今天我要分享第一周笔记,在本模块中,你将学习一些基本的SQL语句,并在实时数据库上动手实践它们。

记录自己的技术成长,后续还会更新,欢迎关注~

注:本笔记为coursera网站课程《Databases and SQL for Data Science with Python》的学习笔记

image.png

学习目标

  • 描述SQL和数据库
  • 解释基本SQL语句的语法-选择,插入,更新,删除
  • 在实时数据库上动手编写和执行基本的SQL语句
  • 演示如何编写基本的SQL语句

一.欢迎使用SQL for Data Science

SQL 作为数据科学家的三大技能之一。 在您进入数据科学领域之前, 设定好自己是至关重要的 通过掌握该领域的基础来分开。

您将需要的基本技能之一是SQL。SQL是一种功能强大的语言,用于与数据库进行通信。

学习SQL将使您对关系数据库有很好的了解。 挖掘所有这些信息需要有能力 与存储数据的数据库进行通信。 即使您使用可为您生成SQL查询的报告工具, 编写自己的SQL语句可能很有用,因此您需要 不要等待其他团队成员为您创建SQL语句。

在本课程中,您将学习以下方面的基础知识: SQL语言和关系数据库。 该课程包括有趣的测验和动手实验室作业, 您可以在其中获得使用数据库的经验。

在前几个模块中, 您可以直接使用数据库并开发SQL的实用知识。 然后,您将连接到数据库并运行 像数据科学家一样的SQL查询通常会, 您将在其中使用Python和Jupyter笔记本进行连接的地方 关系数据库以访问和分析数据。 在课程即将结束时还包括一项作业, 您将有机会应用所学的概念。

二.数据库概论

SQL是一种用于关系数据库从数据库查询或获取数据的语言。 SQL也称为SQL 并且它的原始名称结构化英语查询语言(Structured English Query Language)。

数据很重要;所以,它必须是安全,并且需要快速存储和访问。 答案是一个数据库。

数据库是数据存储库。 它是一个存储数据的程序。 数据库还提供添加, 修改和查询该数据。 存在具有不同要求的不同种类的数据库。 数据可以各种形式存储。

数据库是数据的存储库。 一组用于数据库中数据的软件工具称为 数据库管理系统或简称DBMS。 术语数据库,数据库服务器,数据库系统, 数据服务器和数据库管理系统经常互换使用。

关系数据库管理系统的示例是 我的SQL,Oracle数据库, DB2 Warehouse和Cloud上的DB2。

对于大多数使用数据库的人来说,有五个简单的命令可以创建表格, 插入数据以填充表格, 从表格中选择数据, 更新表中的数据, 从表中删除数据。 因此,这些是数据科学SQL的基础。

三.select陈述式

SELECT语句称为查询, 我们从执行该查询中获得的输出称为结果集或结果表。

数据将通过添加到书表中 使用insert语句向表中添加行。

关系操作有助于我们限制 通过允许我们使用WHERE子句来设置结果集。 WHERE子句始终需要谓词。 谓词的条件值为真,假或未知。 在WHERE子句的搜索条件中使用谓词。 因此,如果我们需要知道book_id为B1的书的标题, 我们使用WHERE子句,将谓词book_id等于B1。 从book_id等于B1的书中选择book_id标题。

还有其他支持的比较运算符 关系数据库管理系统:等于, 大于,小于 大于或等于 小于或等于,不等于。 现在,您可以检索数据并从关系数据库表中选择列, 定义谓词的使用, 使用WHERE子句标识SELECT语句的语法,并 列出关系数据库管理系统支持的比较运算符。

SQL的*和%:

SQL *和%区别为:作用不同、优先级不同、针对范围不同。

一、作用不同

1、*通配符:*通配符的作用是用来匹配所有结果集。
2%通配符:%通配符的作用是用来替代一个或多个字符。

二、优先级不同

1、*通配符:*通配符的优先级比%通配符高,在同一条sql语句中,优先执行。

2%通配符:%通配符的优先级比*通配符低,在同一条sql语句中,稍后执行。



三、针对范围不同

1、*通配符:*通配符的针对范围为一条记录的所有字段。

2%通配符:%通配符的针对范围为一条记录的单个字段。

选出满足某个条件的所有列

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ls8LQDsa-1628407334294)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408205855272.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TGyVw33K-1628407334297)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408205949519.png)]

选出某一列(投影)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t6TJURz7-1628407334299)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408210110965.png)]

四.count,distinct,limit

1.count

1、SQL COUNT(column_name) 语法

 COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

 SELECT COUNT(column_name) FROM table_nameSQL

2、COUNT(*) 语法

  COUNT(*) 函数返回表中的记录数:

  SELECT COUNT(*) FROM table_nameSQL

3、COUNT(DISTINCT column_name) 语法

  COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:

  SELECT COUNT(DISTINCT column_name) FROM table_name注释:COUNT(DISTINCT) 适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cqgirGnF-1628407334302)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408211612629.png)]

2.distinct

blog.csdn.net/cho3en1/art…

在表中有多个重复记录的情况下,可能更有意义的是仅返回唯一记录,而不是获取重复记录。 SQL DISTINCT关键字与SELECT结合使用以消除所有重复记录,并仅返回唯一记录。 DISTINCT的基本语法如下:

SELECT DISTINCT column_name1, column_name2 FROM table_name;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-btJE6Gdl-1628407334304)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408210815471.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uOI7J5Ef-1628407334305)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408210933007.png)]

3.limit

blog.csdn.net/cho3en1/art…

默认情况下,将返回满足SQL语句中指定的条件的所有结果。 然而,有时我们需要检索记录的一个子集。 在MySQL中,这是通过使用LIMIT关键字完成的。 LIMIT的语法如下:

SELECT column list FROM table_name LIMIT [number of records];

例如,我们可以从customers表中检索前五个记录。

SELECT ID, FirstName, LastName, City FROM customers LIMIT 5;

这将产生以下结果:

img

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xwjmB1Eb-1628407334306)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408211213038.png)]

五.insert语句

INSERT INTO 语句可以用两种形式编写。

第一个表单没有指定要插入数据的列的名称,只提供要插入的值,即可添加一行新的数据:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

第二种,如果要为表中的所有列添加值,则不需要在SQL查询中指定列名称。但是,请确保值的顺序与表中的列顺序相同。INSERT INTO语法如下所示:

INSERT INTO table_name
VALUES (value1, value2, value3, ...);

原文链接:blog.csdn.net/xiaolute/ar…

操作成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BxoPKR4H-1628407334307)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408213456421.png)]

原数据表:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vBUNzchb-1628407334308)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408214444110.png)]

变化后的:(需要右键刷新)(20009被后边的操作删去,之前忘了截图)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aYWoyUCP-1628407334311)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408214508954.png)]

六.update和delete语句

1.update

一般简单的update语法比较通用

UPDATE table_name
SET column1=value1,
	column2=value2,
	...
WHERE some_column = some_value;


注:若不加where条件则是更新表中的所有数据,
故执行没有where子句的update要慎重再慎重。

UPDATE subject
SET name='数学',
	type='理学' 
WHERE id = 1;

2.delete

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IrmJLY6B-1628407334312)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408213738559.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N7y6Jwp1-1628407334313)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408213800032.png)]

结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-acuflu3o-1628407334314)(C:\Users\YUANMU\AppData\Roaming\Typora\typora-user-images\image-20210408214313342.png)]

码字不易,都看到这里了不如点个赞哦~
刚到掘金,之后会将之前的高赞文章陆续搬运到这里,欢迎关注我哦~ 现在关注就是老粉了呢~ 在这里插入图片描述