SQL补充2:数据库的增操作

数据库的增操作

数据库的增操作主要涉及数据库的增加、数据表的增加、表记录增加以及表字段增加等:

  • 数据库的增加非常简单,就是新创建一个数据库;
  • 表记录的增加指的就是新增表的数据行,可以是在已有表的基础上增加记录,也可以是将查询结果保存为新的表;
  • 字段的增加是指在原有表的基础上新增一些字段。

新建数据库

CREATE DATABASE <database_name>;

新建表

CREATE TABLE table_name_ (column_name column_type);

在原有表的基础上增加记录

INSERT INTO stu_info( iname,department) VALUES
("十九","管理系"),
("小北","生物系");

将查询返回的结果插入到新表中

尝试将之前的商品表goods_orders中支付方式为"1,2,3"的记录插入到新表orders_sub(表结构与goods_orders表一致)中

-- 新建orders_sub表,并且表结构与goods_orders表一致
CREATE TABLE orders_sub LIKE goods_orders;-- 将查询结果插入到数据表orders_sub中
INSERT INTO orders_sub
SELECT * FROM goods_orders
WHERE Pay_Type IN (1,2,3);

将查询结果直接生成一张新表

将学生信息表stu_info和学生成绩表stu_score合并之后的结果生成一张新表student

CREATE TABLE student AS
SELECT t1.* , t2.Excel,t2.Tableau,t2.MySQL
FROM stu_info AS t1
LEFT JOIN stu_score AS t2
ON t1.id = t2.id;

增加表字段

在上述表student中增加一个新字段Python,并设置为整型,默认值为0

ALTER TABLE student ADD COLUMN Python INT DEFAULT 0

数据库的改操作

数据库的改操作主要是指:

  • 修改表中错误记录
  • 修改字段类型
  • 修改表名称、字段名称

修改表名称

将学生表student的名称修改为stu_summary

ALTER TABLE student RENAME TO stu_summary;

修改字段名

查看学生表stu_summary所有字段类型,再将学生表stu_summary中gender改成sex

ALTER TABLE stu_summary CHANGE gender sex varchar(10);

修改字段类型

将学生表stu_summary 年龄字段age的字段类型修改为VARCHAR(10)

-- 查看学生表stu_summary所有字段类型
DESC stu_summary;-- 将学生表stu_summary 年龄字段age的字段类型修改为VARCHAR(10)
ALTER TABLE stu_summary MODIFY COLUMN age varchar(10);
-- 也可以使用CHANGE关键词
-- ALTER TABLE stu_summary CHANGE age age varchar(10);

修改数据表中的某个记录

将学生表student中张勇的邮箱地址改为zhangyong@163.com

SELECT * FROM student;UPDATE student SET email = "zhangyong@163.com"
WHERE iname = "张勇";

如果学生表中有多个名字叫“张勇”的学生,那么所有满足条件的记录都会被修改

数据库的删操作 (慎用!!! )

数据库的删操作主要包含数据库的删除、数据表的删除、表记录删除、字段删除三种类型:

  • 数据库的删除就是直接删掉整个数据库;
  • 表记录的删除是指按照某些条件删除数据表中的记录,或者直接清空数据表的所有记录;
  • 字段的删除与字段的增加恰好相反,就是根据实际情况将表中某些字段删掉。

数据库的删除

DROP DATABASE <database_name>;

在实际工作中,大部分数据分析师是没有权限对整个数据库进行删除的,公司进行权限管理也是为了数据的安全,防止有人删库跑路,给公司带来经济损失。

数据表的删除

DROP TABLE <table_name_>;

按条件删除表记录

删除学生表student中,名为“十九”和“小北”的记录

DELETE FROM student
WHERE iname IN ("十九","小北");

如果出现报错Error Code: 1175 ,这是Workbench的安全设置导致的,可以通过降低安全等级解决

set sql_safe_updates =0;
SELECT * FROM student; # 查看删除后的数据

删除表字段

删除学生表student中的email字段

ALTER TABLE student DROP email;

清空数据表

对于数据表的清空操作,这里会涉及到两个关键词:DELETE关键词 和 TRUNCATE 关键词。这两个关键词都可以清空数据表,但是两者之间还是有一些差异:

  • DELETE不会清空自增变量的记忆,也就是再次更新数据时,自增变量的序号不是从1开始的
  • TRUNCATE可以根本性删除表记录,新增数据时,自增变量的序号从1开始
  • 在运行速度方面,TRUNCATE要比 DELETE快

数据准备

# 新建数据表
CREATE TABLE user_info(id INT AUTO_INCREMENT PRIMARY KEY,iname VARCHAR(10),gender TINYINT,age TINYINT
);# 手工插入记录
INSERT INTO user_info(iname,gender,age) VALUES
('张三',1,22),
('李四',1,27),
('王二',0,25),
('丁一',0,32),
('赵五',0,28);SELECT * FROM user_info;

尝试用DELECT 清空数据表,并增加三条记录

# 使用DELETE关键词清空数据表
DELETE FROM user_info;# 插入记录
INSERT INTO user_info(iname,gender,age) VALUES
('张三',1,22),
('李四',1,27),
('王二',0,25);# 查看数据表
SELECT * FROM user_info;

image-20240213145743322

