三、基本的select语句

news2024/11/18 11:44:43

一、SQL概述

1、SQL背景知识

在这里插入图片描述

2、SQL语言排行

在这里插入图片描述

3、SQL分类

SQL语言在功能上主要分为如下3大类:

  • DDL(Data Definition Languages、数据定义语言),这些语句定义数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构

    • 主要的语句关键字包括 CREATE 、 DROP 、 ALTER 等
  • DML(Data Manipulation Language、数据操作语言),用于添加、删除、更新和查询数据库记录

    • 主要的语句关键字包括 INSERT 、 DELETE 、 UPDATE 、 SELECT 等
    • SELECT是SQL语言的基础,最为重要
  • DCL(Data Control Language、数据控制语言),用于定义数据库、表、字段、用户的访问权限和安全级别

    • 主要的语句关键字包括 GRANT 、 REVOKE 、 COMMIT 、 ROLLBACK 、 SAVEPOINT 等。
      在这里插入图片描述

二、SQL语言的规则与规范

1、sql语言的基本规则

  • SQL 可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进
  • 每条命令以 ; 或 \g 或 \G 结束
  • 关键字不能被缩写也不能分行

2、sql的大小写规范

  • MySQL 在 Windows 环境下是大小写不敏感的
  • MySQL 在 Linux 环境下是大小写敏感的
    数据库名、表名、变量名是严格区分大小写的
    关键字、函数名、列名(或字段名)、列的别名(字段的别名) 是忽略大小写的
  • 推荐采用统一的书写规范:
    数据库名、表名、表别名、字段名、字段别名等都小写
    SQL 关键字、函数名、绑定变量等都大写

3、注释

单行注释:#注释文字(MySQL特有的方式)
单行注释:-- 注释文字(–后面必须包含一个空格。)
多行注释:/* 注释文字 */
在这里插入图片描述

4、命名规则

数据库、表名不得超过30个字符,变量名限制为29个
数据库、表名必须只能包含 A–Z, a–z, 0–9, _共63个字符
数据库名、表名、字段名等对象名中间不要包含空格

待补充

5、数据导入指令

1) source 文件的全路径名 【注意:只能在命令行中执行,在图形化界面中执行会报错】
在这里插入图片描述

三、基本的SELECT语句

1、SELECT … FROM

SELECT 标识选择哪些列
FROM 标识从哪个表中选择

在这里插入图片描述

2、列的别名

SELECT last_name AS name, commission_pct comm
FROM employees;

3、去除重复行

默认情况下,查询会返回全部行,包括重复行

SELECT department_id
FROM employees;

在这里插入图片描述

在SELECT语句中使用关键字DISTINCT去除重复行

SELECT DISTINCT department_id
FROM employees;

在这里插入图片描述

【注意】DISTINCT 后面跟多个列名时,其实是对后面所有列名的组合进行去重,所以下面语句的执行结果比12条多,比107条少

SELECT DISTINCT department_id,salary
FROM employees;

在这里插入图片描述

4、空值参与运算

所有运算符或列值遇到null值,运算的结果都为 null

这里你一定要注意,在 MySQL 里面, 空值不等于空字符串。一个空字符串的长度是 0,而一个空值的长
度是空。而且,在 MySQL 里面,空值是占用空间的
在这里插入图片描述

5、着重号

我们需要保证表中的字段、表名等没有和保留字、数据库系统或常用方法名冲突。如果真的相同,请在SQL语句中使用一对``(着重号)引起来 例如 mysql> SELECT * FROM ORDER;

四 、显示表结构

使用DESCRIBE 或 DESC 命令,表示表结构。

DESCRIBE employees;DESC employees;

在这里插入图片描述

其中,各个字段的含义分别解释如下:
Field:表示字段名称。
Type:表示字段类型,这里 barcode、goodsname 是文本型的,price 是整数类型的。
Null:表示该列是否可以存储NULL值。
Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一
部分;MUL表示在列中某个给定值允许出现多次。
Default:表示该列是否有默认值,如果有,那么值是多少。
Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。

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

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

相关文章

MacOS + AndroidSDK + appium + 真手机(Android系统)环境搭建

需要的环境:Node.js version: ^14.17.0 || ^16.13.0 || >18.0.0NPM version > 8Java8python3Android SDK (通过Andriod Studio 安装)Appium client desktop (v1.19.1)install brew/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/ma…

Docker启动问题docker is starting…

环境window 10 家庭最新版直接上官网安装的 Docker DeskTop问题启动应用后setting打开一直转圈圈;主界面一直显示 docker is starting…解决方案3.1 先确定hyper-v是否开启搜hyper-v,点击启动或关闭Windows功能如下,选中Hyper-V服务3.2 进入任务管理期&a…

Hive 常用函数

Hive 常用函数一、常用内置函数1、空字段赋值2、CASE WHEN THEN ELSE END3、行转列4、列转行5、窗口函数(开窗函数)6、Rank二、常用日期函数三、常用取整函数四、常用字符串操作函数五、集合操作一、常用内置函数 查看系统自带的函数show functions;显示…

【AcWing】学了一坤时才明白的一道题

🎆音乐分享 (点击链接可以听哦) The Right Path - Thomas Greenberg 这道题小吉花了一坤时才弄明白,虽然花的时间有点长 但是至少是明白了 😎😎😎😎😎😎 …

Java程序占用CPU过高排查

