【MySQL】列属性

文章目录

  • CHAR和VARCHAR
  • 插入单行 INSERT INTO
  • 插入多行
  • 插入分层行 LAST_INSERT_IN()
  • 创建表复制 CREAT TABLE AS
  • 更新单行 UPDATE...SET
  • 更新多行
  • 在UPDATES中使用子查询【需着重复习】
  • 删除行 DELETE
  • 恢复数据库到原始状态

CHAR和VARCHAR

  1. CHAR(50):存储文本占5个字符,MySQL会再插入45个空格符填满此列。因此一般最好用VARCHAR来存储字符串或文本值。
  2. VARCHAR(50):文本占5个字符,就只存储这5个字符,不会浪费空间。

插入单行 INSERT INTO

  • INSERT INTO 表明(列名) VALUE(每列的值)
  • DEFAULT:写入默认值
-- 按照customers里的列,输入所需要的内容。
INSERT INTO customers
VALUES (DEFAULT,'John','Smith','1990-01-01',NULL,'address','city','CA',DEFAULT)-- 指定插入customers中的哪些列,插入默认值的和NULL的可以不写在这里面。
INSERT INTO customers(first_name,last_name,birth_date,address,city,state)		
VALUES ('John','Smith','1990-01-01','address','city','CA')

插入多行

  • VALUES后接几个括号就是插入几行
INSERT INTO shippers(name)
VALUES ('Shipper1'),('wuxu'),('songtuo')
-- 小小练习
INSERT INTO products
-- DEFAULT是默认列id,也可以不写
VALUES (DEFAULT, 'laote', 89, 1.34),(DEFAULT, 'laoda', 82, 1.33),(DEFAULT, 'laoer', 75, 1.32)-- 另一种写法,插入行信息中不写DEFAULT
INSERT INTO products(name, quantity_in_stock,unit_price)
VALUES ('laote', 89, 1.34),( 'laoda', 82, 1.33),( 'laoer', 75, 1.32)

插入分层行 LAST_INSERT_IN()

  • 获取新加记录的id:LAST_INSERT_IN()
-- 在orders里增加一条新记录,新的order_id是默认增加的,对应后面的LAST_INSERT_ID()
INSERT INTO orders(customer_id,order_date,status)
VALUES (1, '2019-01-02', 1);-- 在order_items里对应刚添加的order_id添加新的订单货物信息,调用LAST_INSERT_ID获取新加的记录的id
INSERT INTO order_items
VALUES (LAST_INSERT_ID(), 1, 1, 2.95),(LAST_INSERT_ID(), 2, 1, 5.63);

创建表复制 CREAT TABLE AS

  • 用CREAT TABLE AS 创建的表复制,复制的表中没有主键,也没有被标记为自动递增的列
  • Truncate:右键表,使用这个工具可以清除表中所有的数据,使表变成空表
  • 向表中插入数据时,可以使用选择语句(SELECT FROM WHERE)作为插入语句(INSERT INTO)的子查询进行数据的插入
-- 新增的表没有主键,也没被标记为自动递增列
CREATE TABLE orders_archived_wuxu AS
SELECT * FROM orders-- 可以使用Truncate工具删除表中的所有数据
-- 在复制的已经被删除了所有数据的新表中,想插入2019-01-01之前的数据,可以‘使用选择语句做作为插入语句中的子查询’
INSERT INTO orders_archived_wuxu
SELECT *
FROM orders
WHERE order_date < '2019-01-01'
-- 小小练习
CREATE TABLE invoices_archived_wuxu AS
SELECT invoice_id,number,c.name,invoice_total,payment_total,invoice_date,due_date,payment_date
FROM invoices
JOIN clients c USING (client_id)
WHERE payment_date IS NOT NULL;

更新单行 UPDATE…SET

  • UPDATE 表名 SET 每列信息
-- 更新id为1的这列
UPDATE  invoices
SET payment_total = 10, payment_date = '2019-03-01'
WHERE invoice_id = 1;-- 把id为1的这列恢复成更新之前的
UPDATE  invoices
SET payment_total = DEFAULT, payment_date = NULL
WHERE invoice_id = 1;-- 更新id为3的这列
UPDATE  invoices
SET payment_total = invoice_total * 0.5,payment_date = due_date
WHERE invoice_id = 3;

更新多行

  • 在WHERE子句中选择多行更新即可
UPDATE invoices
SET payment_total = invoice_total * 0.5,payment_date = due_date
-- WHERE子句中选择多行更新即可
WHERE client_id IN (3,4);
-- 小小练习,给在1990-01-01之前的顾客加50分
USE sql_store;
UPDATE customers
SET points = points + 50
WHERE birth_date < '1990-01-01';

