操作数据库DDL、DML

news2024/12/23 14:29:18

DDL

1、创建表

create table tb_user(
    id int,
    username varchar(20),
    password varchar(10)
)

2、数据类型

3、删除表        drop table 表名

4、修改表

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

 DML

1、插入数据

  • 插入单条数据
insert into stu(id,name) values(2,'张三');
  • 插入多条数据
insert into stu(id,name) values(2,'张三'),(2,'张三')

2、修改数据

update stu set id=123 where id=1

 3、删除数据

delete from stu where id=123 

查询数据

(select + 字段列表) + (from + 表名列表) + (where + 条件列表) + (group by 分组字段) + (having + 分组后的条件) + (order by + 排序字段) + (limit + 分页限定)

 查询无重复记录

select distinct address from stu

多选一in(...)
之间between and 或者 &&
不等于!= 或者 <>
比较nullis 或者 is not
like模糊查询, _单个字符,%多个  任意字符

排序查询: ASC 升序排列,DESC降序排列

select * from stu order by age desc

多字段排序:先按照age降序,若age一样,再按照value升序排列

select * from stu order by age desc,value asc

聚合函数:统计数量:count;最大值:max;最小值:min;求和:sum;求平均:avg

分组查询(后面的having 相当于前面的where)

select sex,avg(math),count(*) from stu where math > 60 group by sex having count(*) > 2

执行顺序:where > 聚合函数 >having having和where执行时间不一样,且可判断的条件不一样。

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


 约束

 示例:

create table emp (
	id int primary key auto_increment, #员工id,主键且自增长
	ename varchar(50) not null unique, #员工姓名,非空且唯一
	joindate date not null, #入职日期,非空
	salary double(7,2) not null, #工资,非空
	bonus double(7,2) default 0 #奖金,如果没有奖金默认为0
) 

 约束(eg:constraint fk_emp_dept foreign key(dep_id) references dept(id))

多表查询

左外连接查询(查询emp表所有数据和对应的部门信息)

select * from emp left join dept on emp.dept_id = dept.did;

 右外连接查询(查询dept表所有数据和对应的员工信息)

select * from emp right join dept on emp.dept_id = dept.did;

事务

begin/start transaction 开启事务;

commit 提交事务;

rollback 回滚事务

查询事务的默认提交方式(@@autocommit = 1 表示自动,0表示手动)

select @@autocommit

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

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

相关文章

Vue中watch与computed区别

<body><div id"root">姓&#xff1a;<input type"text" v-model"firstName"><br/><br/>名&#xff1a;<input type"text" v-model"lastName"><br/><br/>全名&#xff1a;&…

virtio-net前端-virtqueue

