mysql 常见数据表操作

       前面介绍了数据库表的基本操作。把常用的做一个汇总。时间久了,记不得完整的语法了,再打开一看,就清楚了。

先看注意事项:

在设计数据库的时候有以下注意点和技巧。

        1,禁用存储过程、函数、触发器、外键约束,尽量依赖于业务层面做,这样能够具有良好的可扩展性。

        2,允许为 NULL 的列,在非查询时会无法匹配,如 where status != 'FINISH',那么status 为 NULL 的行也无法匹配。

        3,使用枚举或整数类型代替字符串类型。

        4,ID 使用 BIGINT 即可,对应于 Java 中的 long 类型,足够使用。

        5,对整数类型指定宽度,比如 INT(11)、BIGINT(20),并不影响存储大小,INT 依然使用 32 位(4 字节)存储空间,BIGINT 依然使用 64 位(8 字节)存储空间,宽度仅表示显示的长度。

        6,避免使用 DECIMAL 和浮点数数据类型,可以使用 BIGINT 代替(浮点数乘以一个

倍数)。

        7,数据库中的表最好带有创建和更新时间戳,以及所创建 / 修改行的用户标识,以审

计追踪数据的变动。

        8,不要真的删除数据,可以给它们打上一个被删除的标记或者做版本化修改。

        9,单表不要有太多字段,建议在 15 以内。

        10,用整数类型而不是字符串存储 IP。

1,表操作

1,建表+注释

CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号',name VARCHAR(200) COMMENT '姓名',age  INT  COMMENT '年龄'
) COMMENT='学生表'

2,修改注释

-- 修改表注释- 
ALTER TABLE student COMMENT '学生信息表';

3,修改表名

ALTER TABLE book RENAME TO books;

4,删除表格

DROP TABLE user;

5、约束

        unique(唯一性)

        not null

        default(默认值以'单引号括起来)

        comment 备注

        primary key(主键,也必须是唯一性,后面加AUTO_INCREMENT可实现自增,删除某条记录再自增后,后面的条目主键值不会变化)

2,列的操作

  • 查看列:desc 表名;
  • 修改表名:alter table t_book rename to bbb;
  • 添加列:alter table 表名 add column 列名 varchar(30);
  • 删除列:alter table 表名 drop column 列名;
  • 修改列名: alter table bbb change column oleColumn newColumn 属性;
  • 修改列属性:alter table t_book modify name varchar(22);
1,增加列
1,增加列
ALTER TABLE open_transfer_link ADD COLUMN transfer_mod  VARCHAR(20) COMMENT '多实例模式(serial 串行,multiInst并行)';

2,增加列在指定字段后面:after column
ALTER TABLE open_transfer_link ADD COLUMN transfer_mod  VARCHAR(20) COMMENT '多实例模式(serial 串行,multiInst并行)' after next_staff_id;

3,增加列在第一列:first
ALTER TABLE open_transfer_link ADD COLUMN transfer_id int(8) COMMENT '转换标识' first;

2,修改列:

1,修改列名,属性和备注:
ALTER TABLE open_transfer_link 
CHANGE COLUMN  transfer_mod transfer_mode VARCHAR(30) COMMENT '流转模式';

PS:注意,如果有备注的,修改字段的时候,要带上备注!!!不然修改的时候,不带备注,备注就没有了。

2,修改字段的排列位置
1,修改字段为表的第一个字段
ALTER TABLE tb_dept1 MODIFY columnl VARCHAR(12) FIRST;

2,修改字段到表的指定列之后
ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) AFTER 1ocation;

3,删除列

语法:

alter table 表名 drop column 列名;
ALTER TABLE open_transfer_link DROP COLUMN next_staff_id; 

4,设置主键

alter table staff add primary key (id);

5,修改列为自增:

alter table func_menu_group 
change func_menu_group_id func_menu_group_id 
int not null auto_increment COMMONET '功能菜单组标识';

6,设置自增初始值

ALTER TABLE func_menu_group AUTO_INCREMENT = 100000;

3,索引操作:

1,添加索引:

1,添加PRIMARY KEY(主键索引)
ALTER TABLE table_name ADD PRIMARY KEY (columnName);

