【SQL学习进阶】从入门到高级应用(一)

文章目录

  • MySQL命令行基本命令
  • 数据库表的概述
  • 初始化测试数据
  • 熟悉测试数据

🌈你好呀!我是 山顶风景独好
💝欢迎来到我的博客,很高兴能够在这里和您见面!
💝希望您在这里可以感受到一份轻松愉快的氛围!
💝不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

欢迎大家订阅本专栏!本专栏旨在为SQL初学者提供一条逐步迈向高级应用的学习之路,带您从零开始,一步一步练习,逐步掌握SQL的精髓,实现技能的提升与飞跃!

MySQL命令行基本命令


  1. 列出当前数据库管理系统中有哪些数据库。
show databases;

image.png

  1. 创建数据库,起名bjpowernode。
create database bjpowernode;

image.png

  1. 使用bjpowernode数据库。
use bjpowernode;

image.png

  1. 查看当前用的是哪个数据库。
select database();

image.png

  1. 查看当前数据库中有哪些表。
show tables;

image.png
image.png

  1. 删除数据库bjpowernode。
drop database bjpowernode;

image.png

  1. 退出mysql
    1. exit
    2. quit
    3. ctrl + c
  2. 查看当前mysql版本
select version();

image.png
还可以使用mysql.exe命令来查看版本信息(在没有登录mysql之前使用):mysql --version
image.png

数据库表的概述


nameagegender
张三20
李四22
  • 以上就是数据库表格的直观展示形式。
  • 表格英文单词table。
  • 表是数据库存储数据的基本单元,数据库存储数据的时候,是将数据存储在表对象当中的。为什么将数据存储在表中呢?因为表存储数据非常直观。
  • 任何一张表都有行和列:
    • 行:记录(一行就是一条数据)
    • 列:字段(name字段、age字段、gender字段)
  • 每个字段包含以下属性:
    • 字段名:name、age、gender都是字段的名字
    • 字段的数据类型:每个字段都有数据类型,比如:字符类型、数字类型、日期类型
    • 字段的数据长度:每个字段有可能会有长度的限制
    • 字段的约束:比如某些字段要求该字段下的数据不能重复、不能为空等,用来保证表格中数据合法有效

初始化测试数据


为了方便后面内容的学习,老师提前准备了表以及表中的测试数据,以下是建表并且初始化数据的sql脚本

DROP TABLE IF EXISTS EMP;
DROP TABLE IF EXISTS DEPT;
DROP TABLE IF EXISTS SALGRADE;CREATE TABLE DEPT(DEPTNO int(2) not null ,DNAME VARCHAR(14) ,LOC VARCHAR(13),primary key (DEPTNO)
);
CREATE TABLE EMP(EMPNO int(4)  not null ,ENAME VARCHAR(10),JOB VARCHAR(9),MGR INT(4),HIREDATE DATE  DEFAULT NULL,SAL DOUBLE(7,2),COMM DOUBLE(7,2),primary key (EMPNO),DEPTNO INT(2) 
);CREATE TABLE SALGRADE( GRADE INT,LOSAL INT,HISAL INT
);INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 10, 'ACCOUNTING', 'NEW YORK'); 
INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 20, 'RESEARCH', 'DALLAS'); 
INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 30, 'SALES', 'CHICAGO'); 
INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 40, 'OPERATIONS', 'BOSTON'); INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7369, 'SMITH', 'CLERK', 7902,  '1980-12-17', 800, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7499, 'ALLEN', 'SALESMAN', 7698,  '1981-02-20', 1600, 300, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7521, 'WARD', 'SALESMAN', 7698,  '1981-02-22', 1250, 500, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7566, 'JONES', 'MANAGER', 7839,  '1981-04-02', 2975, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7654, 'MARTIN', 'SALESMAN', 7698,  '1981-09-28', 1250, 1400, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7698, 'BLAKE', 'MANAGER', 7839,  '1981-05-01', 2850, NULL, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7782, 'CLARK', 'MANAGER', 7839,  '1981-06-09', 2450, NULL, 10); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7788, 'SCOTT', 'ANALYST', 7566,  '1987-04-19', 3000, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7839, 'KING', 'PRESIDENT', NULL,  '1981-11-17', 5000, NULL, 10); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7844, 'TURNER', 'SALESMAN', 7698,  '1981-09-08', 1500, 0, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7876, 'ADAMS', 'CLERK', 7788,  '1987-05-23', 1100, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7900, 'JAMES', 'CLERK', 7698,  '1981-12-03', 950, NULL, 30); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7902, 'FORD', 'ANALYST', 7566,  '1981-12-03', 3000, NULL, 20); 
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7934, 'MILLER', 'CLERK', 7782,  '1982-01-23', 1300, NULL, 10); INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 1, 700, 1200); 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 2, 1201, 1400); 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 3, 1401, 2000); 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 4, 2001, 3000); 
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 5, 3001, 9999); 
commit;
  • 什么是sql脚本:文件名是.sql,并且该文件中编写了大量的SQL语句,执行sql脚本程序就相当于批量执行SQL语句。

  • 你入职的时候,项目一般都是进展了一部分,多数情况下你进项目组的时候数据库的表以及数据都是有的,项目经理第一天可能会给你一个较大的sql脚本文件,你需要执行这个脚本文件来初始化你的本地数据库。(当然,也有可能数据库是共享的。)

  • 创建文件:bjpowernode.sql,把以上SQL语句全部复制到sql脚本文件中。

  • 执行SQL脚本文件,初始化数据库

    • 第一步:命令窗口登录mysql

    • 第二步:创建数据库bjpowernode(如果之前已经创建就不需要再创建了):create database bjpowernode;

    • 第三步:使用数据库bjpowernode:use bjpowernode;

    • 第四步:source命令执行sql脚本,注意:source命令后面是sql脚本文件的绝对路径。

      image.png

    • 第五步:查看是否初始化成功,执行:show tables;

      image.png

  • 使用其他的mysql客户端工具也可以执行sql脚本,比如navicat。使用source命令执行sql脚本的优点:可支持大文件

