SQL【2】稍稍进阶

news2024/9/21 19:05:41

目录

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

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.coloradmin.cn/o/2100515.html

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

相关文章

输煤皮带智能巡检机器人技术方案及应用分析

输煤皮带是电厂和工业企业物料输送系统的重要组成部分。由于皮带系统通常覆盖面积大、环境复杂&#xff0c;传统的人工巡检方式存在效率低、危险性高等问题。为此&#xff0c;智能巡检机器人被引入输煤皮带系统&#xff0c;旨在实现无人化、智能化的巡检作业&#xff0c;提升系…

如何禁用USB存储设备|禁用USB储存和连接手机的方法有哪些?深度解析,四招搞定!

在企业网络安全管理中&#xff0c;禁用USB存储设备和限制手机连接至关重要。这不仅可以防止数据泄露&#xff0c;还能阻止恶意软件通过外部设备入侵。 本文将为你推荐四种行之有效的方法&#xff0c;帮助你全面禁用USB存储设备和连接手机的功能&#xff0c;让企业数据安全更有…

google浏览器禁止http自动转https

在Chrome的地址栏中输入 chrome://flags&#xff0c;搜索“HTTPS Upgrades”并将其设置为“Disabled”。这将禁用Chrome自动将HTTP升级到HTTPS的功能。

分享5款在不同场景提供支持的软件

​ 本文将介绍几款实用的软件工具&#xff0c;涵盖了从文件管理到系统优化&#xff0c;以及跨平台操作等多个领域。 1. 静态分析工具——Cerbero Suite Advanced ​ Cerbero Suite Advanced是一款功能强大的静态分析工具&#xff0c;专为逆向工程和数字取证设计。它支持多种文…

迪杰斯特拉算法——求最短路径

朴素版本&#xff08;时间复杂度O&#xff08;n^2&#xff09;&#xff09;&#xff1a; 迪杰斯特拉算法采用的是一种贪心的策略。 用一个 dist 数组保存源点到其余各个节点的距离&#xff0c;dist[i] 表示源点到节点 i 的距离。初始时&#xff0c;dist 数组的各个元素为无…

Nginx 部署前端 Vue 项目实战指南

一、环境准备 1. 安装 Nginx 首先&#xff0c;需要在服务器上安装 Nginx。Nginx 是一款轻量级、高性能的 HTTP 和反向代理服务器。安装方式因操作系统而异。 Linux 系统&#xff08;以 Ubuntu 为例&#xff09;&#xff1a; sudo apt-get update sudo apt-get install nginxWi…

MacOS下WKWebView设置背景透明问题

业务场景需要设置WKWebView的背景内容透明&#xff0c;查询到一般有两种方法&#xff1a; [self.webView setValue: NO forKey: "drawsBackground"]; [self.webView setValue:[NSNumber numberWithBool: YES] forKey:"drawsTransparentBackground"]; 这…

ZBrush入门使用介绍——13、Dynamesh

大家好&#xff0c;我是阿赵。   继续介绍ZBrush的用法。这次介绍一个可以给模型重新布线和生成形状的工具&#xff0c;叫做Dynamesh。 1、 重新布线 在使用Move笔刷的时候&#xff0c;经常会遇到一个问题 当用Move笔刷把模型拖拽出一个形状的时候&#xff0c;被拖出来的部…

ElasticSearch-倒排索引 文档映射

倒排索引文档映射 已有字段的Mapping修改常用Mapping参数配置Index TemplateDynamic Template 倒排索引 当数据写入 ES 时&#xff0c;数据将会通过 分词 被切分为不同的 term&#xff0c;ES 将 term 与其对应的文档列表建立一种映射关系&#xff0c;这种结构就是 倒排索引 为…

火车票、高铁票如何开具电子发票?12306怎么查询报销凭证是否领取?

火车票、高铁票如何开具电子发票&#xff1f; 众所周知&#xff0c;目前很多消费&#xff08;衣食住行&#xff09;报销都是可以开具电子发票的&#xff0c;但火车票目前无法开具电子发票。 火车票目前只有纸质报销凭证&#xff0c;报销凭证与之前的车票类似&#xff0c;但是…

数学建模常用工具总结

