SQL【2】稍稍进阶

目录

首先,怎么安装,环境怎么调。

alter——改变(此段Al)

创建于删除数据库、表格

上一节进阶

 预设值default​编辑

关于插入顺序

有条件的删除DELETE FROM 表 WHERE 条件

多种语句组合查看

查看+排序​编辑

LIMIT 2只取前2名

where major in(期望列表) 

 关掉安全更新

 


首先,怎么安装,环境怎么调。

一个简陋的8.4.0from

安装server 以及 workbench

MySQL :: Download MySQL Community Server (Archived Versions)

alter——改变(此段Al)

在MySQL中,ALTER关键字用于修改现有数据库对象的结构,如表(TABLE)、视图(VIEW)等。通过ALTER关键字,您可以添加、删除或修改表字段,改变字段的属性,以及执行其他与表结构相关的操作。
以下是ALTER关键字的一些常见用法:
1. **添加新字段**:
```sql
ALTER TABLE table_name ADD new_column datatype;
```
2. **删除字段**:
```sql
ALTER TABLE table_name DROP COLUMN column_name;
```
3. **修改字段类型或属性**:
```sql
ALTER TABLE table_name MODIFY COLUMN column_name new_datatype;
```

```sql
ALTER TABLE table_name CHANGE COLUMN old_column new_column new_datatype;
```
4. **重命名字段**:
```sql
ALTER TABLE table_name RENAME COLUMN old_column TO new_column;
```
5. **更改表的名称**:
```sql
ALTER TABLE old_table_name RENAME TO new_table_name;
```
6. **添加索引**:
```sql
ALTER TABLE table_name ADD INDEX index_name (column_name);
```
7. **添加主键约束**:
```sql
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
```
8. **添加外键约束**:
```sql
ALTER TABLE table_name ADD FOREIGN KEY (column_name) REFERENCES other_table(other_column);
```
9. **添加唯一性约束**:
```sql
ALTER TABLE table_name ADD UNIQUE (column_name);
```
10. **添加默认值**:
```sql
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_value;
```
11. **删除默认值**:
```sql
ALTER TABLE table_name ALTER COLUMN column_name DROP DEFAULT;
```
12. **修改存储引擎**:
```sql
ALTER TABLE table_name ENGINE = engine_name;
```
13. **修改字符集**:
```sql
ALTER TABLE table_name CHARACTER SET charset_name;
```
14. **修改排序规则**:
```sql
ALTER TABLE table_name COLLATE collate_name;
```
15. **添加分区**:
```sql
ALTER TABLE table_name ADD PARTITION ...;
```
16. **移除分区**:
```sql
ALTER TABLE table_name REMOVE PARTITIONING;
```
17. **优化表**:
```sql
ALTER TABLE table_name OPTIMIZE PARTITION partition_name;
```
18. **分析表**:
```sql
ALTER TABLE table_name ANALYZE PARTITION partition_name;
```
19. **检查表**:
```sql
ALTER TABLE table_name CHECK PARTITION partition_name;
```
在使用ALTER关键字时,请注意以下几点:
- 执行ALTER TABLE操作可能会锁定表,导致其他会话无法访问该表,直到操作完成。
- 对于大型表,某些类型的ALTER TABLE操作可能需要较长时间,因此最好在维护窗口期间执行这些操作。
- 在生产环境中执行ALTER TABLE之前,应在测试环境中充分测试以确保操作的稳定性和性能影响。
- 如果要保留原始数据,请在执行任何破坏性的ALTER TABLE操作之前备份您的表和数据。
总之,ALTER关键字是MySQL中管理和维护数据库结构的强大工具之一,但应谨慎使用,特别是在生产环境中。
 

创建于删除数据库、表格

#create database `sql_t`;#创建数据库
show databases;#看看已有的database们
use `sql_t`;#你要用哪个数据库
create table `tb1_t`(
`student_id` INT PRIMARY KEY,#作为住建
`name` VARCHAR(20),#字符串,长度最大20
`major` VARCHAR(20)#字符串,长度最大20
);
DESCRIBE `tb1_t`;#看看表格
ALTER TABLE `tb1_t` ADD gpa decimal (3,2);#增加属性(列:alter table 表 add 列名 属性(详细三位数,其中小数点后占两位);
alter TABLE `TB1_T` DROP column gpa;#删除属性: alter table 表 drop column 列名;
DROP TABLE `tb1_t`;#删除表格

