数据库学习笔记——DML

数据库学习笔记——DML

建表:

CREATE TABLE employee(employee_ID int not null,employee_name varchar(20) not null,street varchar(20) not null,city varchar(20) not null,PRIMARY KEY(employee_ID)
);CREATE TABLE company(company_name varchar(30) not null,city varchar(20) not null,PRIMARY KEY(company_name)
);create table manages(employee_ID int not null,manager_ID int,primary key(employee_ID),foreign key(employee_ID) references employee(employee_ID) on delete cascade,foreign key(manager_ID) references employee(employee_ID) on delete set null			
);create table works(employee_ID int not null,company_name varchar(30),salary numeric(8,2) check (salary>3000),  primary key(employee_ID),foreign key(employee_ID) references employee(employee_ID) on delete cascade,foreign key(company_name) references company(company_name) on delete set null									
);

将数据插入employee表:

INSERT into employee (employee_ID,employee_name,street,city) VALUES (319001,'Johnson','XihuRoad','Hangzhou');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319002,'Glenn','XihuRoad','Hangzhou');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319003,'Williams','ZhongshanRoad','Wuhan');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319004,'Chambers','Jiefang Road','Maoming');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319005,'Brooks','Secong Road','Shenzhen');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319006,'Greens','Xiyuan','GuangZhou');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319007,'Turner','FirstRoad','Shenzhen');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319008,'Wilder','FirstRoad','Shenzhen');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319009,'FrieRice','Xiyuan','GuangZhou');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319010,'Jackson','University','Tianjing');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319011,'MrSmithen','Beijing Road','Wuhan');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319012,'Majeris','First','Beijing');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319013,'McBride','Safety','Beijing');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319014,'Curry','North','Tianjing');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319015,'Edmonds','University','Tianjing');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319016,'Smith','Beijing Road','GuangZhou');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319017,'Shelby','Beijing Road','GuangZhou');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319018,'MrChen','First','Foshan');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319019,'McDong','Safety','Maoming');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319020,'MrDeng','FirstRoad','Shenzhen');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319021,'DongXin','FirstRoad','Shenzhen');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319022,'CbingQuan','Jiefang Road','Maoming');INSERT into employee (employee_ID,employee_name,street,city) VALUES (319023,'Leach','SecondRoad','Shenzhen');

将数据插入company表:

INSERT into company (company_name,city) VALUES ('Alibaba','Hangzhou');INSERT into company (company_name,city) VALUES ('Baidu','Beijing');INSERT into company (company_name,city) VALUES ('Huawei','Shenzhen');INSERT into company (company_name,city) VALUES ('Netease','GuangZhou');INSERT into company (company_name,city) VALUES ('Tensent','Shenzhen');INSERT into company (company_name,city) VALUES ('The People Bank','Beijing');

将数据插入manages表:

INSERT into manages (employee_ID,manager_ID) VALUES (319005,NULL);INSERT into manages (employee_ID,manager_ID) VALUES (319001,319002);INSERT into manages (employee_ID,manager_ID) VALUES (319003,319002);INSERT into manages (employee_ID,manager_ID) VALUES (319002,319004);INSERT into manages (employee_ID,manager_ID) VALUES (319004,319004);INSERT into manages (employee_ID,manager_ID) VALUES (319006,319005);INSERT into manages (employee_ID,manager_ID) VALUES (319007,319005);INSERT into manages (employee_ID,manager_ID) VALUES (319008,319005);INSERT into manages (employee_ID,manager_ID) VALUES (319010,319009);INSERT into manages (employee_ID,manager_ID) VALUES (319016,319009);INSERT into manages (employee_ID,manager_ID) VALUES (319012,319014);INSERT into manages (employee_ID,manager_ID) VALUES (319013,319014);INSERT into manages (employee_ID,manager_ID) VALUES (319014,319014);INSERT into manages (employee_ID,manager_ID) VALUES (319009,319017);INSERT into manages (employee_ID,manager_ID) VALUES (319017,319017);INSERT into manages (employee_ID,manager_ID) VALUES (319018,319018);INSERT into manages (employee_ID,manager_ID) VALUES (319019,319018);INSERT into manages (employee_ID,manager_ID) VALUES (319020,319021);INSERT into manages (employee_ID,manager_ID) VALUES (319021,319021);INSERT into manages (employee_ID,manager_ID) VALUES (319022,319021);INSERT into manages (employee_ID,manager_ID) VALUES (319023,319021);