尝试用TRUNCATE 清空数据表,并增加三条记录

# 使用TRUNCATE关键词清空数据表
TRUNCATE TABLE user_info;# 插入一条记录
INSERT INTO user_info(iname,gender,age) VALUES
('张三',1,22),
('李四',1,27),
('王二',0,25);# 查看数据表
SELECT * FROM user_info;

CATE 清空数据表,并增加三条记录

# 使用TRUNCATE关键词清空数据表
TRUNCATE TABLE user_info;# 插入一条记录
INSERT INTO user_info(iname,gender,age) VALUES
('张三',1,22),
('李四',1,27),
('王二',0,25);# 查看数据表
SELECT * FROM user_info;

image-20240213145822137

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

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

相关文章

基于SSM的电影购票系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的电影购票系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring Spri…

Pandas.DataFrame.cumprod() 累积乘积 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本&#xff1a; 本文基于 pandas2.2.0 编写。 关于本文内容更新&#xff1a; 随着pandas的stable版本更迭&#xff0c;本文持续更新&#xff0c;不断完善补充。 传送门&#xff1a; Pandas API参考目录 传送门&#xff1a; Pandas 版本更新及新特性 传送门&…

【c++ debug】记一次protobuf结构相关的coredump问题

文章目录 1. 问题现象2. 问题描述3. 问题分析4. 问题根因5. 问题修复6. 补充&#xff1a;类成员变量定义为引用类型 1. 问题现象 其中curr_lanes是一个目标上一帧的当前车道current_lanes_curr_lane是lane_id对应的LaneInfo信息现象&#xff1a;在lane_info->lane().success…

四川古力未来科技公司抖音小店:靠谱的新电商之旅

随着互联网的飞速发展&#xff0c;电商行业日新月异&#xff0c;新兴平台如抖音小店正成为消费者新的购物天堂。在众多抖音小店中&#xff0c;四川古力未来科技公司的店铺以其独特的魅力吸引了众多消费者的目光。那么&#xff0c;四川古力未来科技公司抖音小店到底靠不靠谱呢&a…

Java并发基础:ConcurrentSkipListSet全面解析!

内容概要 ConcurrentSkipListSet类在多线程环境下&#xff0c;它能够轻松应对大量的插入、删除和查找操作&#xff0c;同时保持数据的完整性和一致性&#xff0c;其内部基于跳表数据结构的实现&#xff0c;确保了即使在处理大规模数据时&#xff0c;也能具有出色的性能表现。 …

现在学鸿蒙有前途吗?能找到工作?

2024年可以说是布道鸿蒙开发行业的最佳时机&#xff0c;华为鸿蒙在2023年末宣布了纯血鸿蒙的问世。这一信息已经引起业界很大关注。 鸿蒙2024年初&#xff0c;在千帆启航仪式会中&#xff0c;宣布了星河版并对开发者开放申请。发布会中表示&#xff0c;已有200家头部企业加入原…

2024.2.18

使用fgets统计给定文件的行数 #include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) {FILE *fpNULL;if((fpfopen("./test.txt","w"))NULL){perror("open err");return -1;}fputc(h,fp);fputc(\n,fp);fput…

java根据前端所要格式返回树形3级层级数据

一、业务分析&#xff0c;根据前端需求返回如下数据格式 二、后端设计数据类型VO /*** author TTc* version 1.0* date 2024/2/15 16:47*/ Data AllArgsConstructor NoArgsConstructor public class Catalog2Vo {/*** 一级父分类的 id*/private String catalog1Id;/*** 三级子…

迪杰斯特拉算法

迪杰斯特拉算法&#xff08;Dijkstras Algorithm&#xff09;&#xff1a; 由来&#xff1a; 迪杰斯特拉&#xff08;Dijkstra&#xff09;算法是由荷兰计算机科学家艾兹赫尔戴克斯特拉&#xff08;Edsger W. Dijkstra&#xff09;在1956年提出的一种解决带权有向图中单源最短…

2023年中国数据智能管理峰会(DAMS上海站2023):核心内容与学习收获(附大会核心PPT下载)

随着数字经济的飞速发展&#xff0c;数据已经渗透到现代社会的每一个角落&#xff0c;成为驱动企业创新、提升治理能力、促进经济发展的关键要素。在这样的背景下&#xff0c;2023年中国数据智能管理峰会&#xff08;DAMS上海站2023&#xff09;应运而生&#xff0c;汇聚了众多…

Python Selenium实现自动化测试及Chrome驱动使用!

本文将介绍如何使用Python Selenium库实现自动化测试&#xff0c;并详细记录了Chrome驱动的使用方法。 通过本文的指导&#xff0c;读者将能够快速上手使用Python Selenium进行自动化测试。 并了解如何配置和使用Chrome驱动来实现更高效的自动化测试。 一、Python Selenium简…

浅析Linux设备驱动:IO端口和IO内存

文章目录 概述IO端口和IO内存的区别 IO资源管理IO资源类型IO端口资源IO内存资源 IO资源分配 IO端口访问IO端口操作函数 IO内存访问IO内存操作函数 相关参考 概述 在计算机系统中&#xff0c;外部设备通常会提供一组寄存器或内存用于处理器配置和访问设备功能。这些寄存器或内存…