《SQL基础教程》学习打卡


2021/10/10

前几天打卡牛客网刷题,发现自己还是基础不行,还得再学,今天开始学习《SQL基础教程》这本书,打牢基础,好好刷题,加油!

首先是postgreSQL的安装

在官网上下载postgresql13 按照书上的操作一步一步安装,修改配置。

打开SQL Shell(psql) 

 

前四行直接回车即可,第五行输入设置的密码,显示 postgres=# 说明登录成功 。

创建数据库mydb:

create database mydb;

输入 \q 即可断开与postgres的连接

登录之后,输入 \c mydb 按下回车键即可连接数据库mydb

数据库的基础知识

 接下来书上讲了一些有关数据库的知识

DB:database 数据库

DBMS:database management system 数据库管理系统

RDBMS: relational database management system 关系数据库管理系统

SQL:structual query language 结构化查询语言

表的结构

 数据库和表的关系:就是客户端通过sql语句向RDBMS服务器发送请求,RDBMS从数据库中取出数据并返回给客户端。

表:table 用来管理数据的二维表,一个数据库中可以有多个表。

字段: 表的列(垂直方向)称为字段,它代表了保存在表中的数据项目。

记录:表的行(水平方向)称为记录,它相当于一条数据。

关系数据库必须以行为单位进行数据读写。

行和列交汇的方格称为单元格。一个单元格中只 能输入一个数据  。

根据对 RDBMS 赋予的指令种类的不同,SQL 语句可以分为以下三类。

DDL(Data Defination Language 数据定义语言):

        用来创建或删除存储数据用的数据库及数据库中表等对象。

        包括:

                CREATE:创建数据库和表等对象。

                DROP:删除数据库和表等对象。

                ALTER:修改数据库和表等对象。

DML(Data Manipulation Language 数据操作语言):

        用来查询或者变更表中的数据。

        包括:

                SELECT:查询。

                UPDATE:变更。

                DELETE:删除。

                INSERT:增加。

DCL(Data Control Language 数据控制语言):

        用来确认或取消对数据库中的数据的变更,除此之外,还可以对 RDBMS 的用户是否有权限 操作数据库中的对象(数据库表等)进行设定。

        包括:

                COMMIT:确认对数据库中的数据进行变更。

                ROLLBACK:取消对数据库中的数据进行变更。

                GRANT:赋予用户操作权限。

                REVOKE:取消用户的操作权限。

书写规范:

sql语句要以 ; 结尾。

sql语句不区分关键字大小写, 但插入到表中的数据是要区分大小写的。

SQL 语句的单词之间需使用半角空格或换行符来进行分隔。

在 SQL 语句中直接书写的字符串、日期或者数字等称为常数。

字符串用单引号 ' ' 括起来,日期也需要括起来,数字不需要

Postgres创建的数据库的位置

突然好奇创建的数据库会保存在哪里,就去查了一下。

在postgres的data目录下的base里,有很多数字命名的文件

在SQL Shell 中输入 

select oid,datname from pg_database;

 即可得到不同数据库对应的数字。

(6条消息) Postgres 数据存储位置_万里归来少年心-CSDN博客https://blog.csdn.net/liyazhen2011/article/details/88993728详情我是参考的这个博客。

今天先休息了。


2021/10/11

开始啦今天的学习,今天制定的计划还不够科学,又没完成呜呜,今天先好好学sql吧。

数据库名称、表名和列名等可以使用以下三种字符。

● 半角英文字母  ● 半角数字  ● 下划线(_)

名称必须以半角英文字母作为开头。

名称不能重复。

创建表,create table(

);

 

字符里面的空格不会忽略。

主键(primary key)就是可 以特定一行数据的列 。非空不可重复。

使用DataGrip

SQL Shell 用着太麻烦了,我开始用DataGrip了

说实话,DataGrip真得牛逼,只是你不会用而已~ - 知乎 (zhihu.com)c

参考了这篇文章的操作

创建表:create table

删除表:drop table 

添加表的列:alter table 表名 add column 字段名 类型

删除表的某列:alter table 表名 drop column 字段名 类型;

 向表中添加数据/记录:insert into 表名 values();

 变更表名:alter table 表名 rename to 新的表名

跟着书上做了练习题。这些知识都得经常复习呀,不然就忘了。

第二章查询基础

给列设置别名查询时,中文别名需要用双引号""括起来

 不仅可以设置别名还可以设置常数 

