数据库笔记——SQL语言DQL语句

schema等于database 数据库

datagrip中使用控制台进行操作:

右键new  QueryConsole

创建表格create table中:
1. 括号内不管是定义属性还是声明约束,都使用逗号分隔,最后一句不用逗号
2. 括号外使用分号

DDL:数据库定义语言;用于创建/修改数据库/表结构,相当于修改表头有哪些列

create table student(id int auto_increment primary key,name varchar(10),number varchar(10)
);
insert into student values (null, '小明','20231014'),(null,'小新','20231600');create table course(id int auto_increment primary key ,name varchar(10)
);
insert into course values (null,'java'),(null,'PHP'),(null,'MySQL'),(null,'Hadoop');create table student_course(id int auto_increment primary key ,id_stu int ,id_cou int,foreign key (id_stu) references student(id),foreign key (id_cou) references course(id)
);
insert into student_course  values (null,1,1),(null,1,2),(null,1,3),(null,2,2),(null,2,3);

DML:数据库操纵语言;用于增删/修改表中数据,相当于修改表中一行数据

约束:

1. primary key(主码约束)

主码属性必须非空且唯一

primary key (dept_name)

2. foregin key references(外键约束)

foreign key (dept_name) references department(id),

3. not null(非空)

name varchar(20) not null

DQL语句(数据库查询语言)

单关系查询

select dept_name from instructor;

删除重复:使用distinct关键词:

select distinct dept_name from instructor;

使用all显式指明不去除重复:

select all dept_name from instructor;
select name
from instructor
where dept_name='Comp.Sci.' and salary>70000;

多关系查询

select name, instructor, dept_name, building
from instructor, department
where instructor.dept_name=department.dept_name;

 如果一个属性出现在两个关系中,我们使用关系名作为前缀;如果属性只出现在一个关系中,则不需要前缀

执行顺序:from -> where -> select

使用自然连接:select name, instructor, dept_name, building
from instructor natural join department;

多表查询

多对多:

建立第三张中间表

内连接

隐式内连接
select e.name,d.name from emp e,dept d where e.dept_id=d.id;
或
select e.name,d.name from emp,dept where emp.dept_id=dept.id;
显式内连接
select emp.name,dept.name from emp inner join dept on emp.dept_id=dept.id;

分组查询

当SOL查询使用分组时,一个很重要的事情是需要保证出现在select语句中但没有被聚集的属性只能是出现在group by子句中的那些属性。换句话说,任何没有出现在group by子句中的属性如果出现在select 子句中的话,它只能出现在聚集函数内部,否则这样的查询就是错误的。例如,下述查询是错误的,因为ID没有出现在group by 子句中,但它出现在了select子句中,而且没有被聚集:

执行顺序:from -> where -> group by -> having -> select

例:查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址:

select address, count(*) from emp where age<45 group by address having count(*)>=3;

where在分组前执行,分组时会执行聚合函数,having在分组后执行

查询字段一般为聚合函数和分组字段

关键词:

distinct

auto_increment:自动增长

id int auto_increment primary key,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/144562.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AndroidStudio如何设置中文

AndroidStudio如何设置中文 文章目录 AndroidStudio如何设置中文一、前言二、如何安装中文插件参考资料&#x1f498; 一、前言 Android Studio 是一个为 Android 平台开发程序的集成开发环境&#xff08;IDE&#xff09;。2013年5月16日在 Google I/O 上发布&#xff0c;可供…

armbian安装gcc、g++

文章目录 安装GCC安装G 安装GCC 打开终端&#xff0c;更新软件包列表&#xff1a; sudo apt update安装GCC&#xff1a; sudo apt install gcc如果需要安装特定版本的GCC&#xff0c;可以使用以下命令&#xff1a; sudo apt install gcc-<version> # sudo apt install g…

会声会影2024有哪些新功能?好不好用

