当前位置: 首页 > article >正文

sql进阶篇

1.更新记录

AC:

update examination_info
set tag = replace(tag, "PYTHON", "Python")
where tag = "PYTHON";

2.删除记录

AC:

DELETE FROM exam_record
WHERE timestampdiff(minute, start_time, submit_time) < 5
    AND score < 60;

3.删除记录(三)

AC:

truncate table exam_record

TRUNCATE TABLE exam_record; 是 SQL 中的一条命令,用于快速删除表 exam_record 中的所有记录。它的主要特点和作用包括:

  1. 快速删除:与 DELETE 语句相比,TRUNCATE 更快,因为它不逐行删除数据,而是直接释放整个表的空间。

  2. 无法恢复TRUNCATE 操作是不可逆的,一旦执行,表中的所有数据将无法恢复。

  3. 重置自增计数器:如果表中有自增字段,执行 TRUNCATE 后,这些字段的计数器通常会重置回初始值(如 1)。

  4. 不支持 WHERE 子句:与 DELETE 不同,TRUNCATE 不支持条件删除,不能只删除特定记录。

  5. 影响表的结构TRUNCATE 操作不会影响表的结构(如列和索引),仅清空数据。

总之,TRUNCATE TABLE exam_record; 是用来快速清空 exam_record 表中所有数据的一种方法,适用于需要快速重置数据的场景。

4.创建一张新表

AC:

CREATE TABLE IF NOT EXISTS user_info_vip (
    id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
    uid int UNIQUE NOT NULL COMMENT '用户ID',
    nick_name varchar(64) COMMENT '昵称',
    achievement int DEFAULT 0 COMMENT '成就值',
    `level` int COMMENT '用户等级',
    job varchar(32) COMMENT '职业方向',
    register_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间'
) CHARACTER SET utf8 COLLATE utf8_general_ci;


create table if not exists user_info_vip(
    id int auto_increment comment '自增ID',
    uid int unique not null comment '用户ID',
    nick_name varchar(64) comment '昵称',
     achievement int default 0 comment '成就值',
    `level` int comment '用户等级',
    job varchar(32) comment '职业方向',
    register_time datetime default current_timestamp comment '注册时间',
    primary key (id)
) character set utf8 collate utf8_general_ci;

5.修改表

AC:


alter table user_info add school varchar(15) after level;
增加列在某列之后
alter table 增加的表格 add 增加列的名称 数据类型 位置(after level 在level 之后)

alter table user_info change job profession varchar(10);
更换列的名称及数据类型
alter table user_info change 原列名 修改列名 修改数据类型

alter table user_info modify achievement int(11) default 0;
更改数据类型
alter table 表名 modify 修改列名称 数据类型 默认值等
ALTER TABLE user_info ADD school varchar(15) AFTER `level`;
ALTER TABLE user_info CHANGE job profession varchar(10);
ALTER TABLE user_info CHANGE COLUMN achievement achievement int DEFAULT 0;

6. 删除表

表的创建、修改与删除:

  • 1.1 直接创建表:

1

2

3

4

5

6

7

8

9

10

11

12

13

CREATE TABLE

[IF NOT EXISTS] tb_name -- 不存在才创建,存在就跳过

(column_name1 data_type1 -- 列名和类型必选

  [ PRIMARY KEY -- 可选的约束,主键

   | FOREIGN KEY -- 外键,引用其他表的键值

   | AUTO_INCREMENT -- 自增ID

   | COMMENT comment -- 列注释(评论)

   | DEFAULT default_value -- 默认值

   | UNIQUE -- 唯一性约束,不允许两条记录该列值相同

   | NOT NULL -- 该列非空

  ], ...

) [CHARACTER SET charset] -- 字符集编码

[COLLATE collate_value] -- 列排序和比较时的规则(是否区分大小写等)

  • 1.2 从另一张表复制表结构创建表: CREATE TABLE tb_name LIKE tb_name_old

  • 1.3 从另一张表的查询结果创建表: CREATE TABLE tb_name AS SELECT * FROM tb_name_old WHERE options

  • 2.1 修改表:ALTER TABLE 表名 修改选项 。选项集合:

1

2

3

4

5

6

7

8

{ ADD COLUMN <列名> <类型>  -- 增加列

 | CHANGE COLUMN <旧列名> <新列名> <新列类型> -- 修改列名或类型

 | ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT } -- 修改/删除 列的默认值

 | MODIFY COLUMN <列名> <类型> -- 修改列类型

 | DROP COLUMN <列名> -- 删除列

 | RENAME TO <新表名> -- 修改表名

 | CHARACTER SET <字符集名> -- 修改字符集

 | COLLATE <校对规则名> } -- 修改校对规则(比较和排序时用到)

  • 3.1 删除表:DROP TABLE [IF EXISTS] 表名1 [, 表名2]

AC:

DROP TABLE IF EXISTS exam_record_2011, exam_record_2012, exam_record_2013, exam_record_2014;

7.

8.

9.

10.


http://www.kler.cn/a/376811.html

相关文章:

  • MySQL超大分页怎么优化处理?limit 1000000,10 和 limit 10区别?覆盖索引、面试题
  • 03:选择语句的练习
  • MFC工控项目实例二十八模拟量信号每秒采集100次
  • FastAPI 核心概念:构建高性能的 Python Web 服务
  • 使用Django REST framework构建RESTful API
  • 解决python matplotlib画图无法显示中文的问题
  • 华为云安装docker
  • GNSS和PTP时间同步的基础原理介绍
  • Android 百度面经
  • Golang反射原理
  • 问:Redis常见性能问题及解法?
  • LeetCode每日一题3226---使两个整数相等的位更改次数
  • C#WPF使用CommunityToolkit.Mvvm库
  • jmeter基础01-1_环境准备-windows系统安装jdk
  • 基本查询【MySQL】
  • token无感刷新+处理并发的后端方案
  • Vue3+TypeScript+Vite 后台管理项目_登录页面开发实战
  • 项目实战:基于Linux的Flappy bird游戏开发
  • 第二届开放原子大赛-开源工业软件算法集成大赛即将启动!
  • 网络基础知识概览
  • 贪心算法习题其三【力扣】【算法学习day.20】
  • angular登录按钮输入框监听
  • Python 定时调度任务
  • nignx代理获取真实地址request.getRequestURL()
  • el-select 的默认选中 以及后端返回的数据进行默认选中
  • Java多态特性的向上转型