上一节进阶

 预设值default

插入时,没写major,但又缺省值。

有人说,直接update不加where ,就直接更新,但我好像是安全更新模式?

14:27:31    update `TB1_T`  SET `GPA`=4    Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.  To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.    0.000 sec
 这个错误信息表明,您正在尝试更新一个表(`TB1_T`)中的记录,但没有提供WHERE子句来指定要更新哪些特定的行。在MySQL的“安全更新模式”下,这是不允许的,因为这可能会导致意外更新表中的所有行,这可能是非常危险的操作。
错误信息中的关键部分是:
- **Error Code: 1175**: 表示您在没有使用关键字段的情况下尝试更新表。
- **You are using safe update mode**: 表示MySQL客户端正在安全更新模式下运行。
- **and you tried to update a table without a WHERE that uses a KEY column**: 表示更新操作没有包含WHERE子句,或者WHERE子句没有使用关键字段(通常是主键或索引)。
为了解决这个问题,您有以下几个选择:
1. **添加WHERE子句**:在您的UPDATE语句中添加一个WHERE子句,以指定要更新的特定行。例如:
   ```sql
   UPDATE `TB1_T` SET `GPA`=4 WHERE `student_id`=1; -- 假设`student_id`是表中的一个关键字段
   ```
2. **关闭安全更新模式**:如果您确实需要更新表中的所有行,并且知道这样做的后果,您可以关闭安全更新模式。这通常在MySQL客户端的偏好设置中进行,具体步骤如下:
   - 打开MySQL客户端的偏好设置(Preferences)。
   - 导航到SQL编辑器(SQL Editor)部分。
   - 取消选中“安全更新”(Safe Updates)选项。
   - 重新连接到数据库。
请注意,关闭安全更新模式时要非常小心,因为不正确的UPDATE语句可能会更改或删除大量数据。
以下是添加了WHERE子句的示例UPDATE语句:
```sql
UPDATE `TB1_T` SET `GPA`=4 WHERE `student_id` = 123; -- 用实际的条件替换`student_id` = 123
```
请确保在执行更新操作时,您确切知道自己在做什么,并且已经备份了重要数据。

这多出的一行不是行

关于插入顺序

是默认按照主键排的,我随便插的

有条件的删除DELETE FROM 表 WHERE 条件

多种语句组合查看

查看+排序

降序 

LIMIT 2只取前2名

这里是先排序,再取前两名

SB的SQL,不能先按照A排序取前n行,在按b∪排序吗!

在SQL查询中,LIMIT子句必须放在ORDER BY子句之后。这是因为LIMIT是用来限制查询结果的行数,而ORDER BY是用来指定结果集的排序顺序。如果LIMIT放在ORDER BY之前,SQL解释器将无法知道如何对结果进行排序,因为排序是在限制行数之前发生的。 

where major in(期望列表) 

错误信息指出您的SQL语句存在语法错误。在SQL中,WHERE子句必须放在ORDER BY子句之前。您当前的查询中WHERE子句放在了ORDER BY子句之后,这是不正确的。 以下是修正后的SQL语句:

行吧,where-》order by-》limit,顺序不能颠倒 

 关掉安全更新

set sql_safe_updates =0;#关掉安全更新

这样这句话可以执行,本来报错呢 

删除整个表格drop table 表

创玩表格想删怎么办,delete是删除表内东西,想删除整个表,用drop table表名

外键 foreign key(列名)reference 表(列) on delete cascade 

注意括号不能少

#create database `sql_t`;#创建数据库
set sql_safe_updates =0;#关掉安全更新
show databases;#看看已有的database们
use `sql_t`;#你要用哪个数据库
create table `tb1_t`(
`student_id` INT PRIMARY KEY,#作为住建
`name` VARCHAR(20),#字符串,长度最大20
`major` VARCHAR(20)DEFAULT'MATH'#预设值为math
);
ALTER TABLE `tb1_t` ADD gpa decimal (3,2);#增加属性(列:alter table 表 add 列名 属性(详细三位数,其中小数点后占两位);
alter TABLE `TB1_T` DROP column gpa;#删除属性: alter table 表 drop column 列名;INSERT INTO 	`TB1_T`(GPA,STUDENT_ID) VALUES (1.2,11); 
INSERT INTO 		`TB1_T` VALUES(9,'RKW','BASKETBALL',5);
INSERT INTO 		`TB1_T` VALUES(17,'SD','BASKETBALL',4.99);
INSERT INTO 		`TB1_T` VALUES(7,'SENDO','BASKETBALL',4.98);
INSERT INTO 		`TB1_T` VALUES(27,'conan','fooTBALL',5.98);
DELETE FROM `TB1_T` WHERE STUDENT_ID=17;
DESCRIBE `tb1_t`;#看看表格的各类属性
update 	`tb1_t` 
set 	`name`='heye'
where `name`=null;
select * from 	`tb1_t`;
select * from 	`tb1_t` where major in ('football','basketball')ORDER BY MAJOR aSC,GPA DESC  	;#看看表格的值
update `TB1_T` 
SET `GPA`=4  WHERE STUDENT_ID<>1
;
DROP TABLE `tb1_t`;#删除表格

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

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

