如果用函數的辦法比較麻煩 我想了個辦法 你試試
select A1.其他欄位,A1.B CC,A1.C BB FROM(SELECT 其他欄位,BB B,CC C FROM AA) A1 ;
這個結果會達到你的要求,但是如果在這張表改變的話 還要做些工作,是有點麻煩了.
如果用函數的話
你需要定義一個游標,然後遍歷 ,然後把那兩個欄位調換下位置, 還要刪除那行 ,然後插入新行.
B. 請教 怎麼在sql 指定位置添加新的欄位 命令是什麼啊
mysql可以實現,利用before和after 關鍵字就可以了
alter table xxx add 欄位1 before a
alter table xxx add 欄位2 after d
在bc之間也是一樣的寫法。
C. 在SQL表中,怎樣把原先的欄位改變位置
重新創建一個表:
1)把這個表rename ;
rename table1 to table2;
2)重新創建一個表
create table table1 as select ID,name,號碼,住址,關系 from table2;
3)增加其他索引等對象。
D. sql的一張表,我想改變其中兩個欄位的順序且表有值,該怎麼做
1. 資料庫表中的列順序沒有太大關系,你查詢時,將列順序調整好就可以了。
2. 如果確實要調整:
如果有外鍵(主要是被引用的情況),那麼先刪除,在下述工作完成後,再加上。
a. 將表備份: create table t_bak as select * from t;
b. 生成表的語法,將其中要調整的列調整。
c. 刪除表t
d. 重新建表t (調整後的語法)
e. 將數據復制回來: insert into t(欄位列表) select (欄位列表) from t_bak
E. 在sql表中如何移動欄位位置
建一個臨時表,把數據復制過去,刪除舊表
再建一個按你希望排序欄位的新表,把臨時表的數據復制到新表,刪除臨時表
F. 如何用SQL語句修改欄位的排序規則
創建數據表的時候,欄位在表中的排列位置就已經確定了。不過,使用ALTER TABLE語句可以改變欄位在表中的排列位置。
在MySQL中,修改欄位排列位置的基本語法格式如下:
ALTER TABLE 表名 MODIFY 欄位名1 數據類型 FIRST | AFTER 欄位名2;
其中:
•欄位名1:表示需要修改位置的欄位的名稱。
•數據類型:表示「欄位名1」的數據類型。
•FIRST:指定位置為表的第一個位置。
•AFTER 欄位名2:指定「欄位名1」插入在「欄位名2」之後。
MySQL欄位修改到第一個位置
FIRST參數可以指定欄位為表的第一個欄位。
實例:將ke369表中的stu_name欄位修改為該表的第一個欄位。操作步驟如下:
1. 使用DESC語句查看ke369表的結構,以查看stu_name欄位的排列位置。如下圖所示:
查看stu_name欄位的排列位置
從查詢結果中可以看出,stu_ www.hbbz08.com name欄位為ke369表的第二個欄位。
2. 將ke369表中的stu_name欄位修改為該表的第一個欄位。SQL代碼如下:
ALTER TABLE ke369 MODIFY stu_name VARCHAR(30) FIRST;
在DOS提示符窗口中查看MySQL欄位修改到第一個位置的操作效果。如下圖所示:
在DOS提示符窗口中查看MySQL欄位修改到第一個位置的操作效果
代碼執行完畢,結果顯示stu_name欄位修改成功。
3. 使用DESC語句重新查看ke369表的結構,以檢查stu_name欄位在該表中的新位置。如下圖所示:
檢查stu_name欄位在該表中的新位置
查詢結果顯示,stu_name欄位已經成為了ke369表中的第一個欄位,操作成功。
MySQL欄位修改到指定位置
「AFTER 欄位名2」參數可以將欄位重新設置到表中指定的欄位之後。
實例:將ke369表中num欄位更改到address欄位之後。操作步驟如下:
1. 從上圖中可以看出,num欄位排在address欄位的前面。
2. 將ke369表中num欄位更改到address欄位之後。SQL代碼如下:
ALTER TABLE ke369 MODIFY num INT(8) AFTER address;
在DOS提示符窗口中查看MySQL欄位修改到指定位置的操作效果。如下圖所示:
在DOS提示符窗口中查看MySQL欄位修改到指定位置的操作效果
代碼執行完畢,結果顯示num欄位修改成功。
3. 使用DESC語句重新查看ke369表的結構,以便檢查num欄位是否排在了address欄位後面。如下圖所示:
G. SQL2000表欄位位置如何移動
在表中新建一個欄位B,類型和欄位A一致,然後Inset A欄位的值到B欄位,再把A欄位刪除
H. MYSQL表中新增欄位指定位置,SQL語句該怎麼寫
數據表中添加一個欄位的SQL語句寫法為:
1、alter table 表名 ADD 欄位 類型 NOT NULL Default 0
2、ALTER TABLE employee ADD spbh varchar(20) NOT NULL Default 0
3、在表employee 中加入 spbh 類型是varchar大小20 不為空 默認值是0
(8)sql數據表調整欄位位置擴展閱讀:
其他常用sql語句:
1、修改數據表中某項欄位屬性,為其添加備注。
語句格式:comment on column 庫名.表名.欄位名 is '輸入的備注';
示例: 我要在ers_data庫中 test表 document_type欄位添加備注,則sql語句為:
comment on column ers_data.test.document_type is '文件類型';
2、刪除數據表中的某欄位。
語句格式:alter table 表名 drop (欄位);
I. SQLServer2008中,在已經建好的表,如何修改列的前後位置
在表的【設計】模式下,移動欄位的位置,無法保存並提示:【阻止保存要求重新創建表的更改】。
解決方案:在菜單欄依次選擇【工具】—>【選項】—>【Designers】,將【阻止保存要求重新創建表的更改】前的CheckBox對號去掉
J. 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作用),對於沒有指定的欄位以默認值插入。