sql值欄位
實現只顯示為某值的欄位,可以通過行列轉換實現。
以下是以sql server為例來說明:
select b.stu_name,
max(case a.subject when '語文' then a.grade else '' end) as 語文,
max(case a.subject when '數學' then a.grade else '' end) as 數學,
max(case a.subject when '英語' then a.grade else '' end) as 英語
from stu_grade a,stu_master b
where a.stu_no=b.stu_no
group by b.stu_name
資料庫為oralce的話執行
select b.stu_name,
max(case a.subject when '語文' then to_char(a.grade) else '' end) as 語文,
max(case a.subject when '數學' then to_char(a.grade) else '' end) as 數學,
max(case a.subject when '英語' then to_char(a.grade) else '' end) as 英語
from stu_grade a,stu_master b
where a.stu_no=b.stu_no
group by b.stu_name
2. sql欄位值添加
--sqlserver:
update表名setA=A+','+B;
--oracle:
update表名setA=A||','||B;
--mysql:
selectconcat('123','456');
update表名setA=concat(A,',',B);
3. sql添加新的欄位值
你是什麼資料庫管理系統,不同的資料庫語法上稍微有一些差別,不過差別不是太大,可以用insert語句往表裡插入欄位值,語句為string sql=「insert 表名 values(16,55,'22',123456,'hehe')」。注意這里插入值的時候要注意欄位類型,若為數值型,則不用加單引號,否則必須加單引號
4. 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作用),對於沒有指定的欄位以默認值插入。
5. sql資料庫怎麼把一個欄位的值
sql資料庫中如何能讓表中一個欄位的數據等於一個查詢中某個欄位的數據
可以有多種方式:
常見的可以考慮使用表連接的方式。
推導步驟如下
1:構建查詢獲得某個欄位的值
select b.值 from 表1 a
inner join表2 b
on a.關聯欄位=b.關聯欄位
2:構建更新
update 表1
set 更新欄位=值
3:整合兩個步驟
update 表1
set 更新欄位=b.值 from 表1 a
inner join表2 b
on a.關聯欄位=b.關聯欄位
6. 如何用Sql語句添加欄位
ALTER COLUMN 欄位類型 [(字長)] | CONSTRAINT 多重欄位索引 } | DROP DROP{COLUMN 欄位 I CONSTRAINT 索引名 } } ALTER TABLE 語句分為以下幾個部分:部分 說明table 欲修改的表之名稱。 field 欲在表內增加或刪除的欄位的名稱。或表內欲被替換的欄位名稱。 type 欄位的數據類型。 size 欄位的字元長度 (文本及二進制欄位)。 indexname 欲刪除的多重欄位索引的名稱。 說明使用 ALTER TABLE 語句,可用多種不同方法更改當前已存在的表:你可以: 使用 ADD COLUMN 在表中添加新的欄位。需要指定欄位名、數據類型、還可以 (對文本和二進制欄位)指定長度。例如,下列語句在員工表中增加一 25 個字元的、名為 Notes 的文本欄位: ALTER TABLE Employees ADD COLUMN Notes TEXT(25) 也可以定義此欄位的索引。關於單一欄位索引的詳細信息,請參閱CONSTRAINT 子句主題。 如果對一欄位指定 NOT NULL,則在這欄位中添加的新記錄必須有有效的數據。 使用ALTER COLUMN改變一個當前欄位的數據類型,需要指定欄位名、新數據類型、還可以 (對文本和二進制欄位)指定長度。例如,下列語句把雇員表中一個欄位的數據類型, 被稱為ZipCode(最初被定義為整數),改變成一個10字元文本欄位: ALTER TABLE Employees ALTER COLUMN ZipCode TEXT(10) 使用 ADD CONSTRAINT 添加多重欄位索引。關於多重欄位索引的詳細信息,請參閱 CONSTRAINT 子句主題。 使用 DROP COLUMN 刪除欄位。只要指定欲刪除的欄位名即可。 使用 DROP CONSTRAINT 刪除多重欄位索引。只要在 CONSTRAINT 保留字後面指定索引名即可。 --------------------------------------------------------------------------------注意不能同時添加或刪除一個以上的欄位或索引。 你可以使用 CREATE INDEX 語句在一個表中增加一個單欄位或多重欄位,你還可以使用 ALTER TABLE 或 DROP 語句刪除一個由ALTER TABLE或CREATE INDEX建立的索引。 可以在單一欄位上使用 NOT NULL,或在用於單一欄位或多重欄位(名為 CONSTRAINT) 的 CONSTRAINT 子句中使用 NOT NULL。但是,一個欄位只能使用一次 NOT NULL 限制。嘗試多次應用此限制將導致運行錯誤。
7. SQL如何添加欄位
增加欄位: alter table [表名] add 欄位名 smallint default 0 增加數字欄位,整型,預設值為0。
alter table [表名] add 欄位名 int default 0 增加數字欄位,長整型,預設值為0。
alter table [表名] add 欄位名 single default 0 增加數字欄位,單精度型,預設值為0。
alter table [表名] add 欄位名 double default 0 增加數字欄位,雙精度型,預設值為0。
alter table [表名] add 欄位名 Tinyint default 0 增加數字欄位,位元組型,預設值為0。
alter table [表名] add 欄位名 text [null] 增加備注型欄位,[null]可選參數。
alter table [表名] add 欄位名 memo [null] 增加備注型欄位,[null]可選參數。
alter table [表名] add 欄位名 varchar(N) [null] 增加變長文本型欄位大小為N(1~255)。
alter table [表名] add 欄位名 char [null] 增加定長文本型欄位大小固定為255。
(7)sql值欄位擴展閱讀
全局變數
全局變數是sql server(WINDOWS平台上強大的資料庫平台)系統內部使用的變數,其作用范圍並不局限於某一程序,而是任何程序均可隨時調用全局變數通常存儲一些sql server(WINDOWS平台上強大的資料庫平台)的配置設定值和效能統計數據。
用戶可在程序中用全局變數來測試系統的設定值或Transact-SQL命令執行後的狀態值。有關sql server(WINDOWS平台上強大的資料庫平台) 全局變數的詳細情況請參見附錄。
注意:全局變數不是由用戶的程序定義的,它們是在伺服器級定應義的。只能使用預先說明及定義的變局變數。引用全局變數時,必須以「@@」開頭。局部變數的名稱不能與全局變數的名稱相同、否則會在應用中出錯。
8. 如何使用sql語句修改數據表中欄位的值
語句為:update ,作用是修改表中的數據。
格式為:
Update表名set列名=值
where條件
9. SQL 語句 以某一個欄位為條件 修改某一個欄位的值
示例:表名: poetry ;欄位:p_type; 條件:p_type='1001';
SQL 語句: 「Update poetry Set p_type ='aaa' Where p_type ='1001'」
(9)sql值欄位擴展閱讀:
Update 語句
Update 語句用於修改表中的數據。
語法 :UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值