SQL刷题笔记day8——SQL进阶——表与索引操作

目录

1 创建一张新表

2 修改表

3 删除表

4 创建索引

 5 删除索引

1 创建一张新表

我的答案

create table if not exists user_info_vip
(id int(11) primary key auto_increment Comment'自增ID', # 有了主键就不用写not nul了
uid	int(11) unique not null Comment'用户ID',
nick_name varchar(64) Comment'昵称',
achievement	int(11) default 0 Comment'成就值',
level int(11) Comment'用户等级',
job varchar(32) Comment'职业方向',
register_time datetime default CURRENT_TIMESTAMP Comment'注册时间')
default charset = utf8

正确答案:

CREATE TABLE user_info_vip(id int(11) primary key auto_increment comment "自增ID",uid int(11) unique not null comment "用户ID",nick_name varchar(64) comment "昵称",achievement int(11) default 0 comment "成就值",level int(11) comment "用户等级",job varchar(32) comment "职业方向",register_time datetime default current_timestamp comment "注册时间"
)DEFAULT CHARSET=UTF8;

复盘:有了主键就不用写not nul了

--创建新表,如果存在则覆盖
drop table [if exists] 表名;
--创建新表,如果存在则返回
create table
[if not exists] 表名 -- 不存在才创建,存在就跳过
(<列名1> <数据类型> -- 列名和类型必选[ primary key -- 可选的约束,主键| foreign key  -- 外键,引用其他表的键值| auto_increment -- 自增ID| comment <注释> -- 列注释(评论)| default <值> -- 默认值| unique -- 唯一性约束,不允许两条记录该列值相同| not null -- 该列非空,输入空会报错| current_timestamp -- 当前时间戳], ...
) [character set <字符集名>] -- 字符集编码
[collate <校对规则名>] -- 列排序和比较时的规则(是否区分大小写等)

2 修改表

修改方法:

alter table 表名 修改选项;
选项集合:
{ add column <新增列名> <类型> after <某一列>  -- 在某一列之后增加列
| change column <旧列名> <新列名> <新列类型> -- 修改列名或类型
| alter column <列名> { set default <默认值> | drop default } -- 修改/删除 列的默认值
| modify column <列名> <类型> -- 修改列类型
| drop column <列名> -- 删除列
| rename to <新表名> -- 修改表名
| character set <字符集名> -- 修改字符集
| collate <校对规则名> } -- 修改校对规则(比较和排序时用到,是否区分大小写等)

我的代码:表名后面不需要大花括号{ }

alter table user_info
add column school varchar(15) after level,
change column job profession varchar(10),
modify column achievement int(11) default 0;

修改三次的方法代码:

ALTER TABLE user_info ADD column school varchar(15) AFTER LEVEL;
ALTER table user_info CHANGE column job profession varchar(10);
ALTER TABLE user_info MODIFY column achievement int(11) default 0;

3 删除表

drop table [if exists] 表名 [,表名1,...];

我的代码:天真了,删除表能使用的很有限?

drop table if exists exam_record
where YEAR between 'exam_record_2011' and 'exam_record_2014'

正确代码:暴力删除

drop table if exists exam_record_2011, exam_record_2012,exam_record_2013,exam_record_2014

或者一个一个的删除:

drop table if exists exam_record_2011;
drop table if exists exam_record_2012;
drop table if exists exam_record_2013;
drop table if exists exam_record_2014;

4 创建索引

方法一、使用create index

  • [使用]:create [unique|fulltext] index 索引名 on 表名 (列名);
  • [注意]:unique 唯一性索引、fulltext 全文索引

方法二、修改表的方式创建索引

  • [使用]:alter table examination_info add [索引类型] index 索引名(列名);
  • [注意]:索引类型:普通索引、唯一性索引、全文索引

方法三、建表的时候创建索引

  • [使用]:create table tableName( id int not null, 列名 列的类型, [索引类型] index [索引名] (列名,...););

我的错误代码:方法一 使用create index,但是缺失表名

create index idx_duration on duration;
create unique index uniq_idx_exam_id on exam_id;
create fulltext index full_idx_tag on tag;

正确修改后:补全表名

# 创建普通索引
create index idx_duration on examination_info(duration);
# 创建唯一性索引
create unique index uniq_idx_exam_id on examination_info(exam_id);
# 创建全文索引
create fulltext index full_idx_tag on examination_info(tag);

方法二:修改表的方式创建索引