相关文章

大模型入门 ch01:大模型概述

本文是github上的大模型教程LLMs-from-scratch的学习笔记&#xff0c;教程地址&#xff1a;教程链接 STAGE 1&#xff1a; BUILDING 1. 数据准备与采样 LLM的预测过程&#xff0c;是一个不断预测下一个词&#xff08;准确的说是token&#xff09;的过程&#xff0c;每次根据输…

计算机网络(八股文)

这里写目录标题 计算机网络一、网络分层模型1. TCP/IP四层架构和OSI七层架构⭐️⭐️⭐️⭐️⭐️2. 为什么网络要分层&#xff1f;⭐️⭐️⭐️3. 各层都有那些协议&#xff1f;⭐️⭐️⭐️⭐️ 二、HTTP【重要】1. http状态码&#xff1f;⭐️⭐️⭐️2. 从输入URL到页面展示…

佰朔资本:两步走!“科创板八条”后首单,亮点多多!

“科创板八条”后首单并购重组 普源精电创立于1998年&#xff0c;是国产电子测量仪器领军企业&#xff0c;公司拥有数字示波器、射频类仪器、波形发生器、电源及电子负载、万用表及数据收集五大产品族、八大产品线&#xff0c;并供应芯片级、模块级和系统级多层次处理方案&…

Carla自动驾驶仿真十:Carlaviz三维可视化平台搭建

文章目录 前言一、环境准备1、docker安装2、websocket-client安装3、carlaviz代码下载 二、carlaviz使用1、打开carla客户端2、输入启动命令3、进入carlaviz4、修改manual_control.py脚本5、运行manual_control.py脚本6、运行carlaviz官方脚本&#xff08;推荐&#xff09; 前言…

Oracle授权如何购买?多少钱?如何计算?

前言 作为DBA时常也会遇到一些商务的问题&#xff0c;比如购买Oracle 的授权&#xff0c;比如老板问用oracle有没有法律风险&#xff0c;这个组件是否收费&#xff1f;如何计算授权数&#xff1f;等等&#xff0c;本文根据博主的经验和一些Oracle公开的资料&#xff0c;来做一个…

戴尔科技领涨市场,AI服务器需求成关键驱动力

戴尔科技强劲上涨&#xff0c;AI服务器需求激增 戴尔科技公司日内股价飙升4.2%&#xff0c;达到115.42美元&#xff0c;接近一个月高点。这一强劲表现主要得益于该公司上调了年度盈利预期&#xff0c;原因是对Nvidia驱动的人工智能优化服务器的需求显著增加。戴尔将2025财年的年…

智能的JavaScript开发工具WebStorm v2024.2全新发布

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具&#xff0c;被广大中国JS开发者誉为"Web前端开发神器""强大的HTML5编辑器""智能的JavaSscript IDE"等。与IntelliJ IDEA同源&#xff0c;继承了IntelliJ IDEA强大的JS部分的功能。 立即获…

mate-indicators占用内存过高导致熔断

目录&#xff1a; 1、问题现象2、解决方法 1、问题现象 mate-indicators占用内存达30.9%&#xff08;内存溢出&#xff09;导致内存不足服务熔断。 2、解决方法 发现mate-indicators进程占用内存资源达到节点总内存40%&#xff0c;导致服务出现内存熔断 临时解决 systemct…

React 实现PDF预览(数据源使用文件流而不是url)

一 前提 应公司要求&#xff0c;需要进行上传文件&#xff08;pdf&#xff09;的预览功能&#xff0c;网上大部分都是使用url作为预览数据源&#xff0c;但是现在后端那边只返回了pdf文件流&#xff0c;所以本文主要是用文件流来预览pdf。 二 首先需要获取pdf文件流&#xff…

