SQL语句及其应用(上) (DDL语句以及DML语句)
SQL语句的定义:
概述:
全称叫 Structured Query Language, 结构化查询语言, 主要是实现 用户(程序员) 和 数据库软件(例如: MySQL, Oracle)之间交互用的.
分类:
DDL: 数据定义语言, 主要是操作 数据库, 数据表, 字段, 进行: 增删改查(CURD)
涉及到的关键字: create, drop, alter, show
DML: 数据操作语言, 主要是操作 表数据, 进行: 增删改(CDU) -> 统称为 更新语句.
涉及到的关键字: insert, delete, update
DQL: 数据查询语言, 主要是操作 表数据, 进行: 查询操作®
涉及到的关键字: select, from, where
DCL: 数据控制语言, 主要是 创建用户, 设置权限, 隔离级别等.
通用语法:
- SQL语句可以写一行, 也可以写多行, 最后用 分号 结尾.
- SQL语句不区分大小写, 为了阅读方便, 建议关键字大写, 其它都小写.
- 注释写法:
/* 多行注释的文本 */
# 单行注释
– 单行注释
二, 数据类型的定义
概述:
就是用来限定某列值的范围的, 必须是: 整数, 小数, 字符串, 日期等…
常用的数据类型:
- 整型: int
- 浮点型: float, double, decimal
- 日期型: datetime
- 字符串型: varchar(长度)
三, 约束的定义
概述:
在数据类型的基础上, 进一步对该列值做 限定.
(常用的)分类:
- 单表约束:
- primary key 主键约束, 特点: 非空, 唯一, 一般结合 auto_increment(自动增长, 自增)一起使用.`
- not null 非空约束, 即: 该列值不能为null, 但是可以 重复.
- unique 唯一约束, 即: 该列值必须不重复, 但是可以 为空.
- default 默认约束, 等价于Python的 缺省参数.
- 多表约束:
- foreign key 外键约束
四, DDL语句(数据定义语言)
DDL语句的定义
DDL: 数据定义语言, 主要是操作 数据库, 数据表, 字段, 进行: 增删改查(CURD)
涉及到的关键字: create, drop, alter, show
案例
案例(1) DDL语句, 操作数据库
案例需求
DDL语句, 操作数据库
实现思路
- 查看当前所有的数据库.
- 删除数据库.
- 创建数据库.
- 方式1: 数据库存在时, 报错.
- 方式2: 数据库存在时, 什么都不做.
- 方式3: 创建数据库, 指定码表.
- 查看两个数据库的详细信息(码表信息).
- 修改数据库的码表.
- 切换数据库.
- 查看当前使用的是哪个数据库.
# 1. 查看当前所有的数据库.
show databases ;# 2. 删除数据库.
drop database day10;# 3. 创建数据库.
# 4. 方式1: 数据库存在时, 报错.
create database day01 charset 'utf8';
# 5. 方式2: 数据存在时, 什么都不做.
create database if not exists day01 charset 'utf8';
# 6. 方式3: 创建数据库, 指定码表.
create database if not exists day02 charset 'gbk'; # 7. 查看两个数据库的详细信息(码表信息)
show create database if not exists day01; # utf8
show create database if not exists day02; # gbk # 8. 修改数据库的码表.
alter database day02 charset 'utf8';# 9. 切换数据库.
use day01;# 10. 查看当前使用的是哪个数据库.
select database(); # day01
案例(2)DDL语句, 操作数据表
扩展:创建数据表的格式:
# 格式:
create table [if not exists] 数据表名(字段名 数据类型 [约束],字段名 数据类型 [约束],......字段名 数据结构 [约束]
);
# 细节:# 上述的中括号中的部分, 可表示选项, 写不写都行.
案例需求
DDL语句, 操作数据表
实现思路
- 务必先切库, 即: 之后的表, 都是在这个库中玩儿的.
- 查看(当前数据库中)所有的数据表.
- 核心: 查看某张表的结构信息(字段名, 结构类型, 约束等…)
- 创建数据表.
- 需求: 创建用户表users, 字段为: id, username, password
- 修改表名.
- 格式1: alter table 旧表名 rename 新表名;
- 格式2: rename table 旧表名 to 新表名;
- 删除数据表.
# 0. 务必线切库, 即: 之后的表, 都是在这个库中玩的.
use day01;# 1. 查看(当前数据库中)所有的数据表.
show tables;
# 3. 核心: 查看某张表的结构信息(字段表, 数据类型, 约束等...)
desc users;
# 4. 创建数据表.
# 5. 需求: 创建用户表user, 字段为: id, userbname, password
create table if not exists users(id int, # id列, 整型.username varchar(20), # 账号, 字符串类型passward varchar(20), # 密码, 字符串类型
);# 6. 修改表名.
# 7. 格式1: alter table 旧表名 rename 新表名;
alter table users rename user_tmp;
# 8. 格式2: rename table 旧表名 to 新表名;
rename table user_tmp to users;# 9. 删除数据表.
drop table users;
案例(3)DDL语句, 操作字段
案例需求
DDL语句 操作字段
实现思路
- 查看某表的结构信息(字段信息)
- 给表新增字段: address, int, 非空(约束)
- 格式: alter table 表名 add 字段名 数据类型 [约束];
- 修改表的字段信息.
- 场景1: 只修改 数据类型 和 约束, 例如: address, int, 非空 -> address, varchar(10), 非空
- 格式: alter table 表名 modify 字段名 新的数据结构 [新的约束];
- 场景2: 修改列名, 数据类型, 约束. address, varcher(10), 非空 -> addr,vaerchar(20), 非空
- 格式: alter table 表名 change 旧字段名 新字段名 新的数据类型 [新的约束];
- 删除addr字段. 需求: 删除addr字段.
- 格式: alter table 表名 drop 旧字段名;
# 1. 查看某表的结构信息(字段信息)
desc user;# 2. 给表新增字段: address, int, 非空(约束)
# 3. 格式: alter table 表名 add 字段名 数据类型 [约束];
alter table users add address int not null;# 4. 修改表的字段信息.
# 5. 场景1: 只修改 数据类型 和 约束, 例如: address, int, 非空 -> address, varchar(10), 非空
# 6. 格式: alter table 表名 modify 字段名 新的数据结构 [新的约束];
alter table users modify address vaerchar(10); # 如果没加约束, 则之前的非空约束就没了.
alter table users modify address vaerchar(10) not null; # 这个才是符合题设的SQL语句.
# 7. 场景2: 修改列名, 数据类型, 约束. address, varcher(10), 非空 -> addr,vaerchar(20), 非空
# 8. 格式: alter table 表名 change 旧字段名 新字段名 新的数据类型 [新的约束];
# 9. 删除addr字段. 需求: 删除addr字段.
# 10. 格式: alter table 表名 drop 旧字段名;
alter table users drop addr;
DML(数据操作语言)
DML语句的定义
DML语句: 主要操作的是: 表数据. 对表数据进行增, 删, 改的操作.
SQL中, 给表添加数据的格式:
# 格式1: 普通写法.
insert into 表名(列名1, 列名2...) values(值1, 值2...); # 列的个数和类型 要和后续 值的个数和类型完全一致.
# 格式2: 省略列名.
insert into 表名 values(值1, 值2...); # 如果不写列名, 则默认表示: 全列名.# 格式3: 如果有了主键约束, 则添加表数据的动作可以简写为:
insert into 表名 values(null, 值1, 值2...);# 格式4: 如果要同时添加多条数据, 写法如下:
insert into 表名 values(值1, 值2, 值3), (值4, 值5, 值6).......;
案例: DML语句操作 表数据 -> 增
案例需求
DML语句操作表数据 -> 增
实现思路
- 切库.
- 查表.
- 查看表数据, 目前先了解, 稍后讲.
- 往 用户表中添加数据.
- 格式1:普通写法.
- 格式2: 省略列名, 默认 = 全列名.
- 格式3: 同时添加多个用户信息.
# 1. 切库.
use day01;
# 2. 查表.
show tables;
# 3. 查看表数据.
select * from users;# 4. 往 用户表中添加数据.
# 格式1: 普通写法.
insert into users(id, username, passward) values(1, 'admin01', 'pwd111');
insert into users(username) values('admin01');# 格式2: 省略列名,默认 = 全列名
insert into users values(1, 'admin01', 'pwd111');# 格式3: 同时添加多个用户信息.
insert into users values(2,'admin01', 'pwd222'), (3, 'admin03', 'pwd333');
五, 总结
-
Q1: SQL语句的定义?
- 全称叫Structured Query Language,结构化查询语言,主要是实现用户(程序员)和数据库软件(例如:MySQL,Oracle)之间交互用的
-
Q2: SQL语句的分类?
- DDL: 数据定义语言, 主要是操作 数据库, 数据表, 字段, 进行: 增删改查(CURD)
涉及到的关键字: create, drop, alter, show - DML: 数据操作语言, 主要是操作 表数据, 进行: 增删改(CDU) -> 统称为 更新语句.
涉及到的关键字: insert, delete, update - DQL: 数据查询语言, 主要是操作 表数据, 进行: 查询操作®
涉及到的关键字: select, from, where - DCL: 数据控制语言, 主要是 创建用户, 设置权限, 隔离级别等.
- DDL: 数据定义语言, 主要是操作 数据库, 数据表, 字段, 进行: 增删改查(CURD)
-
Q3: SQL语句中常用的数据类型?
- 整型: int
- 浮点型: float, double, decimal
- 日期型: datetime
- 字符串型: varchar(长度)
-
Q4: DDL语句(数据定义 语言)的常用操作?
- DDL语句, 操作数据库
- DDL语句, 操作数据表
- DDL语句, 操作字段
-
Q5: DML语句(数据操作语言)的常用操作?
- DML语句操作 表数据 -> 增
相关文章:
SQL语句及其应用(上) (DDL语句以及DML语句)
SQL语句的定义: 概述: 全称叫 Structured Query Language, 结构化查询语言, 主要是实现 用户(程序员) 和 数据库软件(例如: MySQL, Oracle)之间交互用的. 分类: DDL: 数据定义语言, 主要是操作 数据库, 数据表, 字段, 进行: 增删改查(CURD) 涉及到的关键字: create, drop, …...
混境之地1
问题描述 小蓝有一天误入了一个混境之地。 好消息是:他误打误撞拿到了一张地图,并从中获取到以下信息: 混境之地的大小为 n⋅mn⋅m,其中 # 表示这个位置很危险,无法通行,. 表示道路,可以通行。他…...
5种生成模型(VAE、GAN、AR、Flow 和 Diffusion)的对比梳理 + 易懂讲解 + 代码实现
目录 1 变分自编码器(VAE) 1.1 概念 1.2 训练损失 1.3 VAE 的实现 2 生成对抗网络(GAN) 2.1 概念 2.2 训练损失 a. 判别器的损失函数 b. 生成器的损失函数 c. 对抗训练的动态过程 2.3 GAN 的实现 3 自回归模型&am…...
doris:查询熔断
查询熔断是一种保护机制,用于防止长时间运行或消耗过多资源的查询对系统产生负面影响。当查询超过预设的资源或时间限制时,熔断机制会自动终止该查询,以避免对系统性能、资源使用以及其他查询造成不利影响。这种机制确保了集群在多用户环境下…...
多级缓存和数据一致性问题
一、什么是多级缓存? 多级缓存是一种分层的数据缓存策略,通过在不同层级(如本地、分布式、数据库)存储数据副本,结合各层缓存的访问速度和容量特性,优化系统的性能和资源利用率。其核心思想是让数据尽可能…...
计算机期刊推荐 | 计算机-人工智能、信息系统、理论和算法、软件工程、网络系统、图形学和多媒体, 工程技术-制造, 数学-数学跨学科应用
Computers, Materials & Continua 学科领域: 计算机-人工智能、信息系统、理论和算法、软件工程、网络系统、图形学和多媒体, 工程技术-制造, 数学-数学跨学科应用 期刊类型: SCI/SSCI/AHCI 收录数据库: SCI(SCIE),EI,Scopus,知网(CNK…...
全书测试:《C++性能优化指南》
以下20道多选题和10道设计题, 用于本书的测试。 以下哪些是C性能优化的核心策略?(多选) A) 优先优化所有代码段 B) 使用更高效的算法 C) 减少内存分配次数 D) 将所有循环展开 关于字符串优化,正确的措施包括ÿ…...
【教学类-58-14】黑白三角拼图12——单页1页图。参考图1页6张(黑白、彩色)、板式(无圆点、黑圆点、白圆点)、宫格2-10、张数6张,适合集体操作)
背景需求: 基于以下两个代码,设计一个单页1页黑白三角、彩色三角(包含黑点、白点、无点)的代码。 【教学类-58-12】黑白三角拼图10(N张参考图1张操作卡多张彩色白块,适合个别化)-CSDN博客文章…...
C++项目:高并发内存池_下
目录 8. thread cache回收内存 9. central cache回收内存 10. page cache回收内存 11. 大于256KB的内存申请和释放 11.1 申请 11.2 释放 12. 使用定长内存池脱离使用new 13. 释放对象时优化成不传对象大小 14. 多线程环境下对比malloc测试 15. 调试和复杂问题的调试技…...
消息队列性能比拼: Kafka vs RabbitMQ
本内容是对知名性能评测博主 Anton Putra Kafka vs RabbitMQ Performance 内容的翻译与整理, 有适当删减, 相关数据和结论以原作结论为准。 简介 在本视频中,我们将首先比较 Apache Kafka 和传统的 RabbitMQ。然后,在第二轮测试中,会将 Kaf…...
AP 场景架构设计(一) :OceanBase 读写分离策略解析
说明:本文内容对应的是 OceanBase 社区版,架构部分不涉及企业版的仲裁副本功能。OceanBase社区版和企业版的能力区别详见: 官网链接。 概述 当两种类型的业务共同运行在同一个数据库集群上时,这对数据库的配置等条件提出了较高…...
Java 大视界 -- Java 大数据在智能金融区块链跨境支付与结算中的应用(154)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
手把手教你在linux服务器部署deepseek,打造专属自己的数据库知识库
第一步:安装Ollama 打开官方网址:https://ollama.com/download/linux 下载Ollama linux版本 复制命令到linux操作系统执行 [rootpostgresql ~]# curl -fsSL https://ollama.com/install.sh | sh在Service中增加下面两行 [rootlocalhost ~]# vi /etc/…...
conda极速上手记录
什么是conda: Conda是一个跨平台的包管理工具和环境管理系统,支持Python、R、Java等多种语言。它能解决不同项目间的依赖冲突问题,例如: 项目A需要Python 3.6 NumPy 1.18; 项目B需要Python 3.10 NumPy 2.0。 通过创建独立环境&…...
C++ 继承:面向对象编程的核心概念(一)
文章目录 引言1. 继承的基本知识1.1 继承的关键词的区别1.2 继承类模版 2. 基类和派生类间的转换3. 继承中的作用域4. 派生类的默认成员函数4.1 默认成员函数的规则4.2 自己实现成员函数4.3 实现一个不能被继承的基类(基本不用) 引言 在C中,…...
蓝桥杯 临时抱佛脚 之 二分答案法与相关题目
二分答案法(利用二分法查找区间的左右端点) (1)估计 最终答案可能得范围 是什么 (2)分析 问题的答案 和 给定条件 之间的单调性,大部分时候只需要用到 自然智慧 (3)建…...
【图论】网络流算法入门
(决定狠狠加训图论了,从一直想学但没启动的网络流算法开始。) 网络流问题 • 问题定义:在带权有向图 G ( V , E ) G(V, E) G(V,E) 中,每条边 e ( u , v ) e(u, v) e(u,v) 有容量 c ( u , v ) c(u, v) c(u,v)&am…...
【算法day22】两数相除——给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求 不使用 乘法、除法和取余运算。
29. 两数相除 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求 不使用 乘法、除法和取余运算。 整数除法应该向零截断,也就是截去(truncate)其小数部分。例如,8.345 将被截断为 8 &#x…...
《TypeScript 7天速成系列》第4天:TypeScript模块与命名空间:大型项目组织之道
在大型TypeScript项目中,良好的代码组织架构是保证项目可维护性的关键。本文将深入探讨TypeScript的模块系统和命名空间,为企业级项目提供最佳实践方案。 一、模块化开发:现代前端工程的基石 1.1 ES模块基础语法 TypeScript全面支持ES6模块…...
AutoCAD C#二次开发中WinForm与WPF的对比
在AutoCAD .NET二次开发中,选择WinForm还是WPF作为用户界面技术,需要根据项目需求、团队技能和AutoCAD版本等因素综合考虑。以下是详细对比: ## 1. 基础特性对比 | 特性 | WinForm | WPF | |------------|…...
关于服务器只能访问localhost:8111地址,局域网不能访问的问题
一、问题来源: 服务器是使用的阿里云的服务器,服务器端的8111端口没有设置任何别的限制,但是在阿里云服务器端并没有设置相应的tcp连接8111端口。 二、解决办法: 1、使用阿里云初始化好的端口;2、配置新的阿里云端口…...
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 ADMM算法 4.2 最大似然ML检测算法 4.3 最小均方误差(MMSE)检测算法 4.4 迫零(ZF)检测算法 4.5 OCD_MMSE 检测算法 4.6 LAMA检测算法 …...
Linux 配置时间服务器
一、同步阿里云服务器时间 服务端设置 1.检查chrony服务是否安装,设置chrony开机自启,查看chrony服务状态 [rootnode1-server ~]# rpm -q chrony # rpm -q 用于查看包是否安装 chrony-4.3-1.el9.x86_64 [rootnode1-server ~]# systemctl enable --n…...
可视化web组态开发工具
BY组态是一款功能强大的基于Web的可视化组态编辑器,采用标准HTML5技术,基于B/S架构进行开发,支持WEB端呈现,支持在浏览器端完成便捷的人机交互,简单的拖拽即可完成可视化页面的设计。可快速构建和部署可扩展的SCADA、H…...
深度学习驱动的车牌识别:技术演进与未来挑战
一、引言 1.1 研究背景 在当今社会,智能交通系统的发展日益重要,而车牌识别作为其关键组成部分,发挥着至关重要的作用。车牌识别技术广泛应用于交通管理、停车场管理、安防监控等领域。在交通管理中,它可以用于车辆识别、交通违…...
C++笔记-模板初阶,string(上)
一.模板初阶 1.泛型编程 以往我们要交换不同类型的两个数据就要写不同类型的交换函数,这是使用函数重载虽然可以实现,但是有以下几个不好的地方: 1.重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时&a…...
关于cmd中出现无法识别某某指令的问题
今天来解决以下这个比较常见的问题,安装各种软件都可能会发生,一般是安装时没勾选注册环境变量,导致cmd无法识别该指令。例如mysql,git等,一般初学者可能不太清楚。 解决这类问题最主要的是了解环境变量的概念&#x…...
绿联NAS安装内网穿透实现无公网IP也能用手机平板远程访问经验分享
文章目录 前言1. 开启ssh服务2. ssh连接3. 安装cpolar内网穿透4. 配置绿联NAS公网地址 前言 大家好,今天给大家带来一个超级炫酷的技能——如何在绿联NAS上快速安装cpolar内网穿透工具。想象一下,即使没有公网IP,你也能随时随地远程访问自己…...
d9-326
目录 一、添加逗号 二、爬楼梯 三、扑克牌顺子 添加逗号_牛客题霸_牛客网 (nowcoder.com) 一、添加逗号 没啥注意读题就是 注意逗号是从后往前加,第一位如果是3的倍数不需要加逗号,备注里面才是需要看的 count计数 是三的倍数就加逗号,…...
汇编(六)——汇编语言程序格式及MASM
汇编语言的实现也是先利用某种编辑器编写汇编语言源程序(*.ASM),然后经过汇编得到目标模块文件(*.OBJ)、连接后形成可执行文件(*.EXE)。 1、汇编语言程序的语句格式 汇编语源程序由语句序列构成…...
