数据库学习笔记-----SQL查询语句和代码演示

news/2024/11/28 13:36:46/

SQL不区分大小写,本文是邹兆年老师的课件和课堂的部分内容总结,部分比较细的内容请看课件

Db笔记(1).pdf

SQL的数据定义

数据

数值型:

  • 整型:INT/SMALLINT/BIGINT        4个字节/两个字节/八个字节
  • 浮点型:NUMERIC/DECIMAL(p,s):定点数,p位有效数字,小数点后s位                                比如numberic(3,1)可以精确储存44.5,但是不可以储存444.5或者33.2这样的数字
  • FLOAT(n):浮点数,精度至少为n位数字
  • REAL同FLOAT但是精度由DBMS决定
  • DOUBLE PERCISION  

布尔类型

  • BOOLEAN 真值是TRUE/FALSE

字符串类型

  • CHAR(n):定长字符串,长度为n,比如身份证号,一块一块存储比较方便
  • VARCHAR(n)变长字符串:最大长度为n,省内存
  • CLOB:超长字符串

枚举型和集合型

用户完整性 

 创建关系模式

创建表就得先创建数据库

下载postgre:不同的电脑操作不同可能会不好使

sudo apt-get update
sudo apt-get install postgresql postgresql-client

创建完毕后系统会创建一个postgre用户,感觉是服务器的用户所以本地找不到服务器的文件夹

sudo -i -u postgres 
psql

这样就进入到了posgre中

create database 卑鄙的我;

退出postgres

\q 注意没有分号

包括:关系名、属性名、属性类型、主键、外键、完整性约束等:

CREATE TABLE Student{
#####关系名和属性#######Sno CHAR(6);        *Sno CHAR PRIMARY KEY;//这种方法只能定义含有一种属性关系Sname VARCHAR(10);Ssex CHAR;Sage INT;Sdept VARCHAR(20);
#####声明主键和外键#######PRAMARY KEY (Sno)  ///如果是双关系就PRMARY KEY(Sno,Sname);PRAMARY KEY (Sno,Cno);FORERGN KEY (Sno) REFERENCES Student(Sno)
};

{Sno,Cno}是SC的主键,Sno是SC的外键,参照Student关系的主键Sno,回忆外键

F的取值必须来源于R 

 操作演示1

查看所有的数据库

\l 查看所有的数据库

 查看创建的表

查看属性

select * from student;

select Ssex from student;

 select sno, sname from student where sdept = 'CS';

 

select sno, sname from student where sdept in ('CS', 'Math');

去重

select distinct Ssex from student;

 返回大写的值/怎么不改变属性返回大写的值

select sno, upper(sname) from student;

 

 select sno, upper(sname) as SNAME from student;

 模糊查询

查询E开头的人物;

 select sno, sname from student where sname like 'E%';

查询E开头,占两个字节的人物

select sno, sname from student where sname like 'E_';

select sno, sname from student where sname like 'E___';

操作演示 -------常见的错误提示

ERROR:  duplicate key value violates unique constraint "student_pkey"
DETAIL:  Key (sno)=(CS-001) already exists.
违反主键中元素的唯一性原则

ERROR:  null value in column "sno" of relation "student" violates not-null constraint
DETAIL:  Failing row contains (null, ABC, null, null, null).
违反主键不能为空的原则

ERROR:  new row for relation "student" violates check constraint "student_sage_check"
DETAIL:  Failing row contains (CS-005, ABC, null, -1, null).
找不到参考的值

 操作演示2:

区分is & =

空是一个不确定的值不等用=只能用is

 

上课

 *窗口函数

窗口函数并不是分组,具体查询DBMS手册

 多关系查询

笛卡尔积

SELECT Student.Sno, Sname, Cno, Grade
FROM Student, SC
WHERE Student.Sno = SC.Sno;explain加等于执行过程


http://www.ppmy.cn/news/41775.html

相关文章

小型水库雨水情测报设施建设24小时守护水库大坝安全!

解决方案 小型水库雨水情测报系统及大坝安全监测解决方案,系统主要由降雨量监测站、水库水位监测站、大坝安全监测中的渗流量、渗流压力和变形监测站及视频和图像监测站等站点组成,同时建立规范、统一的监测平台,集数据传输、信息共享、数据…

【C++11】新特性 - 右值引用详解

文章目录STD容器使用右值引用场景移动语义在容器中的使用主要体现在两个方面:移动构造函数和移动赋值运算符。移动语义只对右值有效,对左值无效原因STD容器使用右值引用场景 移动语义在容器中的使用主要体现在两个方面:移动构造函数和移动赋…

Linux系统MBR和GPT分区的区别

主引导记录(Master Boot Record , MBR)是指一个存储设备的开头 512 字节。它包含操作系统的引导器和存储设备的分区表。   全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘…

java 面试消息题1-13

1. Redis 线程模型, 及为什么redis 这么快? 1.Redis虽然是一条一条处理命令的(单线程),但是redis把每一条命令分成了很多个小命令,对这些小命令是多线程执行的。 2. IO 多路复用 - 可以用别人用过的IO。 …

卷积神经网络(CNN)入门:使用Python实现手写数字识别

在上一篇文章中,我们介绍了如何使用Python实现一个简单的前馈神经网络。本文将重点介绍卷积神经网络(CNN),这是一种在计算机视觉任务中表现优异的深度学习模型。我们将从卷积神经网络的基本原理开始,介绍卷积层、池化层…

读什么书能让你进入高层次

“黄金非宝书为宝,万事皆空善不空。”我很少看到有人说读书不好的,但却很少看到有人读好书。好书、好读书、读好书,都是很稀缺的。好书的作用基本上,我们遇到的每个困惑,都有一本书能够给出解答。因为你的困惑并不独特…

Android11.0 系统Framework发送通知流程分析

1.前言 在android 11.0的系统rom定制化开发中,在systemui中一个重要的内容就是系统通知的展示,在状态栏展示系统发送通知的图标,而在 系统下拉通知栏中展示接收到的系统发送过来的通知,所以说对系统framework中发送通知的流程分析很重要,接下来就来分析下系统 通知从fram…

Redis源码之SDS简单动态字符串

Redis 是内存数据库,高效使用内存对 Redis 的实现来说非常重要。 看一下,Redis 中针对字符串结构针对内存使用效率做的设计优化。 一、SDS的结构 c语言没有string类型,本质是char[]数组;而且c语言数组创建时必须初始化大小&#…