文章目录
SQL题解汇总
https://blog.csdn.net/guliguliguliguli/article/details/126109166
题目链接
https://www.nowcoder.com/exam/oj?page=1&tab=SQL%E7%AF%87&topicId=240
牛客-SQL进阶挑战 02 表与索引操作
表的创建、修改与删除
SQL 118 创建一张新表
CREATE TABLE IF NOT EXISTS 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 '注册时间'
);
SQL 119 修改表
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 achievement INT(11) DEFAULT 0;
SQL 120 删除表
DROP TABLE IF EXISTS exam_record_2011,
exam_record_2012,
exam_record_2013,
exam_record_2014;
索引的创建、删除
相关知识点
索引的优点:MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。
实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:
-
虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
-
建立索引会占用磁盘空间的索引文件。
CREATE方式创建索引
CREATE
[UNIQUE -- 唯一索引
| FULLTEXT -- 全文索引
] INDEX index_name ON table_name -- 不指定唯一或全文时默认普通索引
(column1[(length) [DESC|ASC]] [,column2,...]) -- 可以对多列建立组合索引
ALTER方式创建索引
ALTER TABLE tb_name ADD [UNIQUE | FULLTEXT] [INDEX] index_content(content)
DROP方式创建索引
DROP INDEX <索引名> ON <表名>
ALTER方式删除索引
ALTER TABLE <表名> DROP INDEX <索引名>
SQL 121 创建索引
CREATE UNIQUE INDEX uniq_idx_exam_id ON examination_info(exam_id);
CREATE FULLTEXT INDEX full_idx_tag ON examination_info (tag);
CREATE INDEX idx_duration ON examination_info(duration);
SQL 122 删除索引
DROP INDEX uniq_idx_exam_id ON examination_info;
DROP INDEX full_idx_tag ON examination_info;