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

sql语句总结

公司使用的flyway来管理项目数据库,因此每个版本开发,都会牵涉到表、字段、索引的修改、删除、增加;需要在flyway文件中使用原生的sql语句;这东西不怎么常用,但是用的时候会突然想不起来,因此记录一下:

表操作:

一般来说对表的操作很少,最多就是创建表或者删除表;

删除表:
DROP TABLE `table_name`;
创建表:

一般创建表之前都会判断表是否存在,存在就删除;

DROP TABLE IF EXISTS `table_name`;
CREATE TABLE `table_name` (
    `id` biginnt(20) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
    PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '表中文名' ROW_FORMAT = Dynamic;
字段(列)操作:
修改列:

修改列名:

rename修改:只修改列名

ALTER TABLE `table_name` RENAME COLUMN odl_col_name to new_col_name; 

change修改:修改列名和列的数据类型

ALTER TABLE `table_name` CHANGE COLUMN odl_col_name new_col_name new_data_type;

修改列类型:

ALTER TABLE有三种修改列的方式:

1、alter column 设置或者删除类的默认值;该操作会直接修改.frm文件而不涉及表数据

# 添加默认值
ALTER TABLE `table_name` ALTER COLUMN col_name set default 'java';
# 删除默认值
ALTER TABLE `table_name` ALTER COLUMN col_name drop default;

2、change column 可以重命名列或者修改列的定义

# 修改列名(数据类型还使用之前的,只修改名字)
ALTER TABLE `table_name` CHANGE COLUMN old_col_name new_col_name varchar(20);
# 同时修改列名和数据类型
ALTER TABLE `table_name` CHANGE COLUMN old_col_name new_col_name varchar(40);

3、modify column 可以更改列的定义,但不能更改列的名称

ALTER TABLE `table_name` MODIFY COLUMN col_name varcahr(20);

这三种方式比较起来,change column的功能最强大,可以通用;

modify和change在更新表结构的时候,会对数据进行读、重新插入操作,谨慎使用;

当只需要修改某一列的默认值的时候,优先选择用alter,需要修改列的名称用change,只修改列的定义用modify;

删除列:
ALTER TABLE `table_name` DROP COLUMN col_name;
增加列:
ALTER TABLE `table_name` ADD COLUMN col_name datatype;
索引操作:

添加普通索引:

ALTER TABLE `table_name` ADD INDEX index_name(col_name);

添加主键:

ALTER TABLE `table_name` ADD PRAMARY KEY(col_name);

添加唯一索引:

ALTER TABLE `table_name` ADD UNIQUE(col_name);

添加全文索引:

ALTER TABLE `table_name` ADD FULLTEXT(col_name);

添加联合索引:

ALTER TABLE `table_name` ADD INDEX index_name(col_name1, col_name2, col_name3);

删除索引:

# drop方式
DROP INDEX index_name ON table_name;
# alter table方式
ALTER TABLE `table_name` DROP INDEX index_name;
数据操作:

插入表数据:

# 按指定的列插入
INSERT INTO `table_name` (col1, col2, clo3, ....., colN) VALUES (vul1, vul2, vul3, ....., vuln);
# 为所有列插入
INSERT INTO `table_name` VALUES (vul1, vul2, vul3, ....., vuln);

更新表数据:

# 更新单个字段
UPDATE `table_name` set name='java' where id = 3;
# 更新多个字段
UPDATE `table_name` set name='java', age=22, sex='男' where id = 3;

删除表数据:

DELETE FROM `table_name` where id = 3;

结语:取法乎上,仅得其中;取法乎中,仅得其下;


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

相关文章:

  • Unity设计模式—服务定位器模式
  • 【Vue全家桶】带你全面了解通过Vue CLI初始化Vue项目
  • 【linux】进程信号——信号的产生
  • C++初级教程(二)
  • Linux内核4.14版本——drm框架分析(1)——drm简介
  • 一个使用 react+vite3+ts+react-router-dom6v Hooks Admin搭建的轻量级后台管理模板。
  • Guitar Pro8.1专业版新功能简谱介绍
  • postgresql查询json类型字段中的数据
  • Mybatis-Mapper代理开发
  • 不愧是2023年就业最难的一年,还好有车企顶着~
  • 十大Python可视化工具,太强了
  • gin框架使用websocket实现进入容器内部执行命令
  • GJB 9001C质量管理体系文件构建(2、质量手册编制要点)第9章、第10章
  • 如何利用学生身份申请使用免费的专业版pycahrm(详细 教程)
  • 模拟登入(验证码识别,Cookie)
  • 安装系统所需软件
  • slice()、substring()、substr()三者的区别
  • Windows权限提升 —SQL Server/MSSQL数据库提权
  • Selenium+Pytest自动化测试框架实战,还不会点这里一清二楚,全网最细教程!
  • 基于点云的深度学习方法预测蛋白-配体结合亲和力【Briefings in Bioinformatics, 2022】