SQL编程语言1

article/2025/10/6 11:50:25

1 SQL简介

SQL是一门操作关系型数据库的编程语言

SQL通用语法

  • SQL语句可以以单行或多行书写,以分号结尾。只有在读取到分号后系统才会默认你已经输入执行语句
  • MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
  • 注释
    单行注释:-- 注释内容 (两个横杠一个空格)或 #注释内容(MySQL特有)
    多行注释:/* 注释 */
    在这里插入图片描述

SQL分类:

  • DDL 数据定义语言,用来定义数据库对象;数据库,表,列等
  • DML 数据操作语言,用来对数据库中表的数据进行增删改
  • DQL 数据查询语言,用来查询数据库表的记录(数据)
  • DCL 数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
    在这里插入图片描述

1.1 DDL 数据定义语言

DDL--------------------------操作数据库
1、查询

  • show databases;

2、创建

  • 创建数据库
    create database 数据库名称;
  • 创建数据库(判断,如果不存在则创建)
    create database if not exists 数据库名称;

3、删除

  • 删除数据库
    drop database 数据库名称;

  • 删除数据库(判断,如果存在则删除)
    drop database if exists 数据库名称;

4、使用数据库

  • 查看当前使用的数据库
    select database();
  • 使用数据库
    use 数据库名称;

DDL----------------------------------操作表

1、查询表:

  • 查询当前数据库下所有表名称
    show tables;
  • 查询表结构
    desc 表名称

2、创建表
CREATE TABLE 表名(
字段名1 数据类型1,
字段名2 数据类型2,

字段名n 数据类型n
);
注意:最后一行末尾不能加逗号

mysql> create table tb_user(-> id int,-> username varchar(20),-> password varchar(30)-> );

MySQL支持多种类型,可分为三类

  • 数值
  • 日期
  • 字符串

3、修改表

  • 修改表名
    alter table 表名 rename to 新的表名;
  • 添加一列
    alter table 表名 add 列名 数据类型;
  • 修改数据类型
    alter table 表名 modify 列名 新数据类型;
  • 修改列名和数据类型
    alter table 表名 change 列名 新列名 新数据类型;
  • 删除列
    alter table 表名 drop 列名;

4、删除表

  • 删除表
    drop table 表名;
  • 删除表时判断是否存在
    drop table if exists 表名;

1.2 DML 数据操作语言