熟悉测试数据


emp dept salgrade三张表分别存储什么信息

  • emp:员工信息
  • dept:部门信息
  • salgrade:工资等级信息

查看表结构:desc或describe,语法格式:desc或describe +表名
image.png
以上的结果展示的不是表中的数据,而是表的结构。

  • Field是字段名
  • Type是这个字段的数据类型
  • Null是这个字段是否允许为空
  • Key是这个字段是否为主键或外键
  • Default是这个字段的默认值

对以上表结构进行解释说明:

  • emp表
    • empno:员工编号,int类型(整数),不能为空,主键(主键后期学习约束时会进行说明)
    • ename:员工姓名,varchar类型(字符串)
    • job:工作岗位,varchar类型
    • mgr:上级领导编号,int类型
    • hiredate:雇佣日期,date类型(日期类型)
    • sal:月薪,double类型(带有浮点的数字)
    • comm:补助津贴,double类型
    • deptno:部门编号,int类型
  • dept表
    • deptno:部门编号,int类型,主键
    • dname:部门名称,varchar类型
    • loc:位置,varchar类型
  • salgrade表
    • grade:等级,int类型
    • losal:最低工资,int类型
    • hisal:最高工资,int类型

对于以上表结构要提前了解,后面学习的内容需要你马上反应出:哪个字段是什么意思。
查看一下表中的数据,来加深一下印象(以下SQL语句会在后面课程中学习):
image.png

下一篇:【SQL学习进阶】从入门到高级应用(二)

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

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

相关文章

C++牛客周赛43题目分享(3)小红平分糖果,小红的完全平方数,小苯的字符串变化,小红的子数组排列判断

目录 ​编辑 1.前言 2.四道题目 2.1小红平分糖果 2.1.1题目描述 2.1.2输入描述 2.1.3输出描述 2.1.4示例 2.1.5代码 2.2小红的完全平方数 2.1.1题目描述 2.1.2输入描述 2.1.3输出描述 2.1.4示例 2.1.5代码 2.3小苯的字符串变化 2.1.1题目描述 2.1.2输入描述 …

想自学编程,看编程书有些看不懂,下一步应该怎么办?

不管你从事什么工作,编程都有助于你的职业发展。学习编程将给你自己赋能。我喜欢尝试新想法,时刻都有希望启动的新项目。学会编程后,我就可以坐下来自己实现,而不需要依赖他人。 编程也会提升你在其他方面的技能。因为你熟练掌握…

Gitlab不允许使用ssh拉取代码的解决方案

一、起因 之前一直是用ssh进行代码拉取,后来公司搞网安行动,不允许ssh进行连接拉取代码了 因为我是用shell写了个小型的CI/CD,部署前端项目用于后端联调的,因此在自动部署时,不方便人机交互,所以需要自动填充账密。 …

护网2024-攻防对抗解决方案思路

一、护网行动简介 近年来,网络安全已被国家上升为国家安全的战略层面,网络安全同样也被视为维护企业业务持续性的关键。国家在网络安全治理方面不断出台法规与制度,并实施了一些大型项目和计划,如网络安全法、等级保护、网络安全…

【UE C++】 虚幻引擎C++开发需要掌握的C++和U++的基础知识有哪些?

目录 0 引言1 关键的 C 知识2 Unreal Engine 相关知识3 学习建议 🙋‍♂️ 作者:海码007📜 专栏:UE虚幻引擎专栏💥 标题:【UE C】 虚幻引擎C开发需要掌握的C和U的基础知识有哪些?❣️ 寄语&…

什么情况下JVM内存中的一个对象会被垃圾回收?

什么情况下JVM内存中的一个对象会被垃圾回收? 1、什么时候会触发垃圾回收?2、被哪些变量引用的对象是不能回收的?3、Java中对象不同的引用类型4、finalize()方法的作用1、什么时候会触发垃圾回收? 平时我们系统运行创建的对象都是优先分配在新生代里的,如图: 然后如果…

