altertable修改字段类型,alter table语句可以修改字段数据类型吗
MySQL数据表的修改:修改字段类型
4.4.3修改字段类型
??? 语句格式:ALTER TABLE 表名 MODIFY 字段名?数据类型;
在上面语句格式中,“表名”指定要修改的是哪个表,“MODIFY”表示要修改表中字段数据类型,“字段名”指定要修改表中哪个字段(的数据类型),“数据类型”指定表中字段要修改成的新数据类型。
下面截图中的“ALTER TABLE”语句将t_dept表中deptno字段数据类型由原来的 int(10)修改为varchar(20)。
Hive 修改表字段类型
1.Hive 表修改字段类型
Alter table 表名? change column 原字段名称 ?现字段名称? 数据类型
2.新增字段表
alter table 表名 add columns(字段名 数据类型)
3.时间类型的字段设置为date时显示不出来的问题
将时间类型的字段修改为string就可以正常显示了
sql修改字段值的范围
1、字段的修改
增加字段
ALTER TABLE 表名 ADD 新字段名数据类型[约束条件]
对语法格式的说明如下:
1.表名 为数据表的名字;
2.新字段名 为所要添加的字段的名字;
3.数据类型 为所要添加的字段能存储数据的数据类型;
4.[约束条件] 是可选的,用来对添加的字段进行约束。
SQL 默认在表的最后位置添加新字段,如果希望在开头位置(第一列的前面)添加新字段,那么可以使用 FIRST 关键字,语法格式如下:
ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] FIRST;
-- 给actor表首位添加create_date字段
ALTER TABLE actor ADD COLUMN create_date datetime not null DEFAULT '2020-10-01 00:00:00' FIRST;
复制
删除字段
ALTER TABLE 表名 DROP COLUMN 字段名
-- 将actor_new表的actor_id字段删除
alter table actor_new drop column actor_id;
复制
修改字段
1.修改字段名
ALTER TABLE 表名 RENAME COLUMN A to B
-- 将actor_new表的first_name字段名修改为first_name_new
alter table actor_new rename column first_name to first_name_new;
复制
2.修改字段类型
ALTER TABLE 表名 MODIFY COLUMN 字段名 类型
-- 将last_name字段数据类型由varchar(45)修改为char(45)
alter table actor_new modify column last_name char(45) not null;
复制
3.修改字段默认值
ALTER TABLE 表名 ALTER COLUMN 字段名 SET DEFAULT 默认值
若字段有默认值,则需要先删除字段的约束,在添加新的默认值
根据约束名称删除约束
alter table 表名 alter column 字段名 drop default
-- 若本身存在默认值,则先删除
alter table actor_new alter column last_name drop default;
-- 给last_name添加默认值'洛'
alter table actor_new alter column last_name set default '洛';
复制
4.修改字段位置
将字段的位置修改为数据表的开头位置,使用FIRST关键字将当前字段修改为数据表的第一个字段
ALTER TABLE 表名 MODIFY 字段名 数据类型 FIRST
-- 将字段first_name调整到actor表的首位
ALTER TABLE actor modify first_name varchar(45) FIRST;
复制
将选中字段修改到某字段之后
ALTER TABLE 表名 MODIFY 字段1名称 字段1数据类型 AFTER 字段2名称
-- 将字段first_name调整到last_name之后
ALTER TABLE actor MODIFY first_name varchar(45) AFTER last_name;
复制
2、数据的修改
增加数据
添加数据在SQL篇-创建数据表中有粗略的介绍,这里进行详细说明
1.插入一条新的数据 INSERT INTO 表名[(列1,列2,列3,…)]VALUES(值1,值2,值3,…)
-- 插入数据的sql语句
insert into tablename(col1,col2,col3) values (value1,value2,value3);
复制
2.通过子查询插入数据 INSERT INTO 表名[(列1,列2,列3,…)]子查询
-- 把actor_id=10的用户复制一遍
insert into tablename SELECT * FROM actor WHERE actor_id=10;
复制
删除数据
DELETE FROM 表名 [WHERE 删除条件]
注意:不写删除条件表示删除全部!
-- 删除演员编号是6的演员信息
delete from actor WHERE actor_id=6;
复制
更新数据
1.指定要更新数据的内容
UPDATE 表名 SET [字段=值,字段=值…][WHERE 更新条件]
-- 将SMITH(雇员编号为7)的工资修改为3000元,并且每个月有500元的奖金
update myemp set sal=3000,comm=500 where empno=7;
2.基于子查询的更新
UPDATE 表名 SET (列1,列2,…)=(SELECT 列1,列2,…FROM 表名) [WHERE 查询条件]
-- 将雇员7369的职位、基本工资、雇佣日期更新为与7839相同的信息
update myemp set (job,sal,hiredate) = (select job,sal,hiredate from myemp where empno=7839) where empno=7369;
3.更新替换
-- 将address字段里的 “东” 替换为 “西” ,如下
update test_tb set address=replace(address,'东','西') where id=2
4.插入替换
-- 将id=6的name字段值改为wokou
replace into test_tb VALUES(6,'wokou','新九州岛','日本')
注意:插入替换时,若进行部分替换,则表其余字段要有默认值,否则,要列出该列的所有值
总结:向表中“替换插入”一条数据,如果原表中没有id=6这条数据就作为新数据插入(相当于insert into作用),
如果原表中有id=6这条数据就做替换(相当于update作用),对于没有指定的字段以默认值插入。
Oracle修改字段名、字段数据类型
语句:
alter table tableName rename column oldCName to newCName; -- 修改字段名
alter table tableName modify (cloumnName 数据类型); -- 修改数据类型
例如:
1、创建表:
CREATE TABLE Student(
id varchar2(32) primary key,
name varchar2(8) not null,
age number
);
2、修改字段名:
alter table Student rename column name to StuName;
3、修改数据类型:
alter table Student modify (id varchar2(64));
清醒时做事,糊涂时读书,大怒时睡觉,独处时思考;做一个幸福的人,读书,旅行,努力工作,关心身体和心情,成为最好的自己
sql 修改字段类型
altertable表名altercolumn字段名typenotnull。
1、修改字段名:
altertable表名renamecolumnAtoB。
2、修改字段默认值:
altertable表名adddefault(0)for字段名withvalues,如果字段有默认值,则需要先删除字段的约束,在添加新的默认值。
3、增加字段:
altertable表名add字段名typenotnulldefault0。
5、删除字段:
altertable表名?dropcolumn字段名。
扩展资料:
alter其他用法
1.重命名表
ALTERTABLE【表名字】RENAME【表新名字】
2.删除表中主键
AlterTABLE【表名字】dropprimarykey
3.添加主键
ALTERTABLEsj_resource_chargesADDCONSTRAINTPK_SJ_RESOURCE_CHARGESPRIMARYKEY(resid,resfromid)
4.添加索引
ALTERTABLE?sj_resource_chargesaddindexINDEX_NAME(name);
5.?添加唯一限制条件索引
ALTERTABLEsj_resource_chargesadduniqueemp_name2(cardnumber);
6.删除索引
altertabletablenamedropindexemp_name;
7.联合唯一索引
ALTERTABLEtablename?ADDUNIQUEINDEXINDEX_NAME??(school_id,settlement_time);
alter?ignore?tabletablename?add?unique?index(user_id,user_name)
参考资料:百度百科——ALTERTABLE_SQL命令