在select语句中使用distinct 可以删除重复行 

distinct也会将多条null合并为一条

注意:distinct关键字只能用在第一个关列名前面。

 带where的条件查询:where必须紧跟在from后面

目录

首先是postgreSQL的安装

数据库的基础知识

Postgres创建的数据库的位置

使用DataGrip

第二章查询基础

sql的注释书写方法:行注释 --

 2.2算数运算符与比较运算符

2-3逻辑运算符

第三章 聚合与排序

3.1对表进行聚合查询

3.2 对表进行分组

 3.3为聚合结果指定条件

3.4对查询结果进行排序

第三章练习题


sql的注释书写方法:行注释 --

                                  多行注释 /* */

 2.2算数运算符与比较运算符

算数运算符:+ - * /

所有包含null的计算结果都是null,即使是null/0 结果也是null。

 比较运算符:

 字符串的比较

字符串类型的数据原则上按照字典顺序进行排序,不能与数字的大小顺序混淆。 

字符的比较,例如,章节“3-3” 肯定是在“2-1”之后的。

不能对null使用比较运算符

 希望选取NULL记录时,需要在条件表达式中使用IS NULL运算符。希望选取不是NULL的记录时,需要在条件表达式中使用IS NOT NULL运算符

 欧克,今天就先学到这里,要去休息了。


2021/10/13

昨天事情有点多就没有打卡,今天继续。

2-3逻辑运算符

逻辑运算符包括:and not or

SQL中的逻辑运算包括对 真(true)、假(false)和不确定(unknown)进行运算的三值逻辑。

 在查询条件当中添加not,not sale_price>=1000就相当于 sale_price<1000

即使不使用not也可以表示出相同的效果,所以在sql中不能滥用not

多个条件查询组合时,使用and或者or进行连接。

and运算符先于or运算符

例如:“商品种类为办公用品”并且 “登记日期是 2009 年 9 月 11 日或者 2009 年 9 月 20 日”

使用如下代码查询结果并不是想要的

 AND运算符的优先级高于OR运算符。想要优先执行OR运算符时可以使用括号。

这样就对了。

 通过创建真值表,反复进行逻辑运算,无论多复杂的条件都可以得到相应的结果。

 SQL语言是三值逻辑的

 

 不带not查询不出null,带not也查询不出null。

ok,今天就先到这里啦,刚刚也做了第二章的练习题,感觉难度不大,继续加油!


2021/10/14

今天考科目二过啦哈哈哈哈哈哈,继续开始今天的学习,不要管别人干嘛,做好自己的事情,加油!

第三章 聚合与排序

3.1对表进行聚合查询

用于汇总的函数称为聚集函数或聚合函数。

聚合就是将多行汇合成一行。

有如下五种:

 COUNT() 括号中的是PARAMETER 就是参数

 

 COUNT(*) 会把表中所有的(包括空的)行都输出 

 修改一下括号里面的参数,就不会输出空的行了

COUNT函数的结果根据参数的不同而不同。COUNT(*)会得到包含NULL的数据 行数,而COUNT()会得到NULL之外的数据行数。

SUM()  加总

聚合函数会将NULL排除在外。但COUNT(*)例外,并不会排除NULL。

MAX/MIN函数几乎适用于所有数据类型的列。SUM/AVG函数只适用于数值类型的列。

字符、日期...

使用聚合函数删除重复值(distinct)

 在聚合函数的参数中使用DISTINCT,可以删除重复数据。

今天种花花了点时间,有点晚了,今天就先这么多,明天继续。


2021/10/15

今天上了sql的课,又学到了很多的知识,之前没有学到的。

有一个天天ex人的舍友是什么体验,学会无视她吧,我走我的路,让她学去吧,烦人恶心人我已经感觉累了,做好自己的事情吧,让她在后面吃屁去吧。

3.2 对表进行分组

where字句中不能使用聚合函数

Group by 子句  可以对表进行分组

当聚合键包含Null时,也会将Null作为一组特定的数据

 语法规则:Group by 会在 where 之后执行,也要写在where子句之后

                同时使用时,会先根据where子句指定的条件进行过滤,然后再进行汇总处理。

使用聚合函数时的常见错误①

 例如:

这段sql语句当中 select 后面除了聚合函数count(*),聚合键product_type 之外 还有一个字段product_name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值