-- 唯一索引
ALTER TABLE examination_info
ADD UNIQUE INDEX uniq_idx_exam_id(exam_id);
-- 全文索引
ALTER TABLE examination_info
ADD FULLTEXT INDEX full_idx_tag(tag);
-- 普通索引
ALTER TABLE examination_info
ADD INDEX idx_duration(duration);

学习链接:https://blog.csdn.net/chengyj0505/article/details/128376127?spm=1001.2014.3001.5502

 5 删除索引

我的错误粗暴代码:drop [unique|fulltext]index index_name on table_name ;

drop unique index uniq_idx_exam_id on examination_info;
drop fulltext index full_idx_tag on examination_info;

删除不需要给出类型[unique|fulltext]

修改后

法一:drop index index_name on table_name ;

drop index uniq_idx_exam_id on examination_info;
drop index full_idx_tag on examination_info;

法二:alter table table_name drop index index_name ;

注意:table不能少

alter table examination_info drop index uniq_idx_exam_id;
alter table examination_info drop index full_idx_tag; #table不能少

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

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

相关文章

发现真正的诉求

在不久前&#xff0c;我在负责一个项目&#xff0c;设计了一个方案。但是&#xff0c;与我一同合作的同事对其中的一个设计点持有异议。我们尝试讨论解决&#xff0c;但似乎没有找到共识。然而&#xff0c;尽管双方的观点没有达成一致&#xff0c;我们都清楚地表达了自己的想法…

272 基于matlab的形态滤波和局域值分解(LMD)的齿轮故障诊断

基于matlab的形态滤波和局域值分解&#xff08;LMD&#xff09;的齿轮故障诊断&#xff0c;GUI交互界面。通过形态滤波对一维信号进行降噪处理&#xff0c;并通过LMD局部均值分解提取故障信号&#xff0c;最后提取处故障频率。程序已调通&#xff0c;可直接运行。 272 形态滤波…

[AIGC] DAG模型在任务调度中有什么优势?