【Oracle】PL SQL 怎么重新编译无效的对象

1.打开PL SQL ,点击图中有红色的 2.点击齿轮按钮即可 from:【Oracle】PL SQL 怎么重新编译无效的对象_plsql编译无效对象的按钮在哪里-CSDN博客

最新php项目加密源码

压缩包里有多少个php就会被加密多少个PHP、php无需安装任何插件。源码全开源 如果上传的压缩包里有子文件夹(子文件夹里的php文件也会被加密),加密后的压缩包需要先修复一下,步骤:打开压缩包 》 工具 》 修复压缩文件…

AIGC 010-CLIP第一个文本和图像对齐的大模型!

AIGC 010-CLIP第一个文本和图像对齐的大模型! 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 不客气的说CLIP和扩散模型的成功让计算式视觉领域几乎所有工作都重新做了一遍。 CLIP(对比语言-图像预训练)论文提出了一种新的对比学习方法&a…

28-ESP32-S3 lwIP 轻量级 TCP/IP 协议栈

ESP32-S3 lwIP 介绍 ESP32-S3 是一款集成了Wi-Fi 和蓝牙功能的微控制器。它的设计初衷是为了方便嵌入式系统的开发。不过你可能会好奇,ESP32-S3 怎么实现与外部网络的通信呢?这里就要提到一个开源的 TCP/IP 协议栈,它叫做lwIP(轻…

博客系统多模块开发

创建工程 创建父工程 删除src目录&#xff0c;在pom.xml添加依赖&#xff1a; <!--统一版本 字符编码--><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.b…

使用 Flask 和 Vue.js 构建 Web 应用

文章目录 入门1. 设置 Flask 后端2. 设置 Vue.js 前端 将 Flask 与 Vue.js 集成1. 配置 Flask 来提供 Vue.js 文件2. 构建 Vue.js 组件3. 运行应用程序 结论 在现代 Web 开发中&#xff0c;创建动态和响应式的应用通常涉及将后端框架如 Flask 与前端库如 Vue.js 结合起来。这种…

职责链设计模式

职责链设计模式&#xff08;Chain of Responsibility Design Pattern&#xff09;是一种行为设计模式&#xff0c;使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合。这些对象被链接成一条链&#xff0c;沿着这条链传递请求&#xff0c;直到有一…

2024年5月20日 (周一) 叶子游戏新闻

报告老板&#xff0c;现在就加班&#xff01;《职场浮生记》抢先体验版现已上线今天由LeiYun Games开发&#xff0c;2P Games发行的《职场浮生记》正式在Steam平台推出抢先体验版。玩家将跟随主角的步伐踏入一个最为真实的职场环境之中&#xff0c;在生活与工作之间找寻平衡&am…

数据库多表查询

多表查询&#xff1a; SELECT *FROM stu_table,class WHERE stu_table.c_idclass.c_id; 多表查询——内连接 查询两张表交集部分。 隐式内连接&#xff1a; #查询学生姓名&#xff0c;和班级名称&#xff0c;隐式调用 SELECT stu_table.s_name,class.c_name FROM stu_table…

力扣hot100学习记录(七)

240. 搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 题意 在二维矩阵中搜索是否存在一个目标值&#xff0c;该矩阵每一行每一列都是升序…

谷歌推出TransformerFAM架构,以更低的消耗处理长序列文本

Transformer对大模型界的影响力不言而喻&#xff0c;ChatGPT、Sora、Stable Difusion等知名模型皆使用了该架构。 但有一个很明显的缺点&#xff0c;其注意力复杂度的二次方增长在处理书籍、PDF等超长文档时会显著增加算力负担。 虽然会通过滑动窗口注意力和稀疏注意力等技术…

亚马逊云科技峰会福利来啦

2024 亚马逊云科技中国峰会&#xff0c;挑战俱乐部 Hands On 动手实验课程正在直播中&#xff0c;点击链接畅享生成式AI建构之旅&#xff0c;赢心动好礼 &#xff08;直播链接Link&#xff09; 只看不过瘾&#xff1f;别急&#xff01;我们为您准备了【生成式AI助手 Amazon Q 初…

手机视频恢复2个技巧:让您的视频资料重现生机

我们经常使用手机拍摄和保存各种视频资料&#xff0c;包括工作记录和日常生活的记忆。但有时候&#xff0c;由于误删、格式化或存储空间不足&#xff0c;我们会选择清理手机空间&#xff0c;这些视频资料可能会因此消失不见。今天&#xff0c;我们将为您揭秘手机视频恢复的技巧…

北斗卫星赋能水产养殖

北斗卫星赋能水产养殖&#xff1a;开启精准智能化新时代 天气稍有变化&#xff0c;浙江省江山市上余水产养殖场负责人就会通过手机APP实时查看鱼塘水体硝态氮、氨态氮、pH值、化学需氧量等水质参数&#xff0c;做到心中有数。这些数据由鱼塘内的巡航式底改机器人以及数字化监测…