添加数据

  • 给指定列添加数据
    insert into 表名(列名1,列名2,…) values(值1,值2,…);
  • 给全部列添加数据
    insert into 表名 values (值1,值2,…);
  • 批量添加数据
    insert into 表名(列名1,列名2,…) values(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
    insert into 表名 values(值1,值2,…),(值1,值2,…),(值1,值2,…)…;

修改数据

  • 修改表数据
    update 表名 set 列名1=值1,列名2=值2,…,[where 条件];
    注意:如果修改语句中不加条件,则将所有数据都修改!

删除数据

  • 删除数据
    delete from 表名 [where 条件];
    注意:删除语句中如果不加条件,则将所有数据都删除

1.3 DQL 数据查询语言(最重要)

1、基础查询

  • 查询多个字段
    select 字段列表 from 表名;
    mysql> select name,age from stu;
    select * from 表名; 查询所有数据
  • 去除重复记录
    select distinct 字段列表 from 表名;
    mysql> select distinct address from stu;
  • 起别名
    as:as 也可以省略
    mysql> select name,score as 数学成绩 from stu;

2、条件查询

  • 条件查询语法
    select 字段列表 from where 条件列表
    在这里插入图片描述
    mysql> select * from stu where age>20;
    mysql> select * from stu where age>20 and age<50;
    mysql> select * from stu where age between 20 and 50;

like模糊查询,通过某些字段进行查询,无需完整信息,_表示一个通配字符,%可以表示多个通配字符
查询姓马成员
mysql> select * from stu where name like ‘马%’;
查询第二个字是花的成员
mysql> select * from stu where name like ‘_花%’;
查询名字中包含云的成员
mysql> select * from stu where name like ‘%云%’;

3、排序查询

  • select 字段列表 from 表名 order by 排序字段名1 [排序方式1],排序字段名2 [排序方式2]…;

排序方式:
ASC:升序排序(默认值)
DESC:降序排序
注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序。

按照分数进行升序排序
mysql> select * from stu order by score asc;
按照年龄降序排序
mysql> select * from stu order by age desc;
先按照成绩排列,成绩一样则按照年龄降序排列
mysql> select * from stu order by score asc,age desc;

4、分组查询

聚合函数概念:将一列数据作为一个整体,进行纵向计算。

聚合函数分类:

  • count(列名):统计数量
  • max(列名):最大值
  • min(列名):最小值
  • sum(列名):列求和
  • avg(列名):列平均值

聚合函数语法
select 聚合函数名(列名) from 表名;
注意:null值不参与所有聚合函数计算

统计学生数
mysql> select count(name) from stu;
查询最高分
mysql> select max(score) from stu;
查询总分
mysql> select sum(score) from stu;
查询最低分
mysql> select min(score) from stu;
查询平均分
mysql> select avg(score) from stu;

  • 分组查询语法
    select 字段列表 from 表名 [where 分组前条件限定] group by 分组字段名 [having 分组后条件过滤];
    注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

where和having区别
执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
可判断的条件不一样:where 不能对聚合函数进行判定,having可以。
执行顺序:where>聚合函数>having

操作实例:
查询男同学和女同学各自的数学平均分
mysql> select sex,avg(math) from stu group by sex;
查询男同学和女同学各自的数学平均分,以及各自人数
mysql> select sex,avg(math),count() from stu group by sex;
查询男同学和女同学各自的数学平均分,以及各自人数,分数低于70分的不参与分组
mysql> select sex,avg(math),count(
) from stu where math>70 group by sex;
查询男同学和女同学各自的数学平均分,以及各自人数,分数低于70分的不参与分组,分组之后的人数大于2
mysql> select sex,avg(math),count() from stu where math>70 group by sex having count()>2;

5、分页查询

  • 分页查询语法
    select 字段列表 from 表名 limit 起始索引,查询条数目;

起始索引:从0开始。
计算公式:起始索引=(当前页码-1)*每页显示的条数

  • 分页查询limit是MySQL数据库特有的
  • Oracle分页查询使用rownumber
  • SQL server分页查询使用top

实例:
从0开始查询,查询3条数据
mysql> select * from stu limit 0,3;
每页显示3条数据,显示第一页
mysql> select * from stu limit 0,3;
每页显示3条数据,显示第二页
mysql> select * from stu limit 3,3;

1.4 DQL小结

  • select
    指定字段列表
  • form
    指定表名列表
  • where
    条件列表
  • group by
    完成分组字段
  • having
    完成分组之后条件限定
  • order by
    排序字段
  • limit
    分页限定

http://chatgpt.dhexx.cn/article/uerDWduq.shtml

相关文章

sql数据库高级编程总结(一)

1、数学函数&#xff1a;操作一个数据&#xff0c;返回一个结果 &#xff08;1&#xff09;取上限 ceiling 如果有一个小数就取大于它的一个最小整数 列如9.5 就会取到 10 select code,name,ceiling(price) from car &#xff08;2&#xff09;取下限 floor 如果有一个小数就…

SQL基础编程

文章目录 一.SQL的环境搭载单机离线环境在线环境 二.SQL的单表操作1.sql基础三步2.sql四则运算3.limit (限制查询结果个数)4.order by&#xff08;排序&#xff09;5.where 综合条件筛选6.SQL常量7.distinct (把结果中重复的行删除)8.函数(1) 聚合函数&#xff1a;sum() ——求…

君正X1000芯片性能和处理器介绍

君正X1000芯片是针对语音识别功能做了专门定制的芯片&#xff0c;可以支持4个MIC&#xff0c;支持远场唤醒&#xff0c;功耗很低&#xff0c;适用于物联网、智能家居、智能音频、智能玩具等产品 。 X1000 芯片功能&#xff1a; 穿戴处理器级低功耗&#xff0c;待机功耗0.2mW&am…

IBM storwize V5000存储基础配置

初始帐号密码 Superuser / passw0rd 设备和系统的基本状态 首先添加配置主机&#xff0c;前提是已经连接好光纤线&#xff0c;配置好光纤交换机 这里我们使用光纤通道 系统应该可以自动识别到端口&#xff0c;主机名可以设置为主机型号或者主机应用名 两个端口完成 配置内部存…

《计算机系统概论》-第5章-习题答案

给定指令ADD、JMP、LEA、NOT&#xff0c;请判断它们分别是操作&#xff08;或运算&#xff09;指令&#xff0c;还是数据搬移指令或控制指令&#xff1f;对每一条指令&#xff0c;进一步列出该指令可以采用的寻址模式。 指令类型寻址模式ADD操作立即数、寄存器2种寻址模式JMP控…

X1000之LCD部分的翻译

1.显示大小可达640x48060Hz&#xff0c;24BBP RGB 8 8 8 RGB(256^3) 2的24次方16777216 2.支持的颜色就是我们上面计算的 3. 8080并行接口 MCU接口方式&#xff08;8080&#xff0c;6800接口&#xff09;与RGB接口主要的区别 4.支持内部DMA操作和寄存器操作&#xff08;可以…

uboot - 配置过程1(分析国产君正的ingenic-linux-kernel3.10.14-x1000-v8.2-20181116\u-boot\mkconfig脚本)

分析uboot的配置过程&#xff08;mkconfig脚本&#xff09; uboot怎么配置&#xff1f;我们在终端上执行make NAME_config时的运行过程解析&#xff01; STEP1: %_config:: unconfig$(MKCONFIG) -A $(:_config)我们执行make *_config时会运行makefile的这两行程序&#xff0c…

Opencv 以指定格式保存图片

将图像保存至本地&#xff0c;以指定的格式&#xff0c;需要用到cv::imwrite()函数 函数原型&#xff1a; bool imwrite(const string& filename, InputArray img, const vector<int>& paramsvector<int>() )参数解释&#xff1a;filename:图像保存路径&…

【OpenCV-Python】教程:1-1 图像读取显示保存

文章目录 目标代码imread接口原型参数 支持的格式 imwrite接口原型参数 imshow接口原型参数 目标 读图片显示图片保存图片 代码 ## 导入库 import cv2 import sys## 读入图片 img cv2.imread("lena.jpg")## 读入失败退出 if img is None:sys.exit("Could not…

44.Linux君正X1000-添加st7789v显示

由于板子LCD旧屏是ili9335型号的,旧屏有时候会断货,如果断货则使用一个st7789v型号的LCD 它们两个屏的区别在于初始化屏的参数不同,引脚都一样,也就是说需要使板子同时支持ili9335型号和st7789v型号 思路: 1.uboot在显示LOG(初始化屏参数)之前,通过命令来读LCD型号,来检测LCD型…

HaaS100硬件规格

硬件配置 类别 参数 CPU 型号 HaaS 1000 架构 Cortex M33 主频 300MHz 片上Flash 16MB 内存 2.5MB SRAM 16MB PSRAM 硬件接口 类别 数量 性能指标 TF 卡槽 1个 最大支持 64GB RS485 1路 波特率支持1200bps ~ 115200bps RS232 1路 波特率最高支…

X1000对于CPU Core的参数解读(MIPS Cache)

各自摘抄整合&#xff0c;大多来自互联网&#xff0c;链接已全部放出来 1.MIPS-Based XBurst cores (up to 1.0GHz) 基于MIPS的XBurst核(最高可达1.0GHz) MIPS架构  XBurst是北京君正针对移动多媒体便携产品推出的一种创新的32位嵌入式CPU技术&#xff0c;它重新定义了32位嵌…

主控芯片成功案例:搭载北京君正X1000芯片,收款计算合二为一

具体硬件方面&#xff0c;商米码利奥Mini搭载了北京君正X1000芯片&#xff0c;该芯片具有性能强、功耗低的特点&#xff0c;主频可以达到1GHz &#xff0c;支持1秒极速启动&#xff0c;内置LPDDR&#xff08;X1000&#xff1a;32MB&#xff0c;X1000E&#xff1a;64MB&#xff…

【以太网硬件九】1000base-X是什么?

&#x1f449;个人主页&#xff1a; highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 说完千兆以太网电口&#xff0c;我们再来研究一下千兆光口的物理层规范。 千兆以太网…

比A100性能高4.5倍!英伟达H100横扫AI推理基准测试

视学算法报道 编辑&#xff1a;武穆 【导读】NVIDIA H100 Tensor Core GPU在MLPerf行业标准AI基准测试中首次亮相&#xff0c;创下了所有工作负载推理的世界纪录&#xff0c;提供的性能比上一代GPU高4.5 倍。 不久前&#xff0c;英伟达公布了旗下的芯片&#xff0c;在MLPerf行…

君正 X1000 音频驱动架构

X1000 音频驱动架构笔记 使用开发板X1000_HALLEY2_V2.0&#xff0c;源码为北京君正官方源码V7.0版本&#xff0c;与V6.0无太多差异 项目中遇到的问题 这是内核源码中设置所导致的&#xff0c;可能官方认为X1000这样设置会最好&#xff0c;可是我们需要小于30MS 的周期设置&…

华为metro1000描述,optix metro1000参数-华讯佳科技

OptiX Metro1000传输设备(简称Metro1000&#xff09;是华为技术有限公司研发的STM-1/STM-4/STM-16级别的盒式设备。华为Metro1000光端机主要应用于城域网、本地传输网接入层&#xff0c;具备结构简洁、集成度高等许多特点。 Metro1000光端机是华为技术有限公司开发的STM-1/STM-…

扔掉老破V100、A100,英伟达新一代计算卡H100来了

本文转载自公众号“夕小瑶的卖萌屋”&#xff0c;专业带逛互联网算法圈的神操作 -----》我是传送门 关注后&#xff0c;回复以下口令&#xff1a; 回复【789】 &#xff1a;领取深度学习全栈手册&#xff08;含NLP、CV海量综述、必刷论文解读&#xff09; 回复【入群】&#xf…

君正X1000开发板/方案开发介绍

君正X1000芯片开发板/方案开发&#xff0c;或者需要相关开发资料&#xff0c;如规格书&#xff0c;硬件设计&#xff0c;原理图等&#xff0c;可到一牛网论坛 X1000主要技术指标及特点 处理器 Ingenic X1000, 1.0GHz, 集成32Mbytes LPDDR 存储 16MBytes&#xff0c;4线SPI …