DAG(Directed Acyclic Graph&#xff0c;有向无环图)在任务调度中的应用带来了以下优势&#xff1a; 清晰的任务依赖关系&#xff1a;在DAG模型中&#xff0c;任务以节点的形式存在&#xff0c;任务间的依赖关系通过有向边来表示。这使得任务关系清晰明了&#xff0c;易于理解和…

Mysql学习经验总结(一)

Mysql的简介&#xff1a; MySql是一个开源的关系型数据库管理系统&#xff0c;广泛应用于Web应用程序的数据存储和管理。它支持多用户并发访问&#xff0c;具有高性能、稳定可靠、易于使用和管理的特点。 MySql官网提供了详细的文档、下载、社区等资源&#xff0c;官网的地址…

微信小程序的服务调取

微信小程序的服务调取概述 微信小程序允许开发者通过网络请求与服务器进行交互&#xff0c;从而实现数据的上传和下载。这是通过小程序提供的API&#xff0c;如wx.request、wx.downloadFile、wx.uploadFile等来完成的。这些API使得小程序可以从远程服务器获取数据&#xff0c;…

文档智能开源软件

文档智能介绍&#xff1a; 文档智能通常指的是利用人工智能技术来处理和分析文档内容&#xff0c;以实现自动化、智能化的文档管理。文档智能的应用领域非常广泛&#xff0c;包括但不限于&#xff1a; 1. **文档识别**&#xff1a;使用OCR&#xff08;光学字符识别&#xff0…

Java+SVNCloud+Mysql课程设计

文章目录 1、主要内容2、所需准备3、与sql访问的中间类&#xff1a;SqlMessage4、窗口界面5、main方法 1、主要内容 课程设计&#xff0c;主要通过Javas wing创建窗口&#xff0c;jdbc连接云端mysql数据库进行基本操作&#xff0c;支持随机生成数据并用动态展示数据结果。 先…

一种最大重叠离散小波包特征提取和支持向量机的ECG心电信号分类方法(MATLAB 2018)

目前小波分析算法常采用Mallat快速算法。该算法由与滤波器卷积、隔点采样和隔点插零等三个环节组成。由于实际使用的滤波器并不具有理想频域特性&#xff0c;使得在标准二进小波算法中存在着频率混叠和小波系数失真等缺点&#xff0c;在标准二进小波包算法中还存在频带错乱现象…

matlab误差估计扩展卡尔

在MATLAB中实现扩展卡尔曼滤波&#xff08;Extended Kalman Filter, EKF&#xff09;时&#xff0c;误差估计是一个关键步骤。EKF是一种用于非线性系统状态估计的算法&#xff0c;它通过线性化非线性系统模型&#xff0c;并利用卡尔曼滤波的框架进行状态估计和误差估计。以下是…

展现市场布局雄心,ATFX再度亮相非洲峰会,开启区域市场新篇章

自2023年全球市场营销战略部署实施以来&#xff0c;ATFX在全球各区域市场取得了丰硕成果&#xff0c;其品牌实力、知名度、影响力均有大幅提升。在这场全球扩张的征程中&#xff0c;非洲市场日益成为集团关注的焦点。自2023年首次踏上这片充满潜力的市场以来&#xff0c;ATFX持…

【TB作品】MSP430 G2553 单片机口袋板,读取单片机P1.4电压显示,ADC

功能 读取P1.4电压&#xff0c;显示到口袋板显示屏&#xff0c;电压越高亮灯越多。 部分程序 while (1){ADC10CTL0 | ENC ADC10SC; // Sampling and conversion startLPM0;adcvalue ADC10MEM; //原始数据 0到1023adtest (float) adcvalue / 1024.…

PKCS #8的原理及作用

标签: PKCS #8的原理及作用; PKCS #8;PKCS8 PKCS #8的原理及作用 概述 PKCS #8(Public-Key Cryptography Standards #8)是由RSA实验室发布的一种标准,用于存储私钥信息。它定义了私钥的语法,包括如何对私钥进行编码和加密,以确保其安全性和可移植性。 英文原文: I…

【大模型应用开发极简入门】构建新闻稿生成器:提示词的使用与基于事实的提示词

文章目录 一. 提示词怎么写二. 完整代码三. 基于事实的prompt GPT-4和ChatGPT等LLM专用于生成文本。我们可以使用GPT-4和ChatGPT在各种场景中生成文本&#xff0c;举例如下。 电子邮件合同或正式文档创意写作逐步行动计划头脑风暴广告职位描述 对于本项目&#xff0c;我们将创建…

列表标签 ul+ol/li

04-07、列表标签 ulol/li 概述 列表标签&#xff1a;无序列表ulli、有序列表olli和定义列表 dl dt dd 三种&#xff0c;在网页制作中应用非常广泛&#xff0c;列表就是信息资源的一种展示形式。 特点&#xff1a; 它们都是块元素&#xff0c;可以受到宽度&#xff0c;高度&…

springboot 实现kafka多源配置

文章目录 背景核心配置自动化配置类注册生产者、消费者核心bean到spring配置spring.factoriesyml配置使用 源码仓库 背景 实际开发中&#xff0c;不同的topic可能来自不同的集群&#xff0c;所以就需要配置不同的kafka数据源&#xff0c;基于springboot自动配置的思想&#xf…

SwiftUI知识点(一)

前言&#xff1a; Swift知识点&#xff0c;大至看完了&#xff0c;公司项目是Swift语言写的&#xff0c;后续苹果新出的SwiftUI&#xff0c;也需要学习一下 不知觉间&#xff0c;SwiftUI是19年出的&#xff0c;现在24年&#xff0c;5年前的东西了 学习的几个原因&#xff1a; …

C# virtual 关键字

文章目录 virtual 使用Override 关键字New 关键字何时使用 Override / New 关键字&#xff1f;不要在构造函数里调用虚函数 virtual 使用 c#的方法&#xff0c;默认为非虚方法&#xff0c;如果一个方法被声明为 virtual &#xff08;虚方法&#xff09;&#xff0c;则继承该方…

Android Media Framework(一)OpenMAX 框架简介

学习开源代码最快的方式是先阅读它的文档&#xff0c;再查看它的头文件&#xff0c;最后研读代码实现并进行编译调试。Android早期引入OpenMAX IL作为使用音视频编解码器的标准接口&#xff0c;了解Android Media框架的底层运行原理要从OMX IL开始。在这一节&#xff0c;我们将…

qt c++ 随机数 获取mac地址

目录 获取mac地址 c 随机数 c pro设置&#xff1a; QT core gui network 获取mac地址 #include <QCoreApplication> #include <QNetworkInterface> #include <QDebug>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);// 获取所有网络…

本机安装深度学习库cuda11.8,cudnn8.6和tensorRT8.5

https://blog.csdn.net/qq_46107892/article/details/131453019 首先是安装cuda11.8 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pinsudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600wg…