首页 > 数据库 >数据库系统,SQL语句

数据库系统,SQL语句

时间:2024-04-05 13:34:07浏览次数:31  
标签:语句 ... group name SQL 数据库系统 null where select

上课讲得太烂还得自己看自己总结

前置简单知识

sql中的变量类型

  • char(n)
  • varchar(n)
  • int
  • smallint
  • numeric(p,d) 小数点前p位后d位
  • real , double precision 浮点数
  • float(n) 精度至少n位浮点数
    varchar 和 char 比较可能有问题

创建表(定义关系)

create table department
	(dept_name varchar(20),
	ID primary key varchar(20)
	<完整性约束>
	)

完整性约束包括:
primary key (A1,A2,A3,...), 通常不重复,一定not null
foreign key (A1,...)reference s, 表明A1,... 列中元素必须来自于表s的同名主码

更改表

alter table <tablename> add <待添加属性名称> <属性类型>
alter table <tablename> drop <属性名称>

drop table r 删除表
delete (*可以省) from r 删除所有元组

查询

注意,查询select from where 类似于:

for i=from1
for j=form2
...
	tmp=i x j
	if(where(tmp))
	add select(tmp)

默认不去重
去重要用 select distinct

as

as用作给别名
select student as S

like

模糊匹配like,用作匹配字符串
%表示任意个字符,_表示一个字符
更多的可见https://www.runoob.com/sql/sql-like.html

order by

在where后面加order by name,最后结果按照name排序
加一个 desc 表明降序,asc 表明升序
可以用,链接过个关键字,越往前关键字优先级越高
如:

order by salary desc,name asc;

between l and r

就是在\([l,r]\)里面
(a1,a2)<(b1,b2) -> a1<a2 and b1<b2

集合运算

union intersect except
并(会去重,保留重复使用union all)
交(去重,保留重复用intersect all)
差(同前面)
not exsit + A except B 可以用来表示包含关系

null

null运算没有肯定结果时为unknown,unknown不会被select
肯定结果如 T or null = true
注意:

  • (A,null) 和 (A,null) 在 select distinct中会被去重
  • null != null

group by

group by(A1,A2,...)运算,把所有属性相同的分为一组
有group by 时,select 中出现的只能是group by 后面出现的列(聚集函数的参数除外)
主要作用是使用如下的聚集函数

  • avg
  • min, max
  • sum
  • count
    以每个group为一个单位进行计算,没有group by直接使用这些函数时,默认每一个元组就是一个group

having语句

用于限定每一个group的条件,出现的也只能是group by中出现的列(聚集函数参数除外)

空值处理

没看,见P97

嵌套子查询,集合操作

in

在一个集合里面,当然也有not in
注意in 前后要对应,前面是ID 后面就是一组 ID
也可以: name in ('Mozart','Einstein')
还可以 (name,year) in (select name,year from ...)

some/all (集合)

用于> < = 等等
注意本质是枚举集合内的元素,some就是有一个满足条件即可,all是每一个都满足条件 所以= all (>=2个元素) 一定为false

exsits

测试里面有没有元组,也有not exsits

unique

测试里面有没有重复元组,当然也有not unique

lateral

from instructor as I1, (select * from where I1 ...)是不行的,from中子查询不能使用同一句from中前面定义的东西。
使用lateral可以解决这一问题,
lateral(select * from where I1...)即可

with

语法:
with 临时表名称(临时表列A1,A2,...)as
(
select... 或者其他产生一个表的方式
),
临时表2(....)...
select
from

标量子查询

就是说子查询可以出现在任何需要单个值的表达式出现的地方,例如在select where having 中都可以出现
什么

select (select count(*) from instructor where department.name=instructor.name)
from department

都是可以的

修改

删除

delete from 表
where ...

插入

insert into course
value(.....)//按顺序

insert into course(A1,A2,A3,...)
value(v1,v2,v3,... )

insert into course
	select ID,name,...
	from
	where...

更新

update 表
set salary = salary*1.05
where ...

在更新时使用case:

set salary = salary*case
	when d1 then r1
	when d2 then r2
	else r3

就是case返回某一个then后面的值

标签:语句,...,group,name,SQL,数据库系统,null,where,select
From: https://www.cnblogs.com/lytql/p/18076935

相关文章

  • 万户ezOFFICE-wf_printnum.jsp存在SQL注入漏洞
    声明:本文仅用于技术交流,请勿用于非法用途由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。简介万户EZOFFICE是一款办公软件,由中国万户网络科技有限公司开发和提供。该软件提供了一系列办公管理工具,包括......
  • MySQL面试题系列-8
    MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。mysql的全复制、半复制、异步复......
  • mysql双机热备
    MySQL双机热备:保障数据库高可用性的关键技术在当今信息化社会中,数据库作为企业信息系统的核心组成部分,其高可用性和数据安全性至关重要。MySQL作为广泛应用的开源关系型数据库管理系统,其双机热备技术成为保障数据库稳定运行的关键手段。本文将深入探讨MySQL双机热备的原理、实......
  • [MySQL]存储过程
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18032044出自【进步*于辰的博客】存储过程的细节很多,而在实际工作中又未必都能涉及这些细节,工作时间一长,就可能忘记,于是特来写这篇文章,既是为自己做个笔记,也是跟大家分享存......
  • java计算机毕业设计(附源码)影院订票app(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在数字化时代,人们对于娱乐消费的方式和习惯正在发生着翻天覆地的变化。随着智能手机的普及以及移动互联网技术的飞速发展,线上订票系统成为了人们生活中不......
  • java计算机毕业设计(附源码)影视创作论坛系统(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着科技的不断进步和互联网的普及,影视创作行业也在经历着前所未有的变革。传统的影视创作模式已经无法满足现代社会的需求,而新兴的影视创作论坛系统则应......
  • java计算机毕业设计(附源码)影视游戏推广系统(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着数字媒体时代的到来,影视和游戏产业迎来了前所未有的发展机遇。影视作品以其生动的叙事和视听效果吸引着全球观众,而游戏则以其互动性和沉浸式体验成为......
  • 基于SSM+Jsp+Mysql的超市管理系统
    开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示管理员登录员工管理商品类型管理商品库存管理商品进货管理上班打卡管理请假信息管理交流信息......
  • [转帖]shell编程-流程控制-if语句
    1.单分支if条件语句单分支if条件语句有三种写法:if[条件判断式];then操作fi或者if[条件判断式]then操作fi或者if[条件判断式];then操作;fi说明:只有条件成立,才执行相应的操作。示例:if[aa==aa];thenechoyes;fi1注意要点:if语句使用......
  • 【附源码】计算机毕业设计智慧社区团购系统的设计(java+springboot+mysql+mybatis+论文
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义随着互联网技术的发展和普及,社区团购作为一种新兴的电商模式,正逐渐改变着人们的购物习惯。然而,传统的社区团购系统存在着一些问题,如信息不透明、效率低下、用户体......