2,添加唯一性索引:add unique key
ALTER TABLE table_name ADD UNIQUE KEY NAME (columnName) 
ALTER TABLE role_assign 
ADD UNIQUE KEY uni_role_assign_key(role_id,target_type,target_id);
3,添加普通索引:INDEX
ALTER TABLE table_name ADD INDEX index_name (columnName);

4,添加全文索引:FULLTEXT
ALTER TABLE table_name ADD FULLTEXT (columnName);

2,修改索引:

没有直接修改索引的,需要先删除,再增加

ALTER TABLE role_assign DROP INDEX idx_role_assign_141,ADD INDEX idx_role_assign(target_id, target_type);

3,删除索引:

ALTER TABLE role_assign DROP INDEX uni_role_assign_key;

4,总结:

        后面有遇到,再补充。把常用的ddl操作放一起,后面有忘记了,就可以直接查看。

        上一篇:《mysql数据库表基本操作》

        下一篇:《mysql 数据类型》

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

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

相关文章

jupyter 设置工作目录

本博客主要介绍: 如何为jupyter设置工作目录 1.打开 anaconda prompt , 执行 jupyter notebook --generate-config 执行这个命令后会生成一个配置文件 2. 打开jupyter_notebook_config.py文件编辑 搜索notebook_dir,把这行代码的注释取消,…

stm32再实现感应开关盖垃圾桶

一、项目需求 检测靠近时,垃圾桶自动开盖并伴随滴一声,2秒后关盖 发生震动时,垃圾桶自动开盖并伴随滴一声,2秒后关盖 按下按键时,垃圾桶自动开盖并伴随滴一声,2秒后关盖 硬件清单 SG90 舵机,…

HTTP 与 HTTPS 的区别

基本概念 HTTP(HyperText Transfer Protocol:超文本传输协议)是一种应用层协议,主要用于在网络上进行信息的传递,特别是用于Web浏览器和服务器之间的通信。 它使用明文方式发送数据,这意味着传输的内容可…

MySQL中MD5()函数加密CONCAT()函数拼接的字段

在MySQL中,使用CONCAT()函数来连接多个字段,然后对其结果应用MD5()函数进行加密。 SQL查询语句 UPDATE po_electricity SET task_code MD5(CONCAT(school_id, -, electricity_month, LOCKDATAV)) WHERE electricity_id 43;UPDATE po_water …

公司服务器被.rmallox攻击了如何挽救数据?

公司服务器被.rmallox攻击了如何挽救数据? .rmallox这种病毒与之前的勒索病毒变种有何不同?它有哪些新的特点或功能? .rmallox勒索病毒与之前的勒索病毒变种相比,具有一些新的特点和功能。这种病毒主要利用加密技术来威胁用户&am…

【JavaScript】数组 ③ ( JavaScript 数组长度 | 修改数组长度 | 数组案例 )

文章目录 一、JavaScript 数组长度1、数组长度2、修改数组长度 二、数组案例1、求数组元素平均值2、求数组元素最大值 一、JavaScript 数组长度 1、数组长度 在 JavaScript 中 , 数组长度 可以通过 数组变量的 length 属性 获取 , 该属性 返回 数组中的元素数量 , 也就是 数组长…

数据结构 第6章 图(一轮习题总结)

数据结构 第6章 图 6.1 图的基本概念6.2 图的存储及基本操作6.3 图的遍历6.4 图的应用 6.1 图的基本概念(2 4 11) 6.2 图的存储及基本操作(1 12 13 15 16) 6.3 图的遍历(2 3 5 16) 6.4 图的应用 6.1 图的基…

【USB】C#使用HID通信

最近做了一个USB通信SDK, 通过HID跟单片机通信,之前研究了一下Libusb, Cyusb, 要么死的太早,要么封装的不好,最后绕来绕去发现还是HID好用,反编译了一个SimpleHid, 别说,用起来还是很酸爽的~~~ 1.设备识别 首先你要指…

基于微信小程序的日语词汇学习设计与实现(论文+源码)_kaic

