《SQL基础教程》学习打卡


2021/10/10

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

首先是postgreSQL的安装

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

打开SQL Shell(psql) 

《SQL基础教程》学习打卡_第1张图片

 《SQL基础教程》学习打卡_第2张图片

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

创建数据库mydb:

create database mydb;

《SQL基础教程》学习打卡_第3张图片

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

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

数据库的基础知识

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

DB:database 数据库

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

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

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

表的结构

《SQL基础教程》学习打卡_第4张图片

 数据库和表的关系:就是客户端通过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创建的数据库的位置

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

《SQL基础教程》学习打卡_第5张图片

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

《SQL基础教程》学习打卡_第6张图片

在SQL Shell 中输入 

select oid,datname from pg_database;

《SQL基础教程》学习打卡_第7张图片

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

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

今天先休息了。


2021/10/11

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

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

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

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

名称不能重复。

创建表,create table(

);

《SQL基础教程》学习打卡_第8张图片

 《SQL基础教程》学习打卡_第9张图片

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

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

使用DataGrip

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

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

参考了这篇文章的操作

《SQL基础教程》学习打卡_第10张图片

创建表:create table

删除表:drop table 

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

《SQL基础教程》学习打卡_第11张图片

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

《SQL基础教程》学习打卡_第12张图片

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

《SQL基础教程》学习打卡_第13张图片

《SQL基础教程》学习打卡_第14张图片

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

《SQL基础教程》学习打卡_第15张图片

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

《SQL基础教程》学习打卡_第16张图片

第二章查询基础

《SQL基础教程》学习打卡_第17张图片

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

《SQL基础教程》学习打卡_第18张图片 不仅可以设置别名还可以设置常数 

《SQL基础教程》学习打卡_第19张图片

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

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

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

《SQL基础教程》学习打卡_第20张图片

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

目录

首先是postgreSQL的安装

数据库的基础知识

Postgres创建的数据库的位置

使用DataGrip

第二章查询基础

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

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

2-3逻辑运算符

第三章 聚合与排序

3.1对表进行聚合查询

3.2 对表进行分组

 3.3为聚合结果指定条件

3.4对查询结果进行排序

第三章练习题


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

                                  多行注释 /* */

《SQL基础教程》学习打卡_第21张图片

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

算数运算符:+ - * /

《SQL基础教程》学习打卡_第22张图片

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

《SQL基础教程》学习打卡_第23张图片

 比较运算符:

《SQL基础教程》学习打卡_第24张图片

《SQL基础教程》学习打卡_第25张图片

 字符串的比较

《SQL基础教程》学习打卡_第26张图片

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

《SQL基础教程》学习打卡_第27张图片

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

不能对null使用比较运算符

《SQL基础教程》学习打卡_第28张图片

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

《SQL基础教程》学习打卡_第29张图片

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


2021/10/13

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

2-3逻辑运算符

逻辑运算符包括:and not or

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

《SQL基础教程》学习打卡_第30张图片

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

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

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

and运算符先于or运算符

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

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

《SQL基础教程》学习打卡_第31张图片

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

《SQL基础教程》学习打卡_第32张图片

这样就对了。

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

《SQL基础教程》学习打卡_第33张图片

 SQL语言是三值逻辑的

《SQL基础教程》学习打卡_第34张图片

 《SQL基础教程》学习打卡_第35张图片

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

你可能感兴趣的:(sql,postgresql,数据库,database)