OpenCV绘图函数(15)图像上绘制矩形函数 rectangle()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 绘制一个简单的、粗的或填充的直立矩形。 这个函数 cv::rectangle 绘制一个矩形轮廓或一个填充的矩形&#xff0c;其两个相对的顶点分别是 pt1 和…

【STM32+HAL库】---- 按键中断控制LED

硬件开发板&#xff1a;STM32G0B1RET6 软件平台&#xff1a;cubemaxkeilVScode1 新建cubemax工程 1.1 配置系统时钟树 1.2 配置相关GPIO引脚 ①LED由PC13引脚控制 选择PA5引脚&#xff0c;GPIO_Output模式 GPIO模式配置&#xff1a; ②按键开关由PC13引脚控制 选择PC13引…

arcgisjs4.0 内网部署字体不显示问题处理

问题背景问题定位解决方案 问题背景 内网环境&#xff0c;通过压缩包的hash值验证了包是一摸一样的&#xff0c;ningx也读到了index.html&#xff0c;但是网格的字提显示出不来&#xff0c;并且地图上的注记文字均不显示 本地环境地图情况&#xff1a; 内网环境地图情况&…

Pepper佩盼尔wordpress模板

Pepper佩盼尔WordPress模板是一款专为追求简洁、现代和专业外观的网站设计者和开发者打造的高品质主题。它以简站为主题&#xff0c;强调“让建网站更简单”的理念&#xff0c;旨在为用户提供一个易于使用、功能丰富的平台来构建他们的在线业务或个人网站。 模板特点包括&…

AT+MQTT指令连接华为云实现数据上传

1 准备工作 硬件设备模块&#xff1a;ESP-01-S 固件烧录工具&#xff1a;ESP8266下载器 串口调试工具&#xff1a;VOFA参考文章&#xff1a;stm32AT指令ESP8266接入华为云物联网平台并完成属性上报与下发的命令处理 2 固件更新 2.1 为什么要重新安装固件 由于ESP-01-S模块出…

模拟算法专题——算法介绍算法讲解力扣实战应用

目录 1、模拟算法介绍 2、算法应用【leetcode】 2.1 替换所有的问号 2.1.1 算法思想 2.1.2 算法代码 2.2 提莫攻击 2.2.1 算法思想 2.2.2 算法代码 2.3 Z字形变换 2.3.1 算法思想 2.3.2 算法代码 2.4 外观数列 2.4.1 算法思想 2.4.2 算法代码 2.5 数青蛙 2.5.1 算…

计算机毕业设计选题推荐-博客平台-博客系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

【NLP自然语言处理】文本处理的基本方法

目录 &#x1f354;什么是分词 &#x1f354;中文分词工具jieba 2.1 jieba的基本特点 2.2 jieba的功能 2.3 jieba的安装及使用 &#x1f354;什么是命名实体识别 &#x1f354;什么是词性标注 &#x1f354;小结 学习目标 &#x1f340; 了解什么是分词, 词性标注, 命名…

解锁高效项目管理:精选软件项目管理工具与技术实战

在当今快节奏的商业环境中&#xff0c;项目管理不仅是确保任务按时完成的手段&#xff0c;更是企业战略规划与执行的核心。面对日益复杂的项目需求和不断变化的市场环境&#xff0c;传统的手工管理方式已难以满足高效协同的要求。此时&#xff0c;项目管理软件作为数字化时代的…

10款主流图纸加密软件大盘点|2024企业常用图纸加密软件分享(赶快码住!)

某天早上&#xff0c;小李&#xff0c;作为一家大型制造企业的设计工程师&#xff0c;正准备提交他耗时数月设计的一份机密产品图纸。就在点击发送的那一刻&#xff0c;突然发现网络异常。他的心猛地一沉&#xff0c;联想到前段时间公司内部的泄密事件&#xff0c;他不由得心跳…

yolov8目标检测pyside6可视化图形界面+检测源码ui文件——用于计数统计

项目结构 YOLOv8模型加载&#xff1a;加载预训练的YOLOv8模型。PySide6 GUI&#xff1a;设计图形用户界面&#xff0c;用于显示检测结果和控制选项。摄像头/视频输入&#xff1a;从摄像头或视频文件读取图像帧。目标检测&#xff1a;使用YOLOv8模型对输入图像进行实时目标检测…