数学建模常用工具总结 绘图篇pythonMATLABLIVEGAP CHARTSApache EChartsBioLadderHiplot Pro 生物医学可视化平台Graph EditorRAWGraphs 2.0ExcalidrawPPT绘图 配色篇Color SpaceAdobe Color 素材篇手绘素材插画网iconfont-阿里巴巴矢量图标库下面四个都是实物风格的素材&#…

40天的八股文总结

四十天前报名参加了卡哥的八股文训练营&#xff0c;在这四十天中每周都在训练营中打卡&#xff0c;可以通过念出来的方式进行八股文的记忆&#xff0c;同时还可以听到其他训练营中的朋友们的打卡&#xff0c;这让人感觉非常的有动力&#xff0c;每天都有更强烈的记忆八股文的信…

安装win7鼠标键盘不能动原因分析及解决办法

有同学反馈安装win7鼠标键盘不能动这是怎么回事&#xff1f;后来研究该问题主要是原版win7没有集成usb3.0和usb3.1驱动导致&#xff0c;下面小编就教大家安装win7鼠标键盘不能动原因分析及解决方法。 安装win7鼠标键盘不能动原因分析&#xff1a; 原因&#xff1a;研究后发现是…

Quartz.Net_快速开始

简述 Quartz中主要分为三部分&#xff0c;JobDetail、Trigger、Scheduler&#xff0c;分别是任务、触发器、调度器&#xff0c;三者的关系为&#xff1a;Trigger控制JobDetail的执行时间和频率&#xff0c;而Scheduler负责将具体的Trigger与具体的JobDetail绑定 1.安装Quartz…

无需后端也能测试 CRUD:Mock.js 的强大功能

前言 在前端开发中&#xff0c;数据的增删改查&#xff08;CRUD&#xff09;操作是最常见的需求之一。 然而&#xff0c;在后端接口尚未就绪的情况下&#xff0c;前端开发者往往需要一种方法来模拟这些操作。 Mock.js 作为一个强大的前端数据模拟库&#xff0c;可以帮助开发…

Ubuntu 上启用 swap 内存,提高运行效率!

Ubuntu 24.04 是一个功能强大的操作系统&#xff0c;但有时你的电脑可能会在运行多个应用程序时耗尽内存。这会降低系统的运行速度和效率。在这种情况下&#xff0c;添加交换内存会有所帮助。交换内存作为一个额外的内存资源&#xff0c;您的计算机可以顺利处理更多的任务。 在…

如何用一次推送,毁掉一个公司?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;可以私有化部署&#xff0c;对中文的支持非常友好&#xff0c;是专为中国程序员和企业推出的企业级一体化 DevOps 平台&#xff0c;一键就能安装成功。安装详情可以查看官网指南。 本文分享如何使用极狐GitLab 17.2 发布的密钥…

这样的配置,才够格做“黑悟空”“天命人”

《黑神话&#xff1a;悟空》取材自中国古典名著《西游记》&#xff0c;玩家将扮演齐天大圣孙悟空&#xff0c;体验一段惊心动魄的冒险旅程&#xff0c;被媒体誉为中国首款“3A游戏”。 在《黑神话&#xff1a;悟空》发布并风靡全球之际&#xff0c;唯迈医疗的 Phoenix 210 亦同…

【渗透工具箱】灵兔宝盒-Rabbit_Treasure_Box_V1.0.1

Rabbit_Treasure_Box_V1.0.1 是一款基于Windows操作系统的渗透工具箱&#xff0c;旨在提供一个开箱即用的渗透测试工具集合。该工具箱通过 Dawn Launcher 进行管理&#xff0c;支持一键备份和更新。它包含了脚本类工具&#xff0c;在Windows中启动&#xff0c;集成了在线安全工…

Debug-026-el-upload照片上传-编辑页回显照片并且支持再上传的实现方案

前言&#xff1a; 在之前写的一篇文章《Debug-022-el-upload照片上传-整体实现回顾》中回顾了整体的借助el-upload实现了照片上传的功能。现在业务中增加了一项需求&#xff0c;我们的表单一般是分为“新增页”和“编辑页”的&#xff0c;这里新需求希望可以在编辑页中实现对“…