在UPDATES中使用子查询【需着重复习】

-- 不采用硬编码指定值
USE sql_invoicing;
UPDATE invoices
SET payment_total = invoice_total * 0.5,payment_date = due_date
-- client_id不直接指定为几,不采用硬编码
-- 而是通过子查询来指定client_id的值
WHERE client_id =(SELECT client_idFROM clientsWHERE name = 'Myworks')UPDATE invoices
SET payment_total = invoice_total * 0.5,payment_date = due_date
-- 多个查询条件是要换成IN
WHERE client_id IN(SELECT client_idFROM clientsWHERE state IN ('CA', 'NY'))
-- 练习
-- 我的写法,先把orders和customers表通过id匹配
UPDATE orders
JOIN customers USING (customer_id)
SET comments = 'GoldenClient'
WHERE shipped_date IS NOT NULL AND points > 3000-- 筛选条件中直接写子查询,这样更清楚,思路更易懂。需要学习、习惯这种写法
UPDATE orders
SET comments = 'GoldenClient'
WHERE shipped_date IS NOT NULL ANDcustomer_id IN (SELECT customer_idFROM customersWHERE points > 3000)

删除行 DELETE

  • DELETE FROM
DELETE FROM invoices
WHERE client_id = (SELECT client_idFROM clientsWHERE name = 'Myworks')

恢复数据库到原始状态

  • 在IDEA中找到Project,选择对应的sql文件,双击后,CtrlA全选后执行,即可恢复数据库到原始状态。
    在这里插入图片描述

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

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

相关文章

计算机网络基础知识-网络协议

一:计算机网络层次划分 1. 网络层次划分 2. OSI七层网络模型 1)物理层(Physical Layer):及硬件设备,物理层确保原始的数据可在各种物理媒体上传输,常见的设备名称如中继器(Repeater,也叫放大器)和集线器; 2)数据链路层(Data Link Layer):数据链路层在物理层提…

【入门Flink】- 09Flink水位线Watermark

在窗口的处理过程中&#xff0c;基于数据的时间戳&#xff0c;自定义一个“逻辑时钟”。这个时钟的时间不会自动流逝&#xff1b;它的时间进展&#xff0c;就是靠着新到数据的时间戳来推动的。 什么是水位线 用来衡量事件时间进展的标记&#xff0c;就被称作“水位线”&#x…

css:两个行内块元素和图片垂直居中对齐

目录 两个行内块元素垂直居中对齐图片垂直居中问题图片和文字垂直居中对齐参考文章 两个行内块元素垂直居中对齐 先看一段代码&#xff1a; <style> .box {width: 200px;height: 200px;line-height: 200px;font-size: 20px;text-align: center;display: inline-block;b…

Xilinx FPGA平台DDR3设计详解(一):DDR SDRAM系统框架

DDR SDRAM&#xff08;双倍速率同步动态随机存储器&#xff09;是一种内存技术&#xff0c;它可以在时钟信号的上升沿和下降沿都传输数据&#xff0c;从而提高数据传输的速率。DDR SDRAM已经发展了多代&#xff0c;包括DDR、DDR2、DDR3、DDR4和DDR5&#xff0c;每一代都有不同的…

搭建Docker

一、概念 云服务器大家肯定不陌生了&#xff0c;相比较传统物理服务器来说他的价格&#xff0c;个性化的配置服务&#xff0c;节省了很多的运维成本&#xff0c;越来越多的企业以及个人开发者更加的青睐于云服务器。有了属于自己的服务器就可以部署搭建自己个人网站了&#xf…

Python实战 | 使用 Python 和 TensorFlow 构建卷积神经网络(CNN)进行人脸识别

专栏集锦&#xff0c;大佬们可以收藏以备不时之需 Spring Cloud实战专栏&#xff1a;https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏&#xff1a;https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏&#xff1a;https:/…

openEuler编译安装nmon性能监控工具及可视化分析工具

ln 介绍 nmon&#xff08;short for Nigel’s Monitor&#xff09;是一个性能分析工具&#xff0c;由蓝色巨人IBM开发&#xff0c;最早用于自家操作系统UNIX&#xff0c;AIX &#xff08;Advanced Interactive eXecutive&#xff09;。现在也能用在Linux上。它可以显示系统的…

STM32--时钟树

一、什么是时钟&#xff1f; 时钟是单片机的脉搏&#xff0c;是系统工作的同步节拍。单片机上至CPU&#xff0c;下至总线外设&#xff0c;它们工作时序的配合&#xff0c;都需要一个同步的时钟信号来统一指挥。时钟信号是周期性的脉冲信号。 二、什么是时钟树&#xff1f; S…