将数据插入works表:

INSERT into works (employee_ID,company_name,salary) VALUES (319001,'Alibaba',7633.00);INSERT into works (employee_ID,company_name,salary) VALUES (319002,'Alibaba',12500.00);INSERT into works (employee_ID,company_name,salary) VALUES (319003,'Alibaba',10500.00);INSERT into works (employee_ID,company_name,salary) VALUES (319004,'Alibaba',17000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319005,'Tensent',15000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319006,'Tensent',10500.00);INSERT into works (employee_ID,company_name,salary) VALUES (319007,'Tensent',10655.00);INSERT into works (employee_ID,company_name,salary) VALUES (319008,'Tensent',12000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319009,'Baidu',20000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319010,'Baidu',19000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319011,'Netease',8000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319012,'The People Bank',7000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319013,'The People Bank',6335.00);INSERT into works (employee_ID,company_name,salary) VALUES (319014,'The People Bank',18500.00);INSERT into works (employee_ID,company_name,salary) VALUES (319015,'The People Bank',19000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319016,'Baidu',18000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319017,'Baidu',21000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319018,'Netease',15000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319019,'Netease',8000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319020,'Huawei',13000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319021,'Huawei',16000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319022,'Huawei',14000.00);INSERT into works (employee_ID,company_name,salary) VALUES (319023,'Huawei',15000.00);

创建临时数据表temp1,其中字段x、y、z数据类型依次为FLOAT(5,1)、DOUBLE(5,1)和DECIMAL(5,1), 向表中插入数据5.12、5.15和5.123 :

CREATE TABLE temp1(x FLOAT(5,1),y DOUBLE(5,1),z DECIMAL(5,1)
);INSERT into temp1 (x,y,z) VALUES (5.12,5.15,5.123);

出现警告信息:Data truncated for column ‘z’ at row 1

在创建一个decimal(5,1)的字段时,我们指定字段的总长度为5,小数点之后的位数为1,这意味着我们可以插入一个包含4个整数和1个小数点的数字。如果我们尝试插入超过该值的数据,z 的数据被截断,MySQL就会抛出上述异常。

创建临时数据表temp2, 定义数据类型为YEAR的字段 y,向表中插入值2010、‘2010’和‘2166’,并查看表temp2的结果 :

CREATE TABLE temp2(y YEAR
);INSERT into temp2 VALUES (2010);INSERT into temp2 VALUES ('2010');INSERT into temp2 VALUES ('2166');
# Out of range value for column 'y' at row 1

YEAR类型用于表示年份,使用4位字符串或数字表示,
范围为:‘1901’—‘2155’或1901—2155 。

向temp2表中的y字段插入2位字符表示的YEAR值,分别为‘0’,‘00’,‘77’和‘10’,并查看表temp2的结果:

drop TABLE temp2;CREATE TABLE temp2(y YEAR
);INSERT into temp2 VALUES ('0');INSERT into temp2 VALUES ('00');INSERT into temp2 VALUES ('77');INSERT into temp2 VALUES ('10');

使用两位字符串表示,范围为 ’00’—‘99’。其中, ’00’—‘69’ 范围的值会被转换为2000—2069范围的YEAR值;’70’—‘99’范围的值会被转换为1970—1999范围的YEAR 值。

向temp2表中的y字段插入2位数字表示的YEAR值,分别为0、78和11,并查看表temp2的结果:

drop TABLE temp2;CREATE TABLE temp2(y YEAR
);INSERT into temp2 VALUES (0);INSERT into temp2 VALUES (78);INSERT into temp2 VALUES (11);

使用两位数字表示,范围为1—99。

其中,1—69范围的值会被转换为2001—2069范围的YEAR值;

70—99范围的值会被转换为1970—1999范围的YEAR值。

注意:当使用YEAR类型时,一定要区分’0’和0。

因为字符串格式的’0’表示的YEAR值是2000而数字格式的0表示的YEAR值是0000。

创建临时表temp3,定义数据类型为TIME的字段t,向表中插入值‘10:05:05’、‘23:23’、‘2 10:10’、‘3 02’、‘10’,并查看表temp2的结果 :