比如会声会影视频编辑软件&#xff0c;既加入光影、动态特效的滤镜效果&#xff0c;也提供了与色彩调整相关的LUT配置文件滤镜&#xff0c;可选择性大&#xff0c;运用起来更显灵活。会声会影在用户的陪伴下走过20余载&#xff0c;经过上百个版本的优化迭代&#xff0c;已将操作…

【C语言进阶】文件操作

文件操作 1. 为什么使用文件2. 什么是文件2.1程序文件2.2 数据文件2.3 文件名 3. 文件的打开和关闭3.1 文件指针3.2 文件的打开和关闭 4. 文件的顺序读写4.1 对比一组函数 5. 文件的随机读写5.1 fseek5.2 ftell5.3 rewind 6. 文本文件和二进制文件7. 文件读取结束的判定7.1 被错…

Spring MVC(一)【什么是Spring MVC】

重点 Spring&#xff1a;IOC 和 AOP 。 Spring MVC &#xff1a;Spring MVC 的执行流程。 SSM 框架的整合&#xff01; Spring 和 Mybatis 我们不建议使用太多注解&#xff0c;Spring MVC 建议全部使用注解开发&#xff01; 1、MVC 回顾 1.1、什么是MVC MVC是模型(Model)…

STM32F4XX之串口

一、标准串口&#xff08;UART&#xff09;介绍 1、通信协议相关概念 1.1同步通信和异步通信 (1)同步通信&#xff1a;两个器件之间共用一个时钟线&#xff0c;要发送的数据在时钟的作用下一位一位发送出去。 &#xff08;2&#xff09;异步通信&#xff1a;指两个器件之间没…

MyBatis Generator - 快速生成 实体类 和 映射文件

目录 一、MyBatis Generator 的使用 1.1、生成类和映射文件 1.1.1、在 pom.xml 中引入依赖 1.1.2、根据 configurationFile 标签中配置的路径 创建 generatorConfig.xml 文件 1.1.3、自动生成类 和 映射文件 1.1.4、在 Insert 标签中添加获取主键值的选项 1.1.5、扫描配置…

Redis --- 安装教程

Redis--- 特性&#xff0c;使用场景&#xff0c;安装 安装教程在Ubuntu下安装在Centos7.6下安装Redis5 特性在内存中存储数据可编程的扩展能力持久化集群高可用快速 应用场景实时数据存储作为缓存或者Session存储消息队列 安装教程 &#x1f680;安装之前切换到root用户。 在…

2525.根据规则将箱子分类/并查集/动态规划

2525. 根据规则将箱子分类 - 力扣&#xff08;LeetCode&#xff09; 给你四个整数 length &#xff0c;width &#xff0c;height 和 mass &#xff0c;分别表示一个箱子的三个维度和质量&#xff0c;请你返回一个表示箱子 类别 的字符串。 如果满足以下条件&#xff0c;那么…

【CSS】BFC 块级格式化上下文

1. 块级格式化上下文&#xff08;BFC&#xff09; 它是一块独立的渲染区域&#xff0c;规定该区域内&#xff0c;常规流块盒的布局。 先来说一下常规流块盒&#xff1a; 常规流块盒在水平方向上&#xff0c;必须盛满包含块常规流块盒在包含块的垂直方向上依次摆放常规流块盒…

面试官:说说webpack的构建流程?

一、运行流程 webpack 的运行流程是一个串行的过程&#xff0c;它的工作流程就是将各个插件串联起来 在运行过程中会广播事件&#xff0c;插件只需要监听它所关心的事件&#xff0c;就能加入到这条webpack机制中&#xff0c;去改变webpack的运作&#xff0c;使得整个系统扩展…

文心一言 VS 讯飞星火 VS chatgpt (118)-- 算法导论10.3 3题

三、用go语言&#xff0c;在ALLOCATE-OBJECT和 FREE-OBJECT过程的实现中&#xff0c;为什么不需要设置或重置对象的 prev 属性呢? 文心一言&#xff1a; 在 Go 语言中&#xff0c;ALLOCATE-OBJECT 和 FREE-OBJECT 过程的实现通常不需要显式地设置或重置对象的 prev 属性。这…