日语词汇学习小程序 摘 要 日语词汇学习小程序是高校人才培养计划的重要组成部分,是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。本学生所在学院多采用半手工管理日语词汇学习小程序的方式&#x…

如何用Python脚本自动发送邮件?

目录 1. 基础知识 1.1. SSH(Secure Shell)协议 1.2. SMTP(Simple Mail Transfer Protocol)协议 1.3. SSH协议与SMTP协议之间的关系 2. QQ邮箱设置 2.1. 开启SMTP服务 2.2. 编写脚本 3. 测试成功 1. 基础知识 邮件的发送过…

从TCP/IP协议到socket编程详解

​ 我的所有学习笔记:https://github.com/Dusongg/StudyNotes⭐⭐⭐ ​ 文章目录 1 网络基础知识1.1 查看网络信息1.2 认识端口号1.3 UDP1.4 TCP1.4.1 确认应答机制1.4.2 TCP三次握手/四次挥手为什么是三次握手为什么是四次挥手listen 的第二个参数 backlog—— 全…

01_安装VMwareWorkstation虚拟机

环境:Win10 19045 软件版本:VMware-workstation-17.5.1 一、下载链接 Download VMware Workstation Pro 二、安装(无脑下一步) 安装位置自选,最好非系统盘。 增强型键盘驱动自选。 更新自选。 快捷方式自选。 三、…

fastllm在CPU上推理ChatGLM2-6b,就来看这篇文章,速度很快

介绍: GitHub - ztxz16/fastllm: 纯c++的全平台llm加速库,支持python调用,chatglm-6B级模型单卡可达10000+token / s,支持glm, llama, moss基座,手机端流畅运行纯c++的全平台llm加速库,支持python调用,chatglm-6B级模型单卡可达10000+token / s,支持glm, llama, moss基…

Linux系统----------探索mysql数据库MHA高可用

目录 一、MHA概述 1.1 什么是 MHA 1.2MHA 的组成 1.2.1MHA Node(数据节点) 1.2.2MHA Manager(管理节点) 1.3MHA 的特点 1.4MHA工作原理 1.5数据同步的方式 1.5.1同步复制 1.5.2异步复制 1.5.3半同步复制 二、搭建 MySQ…

分布式算法 - ZAB算法

ZAB算法是用于实现分布式系统中的原子广播的核心算法,它被广泛应用于ZooKeeper分布式协调服务中。 ZAB算法由两个主要阶段组成:崩溃恢复阶段和消息广播阶段。 在崩溃恢复阶段,当一个ZooKeeper节点启动或者领导者节点崩溃重启时,…

蓝桥杯2016年第十三届省赛真题-凑算式

一、题目 凑算式 B DEF A --- ------- 10 C GHI 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。(比赛时,题目有改动) 比如: 68/39…

[高考] 数学题的一般解题思路

最近家里来了一位高中生,每天晩上辅导一下。虽然我不赞成现在的教育方式,但也脱不了随大流的现实。现根据这两周的教学经验总结一二,以便后续用的上! 之前也经常听到有些学生说自己数学一点都不会。我觉的只要智力可以&#xff0…

docker:can’t create unix socket /var/run/docker.sock: is a directory

docker:can’t create unix socket /var/run/docker.sock: is a directory 原因:docker.sock不能创建 解决方式: rm -rf /var/run/docker.sock 然后重新启动docker Docker是一种相对使用较简单的容器,我们可以通过以下几种方式获取信息&…

C++入门练习题目解析(第二讲)

1.设计一个表示点的类point&#xff0c;内含私有成员变量x&#xff0c;y表示点的坐标。再设计一个独立函数double distance(point m,point n); 来计算两点距离。 #include<iostream> #include<math.h> using namespace std; class point { private:int x, y; publ…

小赢科技公布2023年业绩:业绩稳健增长,服务“触角”有效延伸

近日&#xff0c;金融科技公司小赢科技&#xff08;NYSE:XYF&#xff09;发布了2023年第四季度及全年未经审计的财务业绩。 财报显示&#xff0c;小赢科技2023年全年总净营收约为48.15亿元&#xff0c;同比增长35.1%&#xff1b;净利润约为11.87亿元&#xff0c;同比增长46.2%…