CREATE TABLE temp3(t time
);INSERT INTO temp3 VALUES ('10:05:05');INSERT INTO temp3 VALUES ('23:23');INSERT INTO temp3 VALUES ('2 10:10');INSERT INTO temp3 VALUES ('3 02');INSERT INTO temp3 VALUES ('10');

‘D HH:MM:SS’格式的字符串:

D表示天数,取值范围是0~34。保存时,小时的值等于(D*24+HH)。

输入时可以是‘HH:MM:SS’,‘HH:MM’,‘D HH:MM’,‘D HH’,‘SS’等形式。

向temp3中插入值‘101112’、111213,0,‘107010’:

drop table temp3;CREATE TABLE temp3(t time
);INSERT INTO temp3 VALUES ('101112');INSERT INTO temp3 VALUES ('111213');INSERT INTO temp3 VALUES ('0');INSERT INTO temp3 VALUES ('107010');
# Incorrect time value: '107010' for column 't' at row 1

‘HHMMSS’格式的字符串或HHMMSS格式的数值表示:

例如,输入‘101112’,Time类型会转换成10:11:12;输入101112,Time类型会转换成10:11:12。

如果输入0或者‘0’,那么TIME类型会转换为00:00:00。

向temp3表中插入系统的当前时间:

INSERT INTO temp3 VALUES (CURRENT_TIME);

创建临时表temp4,定义数据类型为DATA的字段d,向表中插入‘1998-08-08’、‘19980808’和‘20201010’:

CREATE TABLE temp4(d DATE
);INSERT into temp4 VALUES ('1998-08-08');INSERT into temp4 VALUES ('19980808');INSERT into temp4 VALUES ('20201010');

修改姓名为‘Brooks’的工资为16000:

UPDATE works 
set salary=16000 
where employee_ID in (SELECT employee_ID from employee where employee_name='Brooks');

将‘Brooks’的公司改为‘Huawei’,工作改为‘17000’ :

UPDATE works
set company_name='Huawei',salary=17000
where employee_ID in (SELECT employee_ID from employee where employee_name='Brooks'); 

为所有雇员增加100元工资:

UPDATE works
set salary=salary+100;

删除姓名为“DongXin”雇员的信息:

DELETE from employee where employee_name='DongXin';

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

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

相关文章

杂七杂八面试题

什么是数据串联,数据隔离和数据越权? 数据串联:数据串联是指攻击者通过多次请求将多个请求串联在一起,从而获取比单个请求中更多的数据或权限。这种攻击通常发生在涉及分页、排序、筛选等操作的场景中,攻击者通过多次请求逐步获取更多的数据。 数据隔离:数据隔离是指不同…

三模块七电平级联H桥整流器电压平衡控制策略Simulink仿真

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

[ubuntu]ubuntu设置虚拟内存

首先查看自己是否加过虚拟内存或者查看虚拟内存当前状态可以命令: free -mh 创建交换分区: sudo mkdir /swap cd /swap sudo dd if/dev/zero ofswapfile bs1024 count12582912 其中count是自己分配内存大小,上面为12GB,你可…

travel总结:

目录 1、前期准备: 2、项目期间: (1)注册功能的实现: 1、前端: 1、表单数据的校验:(js) 2、使用ajax完成表单提交 3、注册成功跳转页面 2、web: 1、获取表单数据、封装数据 2、调…

【Java8】线程问题排查分析

文章目录 thread dump简介JDK 工具jstackjattachjvisualvm Java程序CPU消耗较高,怎么快速看出是那个线程导致的呢?我们可以使用命令 jstack/jattach来快速定位问题 thread dump简介 thread dump 是 Java 进程的所有线程状态的快照。每个线程的状态都通过…

练[MRCTF2020]套娃

[MRCTF2020]套娃 文章目录 [MRCTF2020]套娃掌握知识解题思路代码分析1代码分析2 关键paylaod 掌握知识 ​ 参数的_符号的替换,正则和强等于联合绕过,jsfuck编码,bp请求方式的转变,本地ip的请求头,代码审计&#xff0c…

操作系统的五种IO模型

高级IO 阻塞IO 在内核将数据准备好之前,系统调用会一直等待,所有的套接字默认都是阻塞方式。 非阻塞IO 如果内核还未将数据准备好,系统调用仍然会直接返回,并且返回EWOULDBLOCK错误码。 非阻塞IO往往需要程序员循环的方式反复尝试…