文章目录 1.概述2.数据结构3. 流程分析3.1 virtio总线创建3.3virtio-net3.3.1virtio-net初始化![在这里插入图片描述](https://img-blog.csdnimg.cn/7246c1705ac24f88b75fad63f8941ca5.png)3.3.2 virtio-net驱动发送3.3.3 Qemu virtio-net设备接收 4.virtqueue4.1数据结构4.2发…

模糊测试Fuzzing基础知识学习笔记

概念 模糊测试&#xff08;Fuzzing&#xff09;&#xff0c;是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。在模糊测试中&#xff0c;用随机坏数据&#xff08;也称做 fuzz&#xff09;攻击一个程序&#xff0c;然后观察哪里遭到了破坏。 模糊测试…

6.Mysql自连接

针对相同的表进行的连接被称为“自连接”&#xff08;self join&#xff09; 那么为什么要把相同的一张表连接起来呢&#xff1f;一开始还是挺难理解的。把它想象成连接两张不同的表&#xff0c;这样容易理解一些。事实上&#xff0c;自连接还是有很多用处的 1. 在同一张表内进…

模板初识与STL简介

初识模板 引言函数模板定义实例化隐式实例化显式实例化 类模板定义实例化 STL简介STL六大组件 总结 引言 模板是泛型编程的基础 在之前我们介绍过函数重载&#xff0c;可以定义许多函数名相同参数列表不同的重载函数&#xff0c;来实现不同类型的相似操作。调用重载函数时会根…

chatgpt赋能python:归一化在PyTorch中的运用

归一化在PyTorch中的运用 PyTorch是一种广泛使用的深度学习框架&#xff0c;它可以用于训练和预测各种类型的神经网络。在深度学习中&#xff0c;归一化是提高模型性能的一种常用技术。归一化是指将输入数据进行标准化或规范化处理&#xff0c;以确保数据的统一性和一致性。在…

golang硬核技术(二)go程序从启动到运行到底经历了啥

前言 go相对其他语言&#xff0c;对并发的支持更友好。这使得他的设计和其他程序迥然不同。让我们来看看它都是如何初始化程序的&#xff0c;从程序加载到运行到底经历的什么。 我们继续之前的版本1.18.4 汇编入口 首先我们编译一个hello world 程序。 package main impor…

python--连接oracle数据库

python--连接oracle数据库 前言一、安装cx_Oracle二、导入库三、数据库操作实例3.1 连接3.2数据库查询3.3数据库插入3.4 实例从某网站上面爬取彩票号码 四、异常4.1、运行时&#xff0c;出现连接数据库失败:DatabaseError:DPI-1047解决连接失败问题1、查看Oracle的版本号2、进入…

辅助驾驶功能开发-功能规范篇(21)-1-XP行泊一体方案功能规范

XPilot Safety 主动安全系统 一、前向碰撞预防(Forward Collision Prevention) - 产品定义 基于车辆前向视觉模块和前毫米波雷达的感知能力,对车辆前方扇形区域内的车辆和VRU(弱势道路使用者) 有可能与本车的运行路线发生碰撞,进行预警、碰撞伤害降低或碰撞避免的一系列…

QT 简易视频播放器版本1.1

设计Qt界面实现播放、暂停、停止、下一集、上一集、快进、后退、倍速播放、进度调节&#xff0c;音量调节、视频播放列表等功能 先上演示效果&#xff1a; ui界面设计 videoplayer.h #ifndef VIDEOPLAYER_H #define VIDEOPLAYER_H#pragma execution_character_set("utf-…

深入了解Promise机制并使用JS实现一个Promise(一)

前言 关于为什么会有Promise以及Promise的一些用法和基本机制可以参考之前的文章JS中的异步与Promise使用整体来说&#xff0c;Promise可以帮助我们很好的解决异步的问题&#xff0c;号称是异步的终极解决方案。在浏览器中Promise是使用C实现的&#xff0c;今天就使用js来实现…

JSP原理以及基本语法

1、JSP原理 什么是JSP&#xff1f; Java Server Pages&#xff1a;Java服务器页面&#xff0c;和Servlet一样是动态Web技术&#xff01; 和HTML的区别&#xff1f; HTML是静态页面。在JSP页面中可以嵌入Java代码&#xff0c;为用户提供动态的数据。 JSP 和 Servlet 的关系…

枚举一个进程中的所有线程

在 Win32 开发中&#xff0c;如果需要获取程序运行过程中的一些较为底层的信息&#xff0c;你可能需要使用到 Tool Helper 库。但我愿意称之它为 Win32 中的 “害群之马”。何解&#xff1f; Tool Helper 库在 16 位 Windows 时代就已经存在了&#xff0c;这个库主要用来提供一…

今天给我的Ubuntu服务器挂在了一个4T的硬盘却只能识别到2T,原来是因为这!涨知识了

前言 今天买的4T机械硬盘到了&#xff0c;准备给我的服务器加装上&#xff0c;用来作为Nextcloud的存储硬盘。把硬盘安装好后就迫不及待的进行挂载&#xff0c;挂载的操作倒是挺顺利的&#xff0c;但是无论怎么操作Ubuntu系统识别到的大小居然都是2T&#xff0c;最后没办法&am…

chatgpt赋能python:开方在Python中的用法

开方在Python中的用法 开方是数学中常见的一种运算&#xff0c;用于求一个数的平方根。在Python中&#xff0c;开方运算可以通过使用math模块中的sqrt函数来实现。本文将介绍开方运算的概念、Python中的应用以及一些常见问题的解决方法。 开方的概念 开方是指&#xff0c;对…

chatgpt赋能python:在Python中运行程序的方法介绍

在Python中运行程序的方法介绍 Python是一种广泛使用的编程语言&#xff0c;也是人工智能和数据科学领域的首选。在这篇SEO文章中&#xff0c;我们将介绍Python中运行程序的几种方法。 1. 在Python环境中运行程序 Python环境是一个Python解释器及其标准库的集合。为了在Pyth…

Redis7【⑥ Redis复制(replica)】

Redis复制 Redis 复制&#xff08;Replication&#xff09;是 Redis 的一项核心功能&#xff0c;用于将一个 Redis 数据库的所有数据复制到另一个 Redis 实例上。Redis 复制可以提高系统的可用性、可靠性和扩展性&#xff0c;使得在发生故障时可以快速地恢复数据。 Redis 复制…

【TiDB v7.1.0】资源管控调研及评测

作者&#xff1a; angryart 原文来源&#xff1a; https://tidb.net/blog/ad24240a 多租户是什么 有语云&#xff0c;食在广州&#xff0c;玩在杭州&#xff0c;死在柳州&#xff0c;广东人除了天上飞的飞机不吃&#xff0c;地上走的坦克不吃&#xff0c;其它的什么都吃&am…

Mybatis面试题--MyBatis一级缓存,二级缓存

Mybatis的一级、二级缓存用过吗&#xff1f; 一级缓存: 基于 PerpetualCache 的 HashMap 本地缓存&#xff0c;其存储作用域为 Session&#xff0c;当Session进行flush或close之后&#xff0c;该Session中的所有Cache就将清空&#xff0c;默认打开一级缓存 二级缓存 是基于n…

Python将多维列表「拉伸」为一维列表的10种方式

来源&#xff1a;投稿 作者&#xff1a;Fairy 编辑&#xff1a;学姐 在Python编程中&#xff0c;列表是一种常用的数据类型。当我们遇到了一个嵌套列表&#xff0c;如果想将它扁平化为一维列表&#xff0c;就可以使用下面10种方法之一来实现这个需求。 1. 使用两层循环遍历 l…