精华内容
下载资源
问答
  • 修改数据库表字段内容
    千次阅读
    2020-06-09 18:23:03

    会经常遇到查询表字段并修改字段,那么可以根据查询条件批量修改某个具体的表字段的数据方法如下,

    UPDATE wp_postmeta SET meta_value = CASE post_id

            WHEN 45

            THEN 'https://everbest.store/product-category/hydration/'

            WHEN 47

            THEN 'https://everbest.store/product-category/frost/'

    END

    WHERE post_id in (45,47) AND meta_key="_menu_item_url"

    是根据post_id字段判断来修改meta_value的值,case后面可以添加多重when 条件 then 值,后面where根据条件进行查询,就可以直接进行批量修改了。

    更多相关内容
  • 修改数据库表字段符号符合规定
  • 数据库表字段命名规范

    千次阅读 2021-08-30 18:02:43
    本文是一篇包含了数据库命名、数据库表命名、数据库表字段命名及SQL语言编码的规范文档,针对研发中易产生的问题和常见错误做了一个整理和修改,为日后涉及到数据库相关的研发工作做好准备。 一、数据库命名规范 ...

    数据库表字段命名规范

    摘要:当前研发工作中经常出现因数据库表、数据库表字段格式不规则而影响开发进度的问题,在后续开发使用原来数据库表时,也会因为数据库表的可读性不够高,表字段规则不统一,造成数据查询,数据使用效率低的问题,所以有必要整理出一套合适的数据库表字段命名规范来解决优化这些问题。

    本文是一篇包含了数据库命名、数据库表命名、数据库表字段命名及SQL语言编码的规范文档,针对研发中易产生的问题和常见错误做了一个整理和修改,为日后涉及到数据库相关的研发工作做好准备。

    一、数据库命名规范

    采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线’‘组成,命名简洁明确,多个单词用下划线’'分隔,一个项目一个数据库,多个项目慎用同一个数据库

    二、数据库表命名规范

    2.1数据表命名规范

    (1)采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线’‘组成,命名简洁明确,多个单词用下划线’'分隔

    (2)全部小写命名,禁止出现大写

    (3)禁止使用数据库关键字,如:name,time ,datetime,password等

    (4)表名称不应该取得太长(一般不超过三个英文单词)

    (5)表的名称一般使用名词或者动宾短语

    (6)用单数形式表示名称,例如,使用 employee,而不是 employees

    明细表的名称为:主表的名称+字符dtl(detail缩写)

    例如:采购定单的名称为:po_order,则采购定单的明细表为:po_orderdtl

    (7)表必须填写描述信息(使用SQL语句建表时)

    2.2命名规范

    ①模块_+功能点 示例:alllive_log alllive_category

    ②功能点 示例:live message

    ③通用表 示例:all_user

    2.3待优化命名示例

    ①冗余:

    错误示例:yy_alllive_video_recomment yy_alllive_open_close_log

    说明:去除项目名,简化表名长度,去”yy_”

    ②相同类别表命名存在差异,管理性差

    错误示例:yy_all_live_category yy_alllive_comment_user

    说明:去除项目名,统一命名规则,均为”yy_alllive_”开头即可

    ③命名格式存在差异

    错误示例:yy_showfriend yy_user_getpoints yy_live_program_get

    说明:去除项目名,统一命名规则,动宾短语分离且动宾逻辑顺序统一

    三、数据库字段命名规范

    3.1字段命名规范

    (1)采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线’‘组成,命名简洁明确,多个单词用下划线’'分隔

    (2)全部小写命名,禁止出现大写

    (3)字段必须填写描述信息

    (4)禁止使用数据库关键字,如:name,time ,datetime password 等

    (5)字段名称一般采用名词或动宾短语

    (6)采用字段的名称必须是易于理解,一般不超过三个英文单词

    (7)在命名表的列时,不要重复表的名称

    例如,在名employe的表中避免使用名为employee_lastname的字段

    (8)不要在列的名称中包含数据类型

    (9)字段命名使用完整名称,禁止缩写

    3.2命名规范

    ①名词 示例:user_id user_name sex

    ②动宾短语 示例:is_friend is_good

    3.3待优化命名示例

    ①大小写规则不统一

    错误示例:user_id houseID

    说明:使用统一规则,修改为”user_id”,”house_id”

    ②加下划线规则不统一

    错误示例:username userid isfriend isgood

    说明:使用下划线进行分类,提升可性,方便管理,修改为”user_name”,”user_id”,”is_friend”,”is_good”

    ③字段表示不明确

    错误示例:uid pid

    说明:使用完整名称,提高可读性,修改为”user_id”,”person_id”

    3.4字段类型规范

    (1)所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary外,必须有默认值,字符型的默认值为一个空字符值串’’,数值型的默认值为数值0,逻辑型的默认值为数值0

    (2)系统中所有逻辑型中数值0表示为“假”,数值1表示为“真”,datetime、smalldatetime类型的字段没有默认值,必须为NULL

    (3)用尽量少的存储空间来存储一个字段的数据

    使用int就不要使用varchar、char,

    用varchar(16)就不要使varchar(256)

    IP地址使用int类型

    固定长度的类型最好使用char,例如:邮编(postcode)

    能使用tinyint就不要使用smallint,int

    最好给每个字段一个默认值,最好不能为null

    (4)用合适的字段类型节约空间

    字符转化为数字(能转化的最好转化,同样节约空间、提高查询性能)

    避免使用NULL字段(NULL字段很难查询优化、NULL字段的索引需要额外空间、NULL字段的复合索引无效)

    少用text类型(尽量使用varchar代替text字段)

    3.5数据库中每个字段的规范描述

    (1)尽量遵守第三范式的标准(3NF)

     表内的每一个值只能被表达一次 
    
     表内的每一行都应当被唯一的标示 
    
     表内不应该存储依赖于其他键的非键信息
    

    (2)如果字段事实上是与其它表的关键字相关联而未设计为外键引用,需建索引

    (3)如果字段与其它表的字段相关联,需建索引

    (4)如果字段需做模糊查询之外的条件查询,需建索引

    (5)除了主关键字允许建立簇索引外,其它字段所建索引必须为非簇索引

    四、SQL语言编码规范

    4.1大小写规范

    (1)所有关键字必须大写,如:INSERT、UPDATE、DELETE、SELECT及其子句,IF……ELSE、CASE、DECLARE等

    (2)所有函数及其参数中除用户变量以外的部分必须大写

    (3)在定义变量时用到的数据类型必须小写

    4.2注释

    注释可以包含在批处理中,在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性,本规范建议:

    (1)注释以英文为主,实际应用中,发现以中文注释的SQL语句版本在英文环境中不可用,为避免后续版本执行过程中发生某些异常错误,建议使用英文注释

    (2)注释尽可能详细、全面创建每一数据对象前,应具体描述该对象的功能和用途,传入参数的含义应该有所说明,如果取值范围确定,也应该一并说明,取值有特定含义的变量(如boolean类型变量),应给出每个值的含义

    (3)注释语法:单行注释、多行注释

    单行注释:注释前有两个连字符(–)对变量、条件子句可以采用该类注释

    多行注释:符号之间的内容为注释内容,对某项完整的操作建议使用该类注释

    (4)注释简洁,同时应描述清晰

    (5)函数注释:

    编写函数文本–如触发器、存储过程以及其他数据对象–时,必须为每个函数增加适当注释,该注释以多行注释为主,主要结构如下:

    CREATE PROCEDURE sp_xxx

    展开全文
  • 数据库修改表字段语句

    千次阅读 2020-10-13 18:52:08
    [修改选项] 修改选项的语法格式如下: { ADD COLUMN <列名> <类型> ---------------添加字段 | CHANGE COLUMN <旧列名> <新列名> <新列类型> --------------修改字段名称 | ALTER ...

    常用的语法格式如下:

    ALTER TABLE <表名> [修改选项]

    修改选项的语法格式如下:

    { ADD <列名> <类型> ---------------添加字段
    | CHANGE <旧列名> <新列名> <新列类型> --------------修改字段名称
    | ALTER <列名> { SET DEFAULT <默认值> | DROP DEFAULT } -----------修改字段默认值或者删除字段默认值
    | MODIFY <列名> <类型> -----------------修改字段数据类型
    | DROP <列名> --------------------删除字段
    | RENAME TO <新表名> } ------------------修改表名

    修改数据库表的某个字段默认值
    如果数据库表中该字段有默认值,需要先删除其默认值:

    alter table 表名 alter column 字段名 drop default;
    

    若没有默认值就直接设置即可:

    alter table 表名 alter column 字段名 set default 默认值;
    

    mysql 添加字段 修改字段为not null
    1.添加一个字段

    ALTER TABLE 表名 ADD 字段名 VARCHAR(16);
    

    2.修改字段为not null,还要把原来的类型也写出来

    ALTER TABLE 表名 MODIFY 字段名 VARCHAR(16) NOT NULL;
    

    3.更改列名

    alter table 表名 change 旧列名 新列名 新类型 not null;
    

    练习:牛客

    1.存在actor表,包含如下列信息:

    CREATE TABLE  actor  (
       actor_id  smallint(5)  NOT NULL PRIMARY KEY,
       first_name  varchar(45) NOT NULL,
       last_name  varchar(45) NOT NULL,
       last_update  datetime NOT NULL);
    

    现在在last_update后面新增加一列名字为create_date, 类型为datetime, NOT NULL,默认值为’2020-10-01 00:00:00’。

    #1.添加字段
    #alter table `actor` add  create_date datetime;
    #2.修改字段为not null
    # alter table `actor` modify create_date datetime not null;
    #3.设置字段的默认值
    #alter table `actor` alter column create_date set default '2020-10-01 00:00:00';
    #或者
    alter table `actor` add  create_date datetime not null default '2020-10-01 00:00:00';
    

    外键:

    创建表的时候创建外键:

    CREATE TABLE t_book(
    	id int primary key auto_increment,
    	bookName varchar(20),
    	author varchar(10),
    	price decimal(6,2),
    	bookTypeId int,
    	constraint `fk` foreign key (`bookTypeId`) references `t_bookType`(`id`)
    );
    

    已经创建好表,添加外键:

    alter table 表名 add constraint FK_ID(外键名称) foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);
    alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)
    

    四大排名函数:

    row_number、rank、dense_rank、ntile
    四大排名函数

    展开全文
  • 线上MySQL集群在新增表字段时的变更流程

    执行原理

    在这里插入图片描述

    大致步骤

    1. 创建与源表(tb)表结构相同的_tb_gho表,并执行 alter 语句,此时 _tb_gho为最终表结构
    2. 把源表(tb)已有数据 copy 到_tb_gho表;
    3. 在 copy 的过程中,会有新的数据过来,这些数据要同步到_tb_gho表,使用原理是模拟slave节点,回放binlog文件
    4. copy 和同步完成后,锁住源表(tb),交换表名,_tb_gho表替换源表(tb),此时tb(已经为最终目标表) ,_tb_gho(没有执行alter操作的源表)
    5. _tb_gho rename 为 _tb_del 表, 不会立即删除
    6. 一天后, 自动把_tb_del 表重命名为 _tb_del_xxx 表
    7. 两天后, 自动把_tb_del_xxx 表drop 掉, 释放空间

    不同阶段失败后如何处理

    • 如果第一步失败,退出程序
    • 如果会话A建表成功,加锁失败,退出程序,未加锁
    • rename请求来的时候,会话A死掉,lock会自动释放,同时因为tbl_old的存在rename也会失败,所有请求恢复正常
    • rename被blocked的时候,会话A死掉,lock会自动释放,同样因为tbl_old的存在,rename会失败,所有请求恢复正常
    • rename死掉,gh-ost会捕获不到rename,会话A继续运行,释放lock,所有请求恢复正常

    执行期间影响

    1. ghost 进行 DDL 数据 copy 的过程不会锁表, 但是会增加实例的压力, 压力过大时偶尔会有从库延迟的现象
    2. ghost copy 完数据并且 binlog 追上后, 进行切换, 切换过程会请求 MDL 锁并锁表 1s 左右(无法读写), 如果该表上有慢查询, 可能时间会更长, 期间 ghost 会检查当前被锁阻塞的线程数量, 大于 300 的阈值会触发保护机制, 自动释放锁并退出, 对应现象为下面的: 常见问题 - 1 . Execute: critical-load met
    展开全文
  • select t_tables.table_name, t_column.column_name, t_column.data_length, 'alter table ' || t_column.table_name || ' modify ' || t_column.column_name || ' varchar2(50);' as alter_sqlstr ...
  • 1.打开DataGrip,选择要修改的表 2.选中表名右键,选择【Modify Table】 3.双击选中要修改的字段 4.输入新增的字段属性 5.点击【Execute】 6.刷新表,右键表名,选择【Refresh】 7.完成,是不是很...
  • 数据库修改表字段类型

    万次阅读 2018-12-06 15:27:19
    alter table &lt;table name&gt; alter column &lt;column name&gt; type &lt;...如果原来是varchar等字符串类型,现在想要改成int类型,需要强制转换:alter table &...g...
  • 数据库表字段规范

    2019-09-26 09:26:32
    2.外键名字修改成’关联对象——id’(例如:study表patient_id),数据库不设外键约束。 3.所有字段都增加非空约束,防止业务逻辑报npe异常。 4.使用utf8mb4字符集,防止表情出现乱码。 5.所有字段增加注释。(除非...
  • ALTER TABLE 表名 MODIFY 字段 VARCHAR(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
  • 修改数据库表字段

    2015-11-07 09:53:58
    ALTER TABLE tableName MODIFY COLUMN columnName 类型(长度);
  • 数据库表字段设置默认值

    万次阅读 2021-11-22 09:25:22
    一、在数据库表中的操作方法 当表中的字段是varchar字段时可以这样设置: 例如我要设置status(状态这个字段默认为"1"),在创建表的时候sql语句可以这样写 `stats` varchar(1) CHARACTER SET utf8 NOT NULL ...
  • java获取数据库表字段

    2021-03-14 14:03:44
    4、数据字典 Admin 表: 字段名 id name password User 表:字段名 id name password sex age address postcard telephone Book 表:字段名 id name author ......1、 学生信息表(to_student) ( 这个数据库还没有 做好,...
  • 数据库表字段命名规范-程卓

    千次阅读 2021-03-14 15:46:44
    一、数据库表命名规范1.1数据表命名规范(1)采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔(2)全部小写命名,禁止出现大写(3)禁止使用数据库...
  • ALTER TABLE [tableName] ALTER COLUMN [columnName] NVARCHAR(MAX) 如:ALTER TABLE PE_Message ALTER COLUMN Title NVARCHAR(MAX) 转载于:...
  • Navicat导出数据库表字段

    千次阅读 2022-03-24 09:56:13
    在我们写数据库设计文档时,我们可能得到一份特定表的表结构数据表格(如图),而Navicat并没有直接给我们提供这个功能,该怎么办呢?
  • 达梦数据库表字段支持多媒体类型;达梦的多媒体类型包括TEXT、LONGVARCHAR、BLOB、CLOB、IMAGE、BFILE。 在协助用户做数据迁移时,用户提出按照标准模板要求修改表的多媒体类型列的字段类型,在使用alter table ...
  • 展开全部 个人觉得提的问题范围有些大e68a... 三、权限设置 编辑刚刚创建的用户的权限(如下图所示) 四、重新加载授权表 修改完用户权限以后需要回到 phpMyAdmin 的首页,重新加载一下授权(如下图)即可。
  • For each database:ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;# For each table:ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;...
  • 数据库表字段调整排序上移下移

    千次阅读 2020-11-13 17:22:50
    做之前是一点灵感没有的 看了下别人的做法数据库,设置浮点字段做排序序号,实现自定义排序 我仿照的做下来 Sort 字段改为 Float 类型 后面在 写代码的时候就发现一点点问题 每次移动位置就会小数点后面加一位这样...
  • MySQL数据库表字段命名规范

    千次阅读 2022-06-11 11:41:32
    MySQL数据库表字段命名规范,规范化数据库建表
  • 第一就是如果用数据库的锁,在两人同时修改提交的时候,肯定会有一个人的修改被退回导致操作被浪费,这是业务上不允许的; 第二就是业务上并不是只操作一张表,执行阶段操作的并不是主数据本身,而是他的一些附表;...
  • Oracle 修改数据库表字段类型

    千次阅读 2019-01-11 20:17:13
    alter table ACT_HI_TASKINST modify (DESCRIPTION_ VARCHAR2(4000)); alter table ACT_HI_TASKINST modify (DELETE_REASON_ VARCHAR2(4000)); 参考网址: https://www.cnblogs.com/langtianya/p/6148491.html... ...
  • 修改表字段长度sql

    千次阅读 2022-02-16 09:06:28
    ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型(修改后的长度) alter table EXAM_TEST modify STU_NAME VARCHAR2(100); alter table EXAM_TEST modify STU_NAME VARCHAR2(100);
  • 修改mysql 表字段

    千次阅读 2021-07-08 20:29:56
    1. 修改字段的长度 # 语法: ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型(修改后的长度) # 例子 ALTER TABLE attence MODIFY COLUMN id INT(20) 2. 修改字段的名称 # 语法: alter table <表名> ...
  • SQLite数据库表字段修改与删除

    千次阅读 2020-04-29 18:48:30
    SQLite数据库表字段修改与删除 sinat_36572506 2016-11-01 13:41:25 7554 收藏 展开 我创建一张表,但是在使用过程中发现字段名称会发生改变,但是SQLite数据库只允许增加表字段(alter table my_table add field_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,086
精华内容 18,834
热门标签
关键字:

修改数据库表字段内容