使用 top 命令查看高CPU进程,执行命令后可以按 1 键查看各CPU 内核负载情况。CPU使用率主要看us、sy两个指标。假设 10760 是一个高CPU的进程。使用 top -H -p 查看 10760 的线程信息top -H -p 10760TIME列就是各个Java线程耗费的CPU时间。以线程ID 10952的线程为例…

Msyql聚簇索引和非聚簇索引

前提MySQL索引一直是面试中的常客,一提起索引,很多人都能答出来我知道Hash索引和B树索引,Hash是比较简单的,那么B树索引就有点复杂了。在创建表的时候,我们可以看到引擎有MyISAM , InnoDB等等,这两种是我们…

ARM uboot 的移植3 -从 uboot 官方标准uboot开始移植

一、选择合适的官方原版 uboot 1、官方原版 uboot 的版本 (1) 版本号。刚开始是 1.3.4 样式,后来变成 2009.08 样式。 (2) 新版和旧版的差别。uboot 的架构很早就定下来了,然后里面普遍公用的东西(common 目录下、drivers 目录下、fs 目录…

CSS快速入门

文章目录一、CSS是什么?语法规范引入方式二、CSS选择器标签选择器类选择器ID选择器通配符选择器后代选择器子选择器并集选择器伪类选择器三、常见元素属性字体属性文本属性背景属性圆角矩形元素的显示默认块级与行级元素盒子模式去除浏览器默认样式弹性布局一、CSS是…

JUC并发编程共享模型之管程(三)(中)

4.5Monitor概念 Java 对象头 以 32 位虚拟机为例(在32位虚拟机中,1个机器码等于4字节,也就是32bit,在64位虚拟机中,1个机器码是8个字节,也就是64bit) 普通对象 数组对象 其中Mark Word 结构为…

2019年MathorCup数学建模C题汽配件制造业中的生产排程问题解题全过程文档及程序

2019年第九届MathorCup高校数学建模挑战赛 C题 汽配件制造业中的生产排程问题 原题再现: 整体求解过程概述(摘要) 随着市场竞争日趋激烈,企业开始更加注重低费高效,因此生产排程问题成为众多制造企业关注的热点之一。其中,制造行…

源码剖析Spring MVC如何将请求映射到Controller?

文章目录一、前言二、核心链路分析1、确定请求映射的入口1)HandlerMapping注入Spring容器2)HandlerMethod注册到MappingRegistry1> 判断Class是否为一个Handler2> 解析Class中的所有HandlerMethod 并注册到MappingRegistry中2、请求路径匹配1&…

【JavaScript速成之路】JavaScript函数

📃个人主页:「小杨」的csdn博客 🔥系列专栏:【JavaScript速成之路】 🐳希望大家多多支持🥰一起进步呀! 文章目录前言1,函数基础1.1,函数概念1.2,函数使用1.3&…

sHMIctrl 曲线控件使用

目录 效果 官方介绍 ​编辑 名词解释 使用方法 显示点 点在X轴位置 点在Y轴位置 量程 单位 如何设置自动标尺数据 设置量程 设置单位 效果 官方介绍 名词解释 四条曲线:同时最多使用4条曲线。 每条条曲线最多512点:X2-X1-Xn; 数据自定…

认识CSS值如何提高写前端代码的效率

🌟所属专栏:前端只因变凤凰之路🐔作者简介:rchjr——五带信管菜只因一枚😮前言:该系列将持续更新前端的相关学习笔记,欢迎和我一样的小白订阅,一起学习共同进步~👉文章简…

Spring注解开发之组件注册(一)

Spring注解开发 Spring注解开发之组件注册下半篇 IOC,中文名为控制反转,是将Java的bean对象存储在容器中,当需要使用时,通过名字获取该对象。而不是通过new关键字去创建。 1.Configuration & Bean给容器中注册组件 第一种&…

K_A16_003 基于STM32等单片机采集薄膜压力传感器参数串口与OLED0.96双显示

K_A16_003 基于STM32等单片机采集薄膜压力传感器参数串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明对应程序:四、部分代码说明1、接线引脚定义STM32F103C8T6薄膜压力传感器模块五、基础知识学习与相关资料下载六、视频效果展示与程序资料获取七、注意…

Allegro如何在PCB中添加层面操作指导

Allegro如何在PCB中添加层面操作指导 在用Allegro做PCB设计的时候,根据需要,会在PCB中额外添加一些额外的层面,如下图 如何添加,具体操作如下 点击Setup点击Subclasses

实在智能RPA入选中国信通院《高质量数字化转型产品及服务全景图》

近日,中国信息通信研究院“高质量数字化转型创新发展大会暨中国信通院‘铸基计划’年度峰会”在北京召开,大会上信通院揭晓了《高质量数字化转型产品及服务全景图(2022)》(以下称“全景图”)。实在智能凭借…

自己定义typescript的类型声明文件xx.d.ts

****内容预警***菜鸟新手内容,大佬请绕道,不对的请指出我们在使用typescript的使用,如果安装一个包没有相应的类型声明文件,ts的类型检查就会报错,所以我们经常会安装npm包对应的types类型声明包,比如uuid …

手把手教你安装Linux!!!

文章目录Linux简述它们的区别安装CentOS①下载CentOS②安装Linux有两种方式③下载模拟软件④安装vmware⑤创建虚拟机⑥安装操作系统Linux简述 在国内比较流行的两款Linux发行版本CentOS和ubuntu 它们的区别 ubuntu:页面更加的华丽比较漂亮,它对计算机…