TCP四次挥手

四次挥手发生在断开连接的时候,在程序中当调用了close()会使用TCP协议进行四次挥手。 客户端和服务器端都可以主动发起断开连接,谁先调用close()谁就是发起。 因为在TCP连接的时候,采用三次握手建立的的连接是双向的,在断开的时候…

电脑被删除的文件怎么恢复?2023年数据恢复方法分享

大多数人在使用电脑时都可能会遇到误删文件的情况。一不小心,重要的文件或数据就消失了,情急之下,大多会感到慌乱和无助。但其实,文件误删除并非不可挽回的灾难。本文将为大家介绍几种有效的文件恢复方法,以帮助大家在…

【力扣】42. 接雨水

这道题我卡了差不多1个小时,不是不会做,是不知道怎么能用栈来实现,后面看了一个博主的视频,豁然开朗,我主要的纠结点在于当指针指到7的时候,我计算出4到7的水块是2,但实际上是0,因为…

SpringBoot 可以同时处理多少请求

目录 一、前言 二、相关配置 1、配置信息 2、配置说明 3、案例说明 三、代码验证 1、测试代码 2、测试步骤 四、总结 一、前言 首先,在Spring Boot应用中,我们可以使用 Tomcat、Jetty、Undertow 等嵌入式 Web 服务器作为应用程序的运行容器。这…

Vue中如何进行拖拽与排序功能实现

在Vue中实现拖拽与排序功能 在Web应用程序中,实现拖拽和排序功能是非常常见的需求,特别是在管理界面、任务列表和图形用户界面等方面。Vue.js作为一个流行的JavaScript框架,提供了许多工具和库来简化拖拽和排序功能的实现。本文将介绍如何使…

抖捧自动直播市场火热,实体行业如何实现高效开播?

在AI数字人热度之后,最近抖捧场景自动直播开始火遍全网,因为操作简单成本极低,只需要一部手机放在店里,就可以高效开播,深受广大实体行业老板的认可,那么抖捧实景自动直播的方式,具体是怎么实现…

pytest测试框架

pytest是python的第三方单元测试框架,比自带unittest更简洁和高效,支持非常丰富的插件,同时兼容 unittest 框架。 pytest框架的安装:pip install pytest pytest框架优点: 1、简单灵活,容易上手&#xff…

P1014 [NOIP1999 普及组] Cantor 表

#include <bits/stdc.h> using namespace std; int main() {int n,k1;cin>>n;while (n>k) {nn-k;k;}if(k%20) cout<<n<<"/"<<(k1-n);else cout<<k1-n<<"/"<<n;return 0; }

IDEA添加Vue文件模板

代码模板&#xff1a; <!-- *${COMPONENT_NAME} *author niemengshi *date ${DATE} ${TIME} --> <template> #[[$END$]]# </template> <script> export default { name: "${COMPONENT_NAME}", props: { }, components: {}, mounted: {}, d…

数据压缩与管理:掌握Linux VDO和LVM的力量

1.逻辑卷(LVM&#xff0c;Logical Volume Management) 动态的为服务器磁盘添加空间&#xff0c;而不会影响原磁盘的数据&#xff0c;也不需要对原始磁盘重新分区。 1.1 LVM介绍 以下是LVM的示意图&#xff1a; 我们拿到一块硬盘后首先对齐进行划分分区&#xff0c;也就得到…

CocosCreator3.8研究笔记(二十三)CocosCreator 动画系统-动画编辑器相关功能面板说明

国庆假期&#xff0c;闲着没事&#xff0c;在家研究技术~ 上一篇&#xff0c;我们介绍了动画剪辑、动画组件以及基本的使用流程&#xff0c;感兴趣的朋友可以前往阅读&#xff1a; CocosCreator 动画系统-动画剪辑和动画组件介绍。 今天&#xff0c;主要介绍动画编辑器相关功能…

FastThreadLocal 快在哪里 ?

FastThreadLocal 快在哪里 &#xff1f; 引言FastThreadLocalset如何获取当前线程私有的InternalThreadLocalMap &#xff1f;如何知道当前线程使用到了哪些FastThreadLocal实例 ? get垃圾回收 小结 引言 FastThreadLocal 是 Netty 中造的一个轮子&#xff0c;那么为什么放着…