51单片机PCF8591数字电压表数码管显示设计( proteus仿真+程序+设计报告+讲解视频)

PCF8591数字电压表数码管显示 1.主要功能&#xff1a;讲解视频&#xff1a;2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单&&下载链接资料下载链接&#xff08;可点击&#xff09;&#xff1a; 51单片机PCF8591数字电压表数码管设计( proteus仿真程序设计报告讲解视…

设计模式之--原型模式(深浅拷贝)

原型模式 缘起 某天&#xff0c;小明的Leader找到小明:“小明啊&#xff0c;如果有个发简历的需求&#xff0c;就是有个简历的模板&#xff0c;然后打印很多份&#xff0c;要去一份一份展示出来&#xff0c;用编程怎么实现呢&#xff1f;” 小明一听&#xff0c;脑袋里就有了…

【云备份|| 日志 day6】文件业务处理模块

云备份day6 业务处理 业务处理 云备份项目中 &#xff0c;业务处理模块是针对客户端的业务请求进行处理&#xff0c;并最终给与响应。而整个过程中包含以下要实现的功能&#xff1a; 借助网络通信模块httplib库搭建http服务器与客户端进行网络通信针对收到的请求进行对应的业…

IDEA重新choose source

大概现状是这样&#xff1a;之前有个工程&#xff0c;依赖了别的模块基础包&#xff0c;但当时并没有依赖包的源码工程&#xff0c;因此&#xff0c;通过鼠标左键点进去&#xff0c;看到的是jar包里的class文件&#xff0c;注释什么的都去掉了的&#xff0c;不好看。后面有这个…

采用示波器显示扭矩传感器模拟信号

扭矩传感器输出的信号波形通常是模拟电压信号&#xff0c;可以通过示波器等仪器进行分析。扭矩传感器的输出信号波形通常有两种类型&#xff1a;正弦波和方波。 应变片传感器扭矩测量采用应变电测技术。在弹性轴上粘贴应变计组成测量电桥&#xff0c;当弹性轴受扭矩产生微小变…

Oracle(16)Managing Privileges

目录 一、基础知识 1、Managing Privileges管理权限 2、System Privileges 系统特权 3、System Privileges : Example系统权限&#xff1a;示例 4、Who Can Grant or Revoke? 谁可以授予或撤销权限&#xff1f; 5、The PUBLIC 6、SYSDBA and SYSOPER 7、Revoke with A…

分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测

分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测 目录 分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现PSO-LSTM粒子群算法优化长短…

Llama2通过llama.cpp模型量化 WindowsLinux本地部署

Llama2通过llama.cpp模型量化 Windows&Linux本地部署 什么是LLaMA 1 and 2 LLaMA&#xff0c;它是一组基础语言模型&#xff0c;参数范围从7B到65B。在数万亿的tokens上训练的模型&#xff0c;并表明可以专门使用公开可用的数据集来训练最先进的模型&#xff0c;而无需求…

KCC@广州与 TiDB 社区联手—广州开源盛宴

10月21日&#xff0c;KCC广州与 TiDB 社区联手&#xff0c;在海珠区保利中悦广场 29 楼召开了一次难忘的开源盛宴。这不仅仅是 KCC广州的又一次线下见面&#xff0c;更代表着与 TiDB 社区及广州技术社区的首次深度合作。 活动的策划与组织由 KCC广州负责人 - 惠世冀、PingCAP 的…

Ocelot:.NET开源API网关提供路由管理、服务发现、鉴权限流等功能

随着微服务的兴起&#xff0c;API网关越来越常见。API网关是连接应用程序和用户之间的桥梁&#xff0c;就像一个交通指挥员&#xff0c;负责处理所有进出应用的数据和请求&#xff0c;确保安全、高效、有序地流通。 今天给大家推荐一个.NET开源API网关。 01 项目简介 Ocelot…

用Powershell实现:删除所有不是与.json文件重名的.jpg文件

# 指定要搜索的目录路径 $directoryPath "C:\path\to\your\directory"# 获取该目录下的所有.jpg和.json文件 $jpgFiles Get-ChildItem -Path $directoryPath -Filter *.jpg $jsonFiles Get-ChildItem -Path $directoryPath -Filter *.json | Select-Object -Expan…

海外媒体发稿:彭博社发稿宣传中,5种精准营销方式

在如今的信息发生爆炸时期&#xff0c;营销方式多种多样&#xff0c;但是充分体现精准营销并针对不同用户群体的需求并非易事。下面我们就根据彭博社发稿营销推广为例子&#xff0c;给大家介绍怎样根据不同用户人群方案策划5种精准营销方式。 1.界定总体目标用户人群在制订精准…