【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学习进阶】从入门到高级应用(二)


✨ 这就是今天要分享给大家的全部内容了,我们下期再见!😊

🏠 我在CSDN等你哦!我的主页😍

在这里插入图片描述

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

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

相关文章

共计3万字!从零开始创建一个小规模的稳定扩散模型!

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

stack学习

std::stack 类是一种容器适配器,它给予程序员栈的功能——特别是 FILO(先进后出)数据结构。该类模板用处为底层容器的包装器——只提供特定函数集合。栈从被称作栈顶的容器尾部推弹元素。 operator 赋值给容器适配器 (公开成员函数) 元素访问…

JCR一区级 | Matlab实现TCN-BiGRU-MATT时间卷积双向门控循环单元多特征分类预测

JCR一区级 | Matlab实现TCN-BiGRU-MATT时间卷积双向门控循环单元多特征分类预测 目录 JCR一区级 | Matlab实现TCN-BiGRU-MATT时间卷积双向门控循环单元多特征分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现TCN-BiGRU-MATT时间卷积双向门控循环单元多…

【设计模式深度剖析】【7】【结构型】【享元模式】| 以高脚杯重复使用、GUI中的按钮为例说明,并对比Java类库设计加深理解

👈️上一篇:外观模式 | 下一篇:结构型设计模式对比👉️ 设计模式-专栏👈️ 目录 享元模式定义英文原话直译如何理解?字面理解例子:高脚杯的重复使用例子:GUI中的按钮传统方式使用享元模式 4个角色1. …

【TB作品】MSP430G2553单片机,智能储物柜

智能储物柜将实现的功能: 1在超市或者机场场景下,用户需要进行物品暂存时。按下储物柜键盘的需求按键,智能储物柜将会随机为用户分配一个还没使用的柜子,屏幕提示用户选择密码存储方式或者身份证存储方式; 2 用户选择密…

教你搞一个比较简单的计时和进度条装饰器

教你搞一个比较简单的计时和进度条装饰器 什么是装饰器为啥要用装饰器呢?上代码!如何使用装饰器效果 什么是装饰器 装饰器的英文是:Decorator。装修的英文是:Decoration。顾名思义就是我们要用装饰器在函数func()上搞点儿事儿&am…

纯Java实现Google地图的KMZ和KML文件的解析

目录 前言 一、关于KMZ和KML 1、KMZ是什么 2、KML是什么 二、Java解析实例 1、POM.xml引用 2、KML 基类定义 3、空间对象的定义 4、Kml解析工具类 三、KML文件的解析 1、KML解析测试 2、KMZ解析测试 四、总结 前言 今天是六.一儿童节,在这里祝各位大朋友…

oracle mysql索引区别

文章目录 1.引言1.1 索引的基本概念1.2 Oracle和MySQL的简介 2.Oracle索引2.1 Oracle索引的类型**B-Tree索引****Bitmap索引****Function-Based索引****Partitioned索引****Text索引** 2.2 Oracle索引的工作原理2.3 Oracle索引的实例代码 3.MySQL索引3.1 MySQL索引的类型**B-Tr…

synchronized 锁的到底是什么?

通过8种情况演示锁运行案例,看看我们到底锁的是什么 1锁相关的8种案例演示code package com.bilibili.juc.lock;import java.util.concurrent.TimeUnit;/*** 题目:谈谈你对多线程锁的理解,8锁案例说明* 口诀:线程 操作 资源类* 8…

CLIP--Learning Transferable Visual Models From Natural Language Supervision

参考:CLIP论文笔记--《Learning Transferable Visual Models From Natural Language Supervision》_visual n-grams模型-CSDN博客 openAI,2021,将图片和文字联系在一起,----->得到一个能非常好表达图片和文字的模型主题&#…

Pandas 使用 concat 数据合并你学会了吗?

1. 使用pd.concat()级联 pandas使用pd.concat函数,与np.concatenate函数类似 # 导包import numpy as npimport pandas as pd​# 为方便讲解,我们首先定义一个生成DataFrame的函数def make_df(indexs,columns): data [[str(j)str(i) for j in colum…

RabbitMQ延时队列

一、RabbitMQ下载并使用插件 1、查看RabbitMQ插件的文件路径 docker inspect rabbitmq 找到Mounts下面Name:rabbitmq_plugin的Source即为插件路径 使用 cd 进入到该目录 2、下载插件 wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download…

C# 使用Aspose生成和修改文档

Aspose库 C#中的Aspose库是一个强大的文件处理库,可以用于各种文件格式的创建、编辑、转换和操作。该库提供了丰富的功能,包括处理文档、电子表格、幻灯片、PDF、图像等多种文件格式,能够轻松实现文件的读取、写入、格式化、样式设置、数据操…

Java Apache Jaccard文本相似度匹配初体验

文章目录 前言一、文本相似度算法的选择二、常见的文本相似度算法介绍三、使用示例1、引入jar包2、方法示例3、Jaccard源码剖析4、Jaccard源码解释 写在最后 前言 产品今天提了个需求,大概是这样的,来,请看大屏幕。。。额。。。搞错了&#…

三丰云评测:免费虚拟主机和免费云服务器体验

今天我来为大家分享一下我的三丰云评测体验。三丰云是一家提供免费虚拟主机和免费云服务器的服务商,为了方便大家了解他们的服务,我特地注册了他们的免费虚拟主机和免费云服务器进行试用。在实际体验中,我发现三丰云的服务表现非常出色。首先…

【产品经理】总篇章

引言: 在最近频繁的产品职位面试中,我深刻体会到了作为产品需要的不仅仅是对市场和技术的敏锐洞察,更多的是在复杂多变的环境中,如何运用沟通、领导力和决策能力来引导产品从概念走向市场。这一系列博客将分享我多年经历和所学到的所以知识&a…

OpenCV学习 基础图像操作(十六):图像距离变换

基础原理 顾名思义,我们可以利用像素之间的距离作为对该像素的一种刻画,并将其运用到相应的计算之中。然而,在一幅图像之中,某种类型的像素并不是唯一的,因此我门常计算的是一类像素到另一类的最小距离,并…

工厂模式详情

一.介绍工厂模式的用途与特点 工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。定义工厂方法模式(Fatory Method Pattern)是指定义一个创建对象的接口,但让实现这个接口的类来决定实例…

npm install node-sass 安装失败的解决方案:利用国内镜像加速安装

在开发前端项目时,使用Sass作为CSS预处理器是很多开发者的选择。然而,在通过npm安装其Node.js绑定库node-sass时,一些开发者可能会遇到安装失败的问题,尤其是网络原因导致的下载缓慢或中断。本文将指导你如何通过更换为国内镜像源…

如何在测试/线上环境页面访问本地接口?

文章目录 一、前言二、分析三、搭建1、搭建nginx,监听http请求转发2、监听https请求转发 四、总结 一、前言 在工作中,开发完的接口,一般测试的话,基本是使用Postman,如果要到页面测试,就要发版进行测试&a…