Sql修改資料庫sql語句
① sql語言中修改表中數據的命令是什麼
SQL語言中修改表中數據的命令可以使用update。
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值;
更新修改語句 update table_name set col_name = xx where col_name = oo。
(1)Sql修改資料庫sql語句擴展閱讀
SQL語言修改資料庫,移動資料庫文件
ALTER DATABASE Publish SET OFFLINE/*將Publish資料庫設置為離線(離線)狀態*/
ALTER DATABASE Publish
MODIFY FILE
(
NAME = 'Publish_n1'
FILENAME = 'D:Publish.ndf'
) /*資料庫文件位置*/
ALTER DATABASE Publish SET ONLINE/*將資料庫設置為聯機狀態*/
② 修改資料庫的一個sql語句
Update 語句
Update 語句用於修改表中的數據,語法: update 表名 set 欄位名1=值1,... Where 關鍵字=值
1、使用Update語句,如果省略「 Where條件」,將更新數據表內的全部記錄。
2、賦值時,注意欄位的類型。若為文本型或備注型,則欄位值兩邊要加引號,若為日期/時間型,則欄位值兩邊要加上#號(加引號也可以);若為布爾類型,則該欄位的值為True或 False;若為自動編號類型,則不要給該欄位賦值。
拓展資料
批量修改數據
update 表名 set 欄位名=stuff(欄位名,1,3,'新內容');
如:將表test中name欄位的前3個字元改成'test'
update test set name=stuff(name,1,3,'test');
sqlserver stuff用法
1、作用
刪除指定長度的字元,並在指定的起點插入另一組字元。
2、語法
STUFF ( character_expression , start , length ,character_expression )
3、示例
在第一個字元串stringtest中刪除從第3個位置(字元r)開始的三個字元,然後在刪除的起始位置插入第二個字元串,返回一個新的字元串。
select stuff('stringtest',3,3,'ok'配胡稿)
結果 stroktest
4、參數
character_expression
一個字元數據表達式。character_expression可以是培孝常量、變數,也可以是字元列或二進制數據列。
start
一個整數,指定要刪除和插入的開始位置。如果start或length為負,則返回空字元串。如果start比第一個character_expression長,則返回空字元串。start可以是bigint類型。
length
一個整數,指定要刪除的字元串數。如果length比第一個character_expression長,則最多刪除到最後一個character_expression中的最後一個字元。length可以是bigint類型。
5、返回類型
如果character_expression是受支持的字元數據類型,則返回字元數據。如果character_expression是一個不受支持的binary數據類型,則返回二進制數據。
6、做碼備注
如果結果值大於返回類型支持的最大數,則產生錯誤
③ 用SQL語句隨便寫一條資料庫增刪改查語句
一、增:有2種方法
1.使用insert插入單行數據:
語法:insert [into] <表名> [列名] values <列值>
例:insert into Strdents (姓名,性別,出生日期) values ('王偉華','男','1983/6/15')
注意:如果省略表名,將依次插入所有列
2.使用insert,select語句將現有表中的 數據添加到已有的新表中
語法:insert into <已有的新表> <列名> select <原表列名> from <原表名>
例:insert into addressList ('姓名','地址','電子郵件')select name,address,email
fromStrdents
注意:查詢得到的數據個數、順序、數據類型等,必須與插入的項保持一致
二、刪:有2中方法
1.使用delete刪除數據某些數據
語法:delete from <表名> [where <刪除條件>]
例:delete from a where name='王偉華'(刪除表a中列值為王偉華的行)
注意:刪除整行不是刪除單個欄位,所以在delete後面不能出現欄位名
2.使用truncate table 刪除整個表的數據
語法:truncate table <表名>
例:truncate table addressList
注意:刪除表的所有行,但表的結構、列、約束、索引等不會被刪除;不能
用於有外建約束引用的表
三、改使用update更新修改數據
語法:update <表名> set <列名=更新值> [where <更新條件>]
例:update addressList set 年齡=18 where 姓名='王偉華'
注意:set後面可以緊隨多個數據列的更新值(非數字要引號);where子句是可選的(非數字要引號),用來限制條件,如果不選則整個表的所有行都被更新
四、查
語法:select <列名> from <表名> [where <查詢條件表達試>] [order by <排序的列
名>[asc或desc]]
1).查詢所有數據行和列
例:select * from a
說明:查詢a表中所有行和
2).查詢部分行列--條件查詢
例:select i,j,k from a where f=5
說明:查詢表a中f=5的所有行,並顯示i,j,k3列
3).在查詢中使用AS更改列名
例:select name as 姓名from a where gender='男'
說明:查詢a表中性別為男的所有行,顯示name列,並將name列改名為(姓名)顯示
4).查詢空行
例:select name from a where email is null
說明:查詢表a中email為空的所有行,並顯示name列;SQL語句中用is null或者is not null
來判斷是否為空行
5).在查詢中使用常量
例:select name '北京' as 地址 froma
說明:查詢表a,顯示name列,並添加地址列,其列值都為'北京'
6).查詢返回限制行數(關鍵字:top )
例1:select top 6 name from a
說明:查詢表a,顯示列name的前6行,top為關鍵字(oracle 中沒有top關鍵字
用rownum替代)
select * from a where rownum<6
7).查詢排序(關鍵字:order by , asc , desc)
例:select name
from a
where grade>=60
order by desc
說明:查詢表中成績大於等於60的所有行,並按降序顯示name列;默認為ASC升序
④ SQL語句修改資料庫中某列的值。
首先寫一個函數:函數功能,傳進來一個字元串,變小寫,從左到右循環,每循環兩次的時候,插入一個冒號,+1後再循環。以此類推。
這一套下來之後,結尾會多出一個冒號,記得用left幹掉最後一位。
返回處理完的字元串
函數完畢
最後執行sql
update 表 set 欄位=函數(欄位) where 條件
⑤ SQL 資料庫常用命令及語法舉例
SQL2000常用命令,語法使用方法
(1) 數據記錄篩選:
sql="select * from 數據表 where 欄位名=欄位值 order by 欄位名 [desc]"
sql="select * from 數據表 where 欄位名 like '%欄位值%' order by 欄位名 [desc]"
sql="select top 10 * from 數據表 where 欄位名 order by 欄位名 [desc]"
sql="select * from 數據表 where 欄位名 in ('值1','值2','值3')"
sql="select * from 數據表 where 欄位名 between 值1 and 值2"
(2) 更新數據記錄:
sql="update 數據表 set 欄位名=欄位值 where 條件表達式"
sql="update 數據表 set 欄位1=值1,欄位2=值2 …… 欄位n=值n where 條件表達式"
(3) 刪除數據記錄:
sql="delete from 數據表 where 條件表達式"
sql="delete from 數據表" (將數據表所有記錄刪除)
(4) 添加數據記錄:
sql="insert into 數據表 (欄位1,欄位2,欄位3 …) values (值1,值2,值3 …)"
sql="insert into 目標數據表 select * from 源數據表" (把源數據表的記錄添加到目標數據表)
(5) 數據記錄統計函數:
AVG(欄位名) 得出一個表格欄平均值
COUNT(*|欄位名) 對數據行數的統計或對某一欄有值的數據行數統計
MAX(欄位名) 取得一個表格欄最大的值
MIN(欄位名) 取得一個表格欄最小的值
SUM(欄位名) 把數據欄的值相加
引用以上函數的方法:
sql="select sum(欄位名) as 別名 from 數據表 where 條件表達式"
set rs=conn.execute(sql)
用 rs("別名") 獲取統的計值,其它函數運用同上。
(5) 數據表的建立和刪除:
CREATE TABLE 數據表名稱(欄位1 類型1(長度),欄位2 類型2(長度) …… )
例:CREATE TABLE tab01(name varchar(50),datetime default now())
DROP TABLE 數據表名稱 (永久性刪除一個數據表)
4. 記錄集對象的方法:
rs.movenext 將記錄指針從當前的位置向下移一行
rs.moveprevious 將記錄指針從當前的位置向上移一行
rs.movefirst 將記錄指針移到數據表第一行
rs.movelast 將記錄指針移到數據表最後一行
rs.absoluteposition=N 將記錄指針移到數據表第N行
rs.absolutepage=N 將記錄指針移到第N頁的第一行
rs.pagesize=N 設置每頁為N條記錄
2、更改表格
ALTER TABLE table_name
ADD COLUMN column_name DATATYPE
說明:增加一個欄位(沒有刪除某個欄位的語法。
ALTER TABLE table_name
ADD PRIMARY KEY (column_name)
說明:更改表得的定義把某個欄位設為主鍵。
ALTER TABLE table_name
DROP PRIMARY KEY (column_name)
說明:把主鍵的定義刪除。
3、建立索引
CREATE INDEX index_name ON table_name (column_name)
說明:對某個表格的欄位建立索引以增加查詢時的速度。
4、刪除
DROP table_name
DROP index_name
二、的資料形態 DATATYPEs
smallint
16 位元的整數。
interger
32 位元的整數。
decimal(p,s)
p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值,s是指小數
點後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。
float
32位元的實數。
double
64位元的實數。
char(n)
n 長度的字串,n不能超過 254。
varchar(n)
長度不固定且其最大長度為 n 的字串,n不能超過 4000。
graphic(n)
和 char(n) 一樣,不過其單位是兩個字元 double-bytes, n不能超過127。這個形態是為
了支援兩個字元長度的字體,例如中文字。
vargraphic(n)
可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000。
date
包含了 年份、月份、日期。
time
包含了 小時、分鍾、秒。
timestamp
包含了 年、月、日、時、分、秒、千分之一秒。
三、資料操作 DML (Data Manipulation Language)
資料定義好之後接下來的就是資料的操作。資料的操作不外乎增加資料(insert)、查詢資料(query)、更改資料(update) 、刪除資料(delete)四種模式,以下分 別介紹他們的語法:
1、增加資料:
INSERT INTO table_name (column1,column2,...)
valueS ( value1,value2, ...)
說明:
1.若沒有指定column 系統則會按表格內的欄位順序填入資料。
2.欄位的資料形態和所填入的資料必須吻合。
3.table_name 也可以是景觀 view_name。
INSERT INTO table_name (column1,column2,...)
SELECT columnx,columny,... FROM another_table
說明:也可以經過一個子查詢(subquery)把別的表格的資料填入。
2、查詢資料:
基本查詢
SELECT column1,columns2,...
FROM table_name
說明:把table_name 的特定欄位資料全部列出來
SELECT *
FROM table_name
WHERE column1 = xxx
[AND column2 > yyy] [OR column3 <> zzz]
三)交叉連接
交叉連接不帶WHERE 子句,它返回被連接的兩個表所有數據行的笛卡爾積,返回到結果集合中的數
據行數等於第一個表中符合查詢條件的數據行數乘以第二個表中符合查詢條件的數據行數。
例,titles表中有6類圖書,而publishers表中有8家出版社,則下列交叉連接檢索到的記錄數將等
於6*8=48行。
SELECT type,pub_name
FROM titles CROSS JOIN publishers
ORDER BY type
UNION運算符可以將兩個或兩個以上上SELECT語句的查詢結果集合合並成一個結果集合顯示,即執行聯合查詢。UNION的語法格式為:
select_statement
UNION [ALL] selectstatement
[UNION [ALL] selectstatement][…n]
其中selectstatement為待聯合的SELECT查詢語句。
ALL選項表示將所有行合並到結果集合中。不指定該項時,被聯合查詢結果集合中的重復行將只保留一
行。
聯合查詢時,查詢結果的列標題為第一個查詢語句的列標題。因此,要定義列標題必須在第一個查詢語
句中定義。要對聯合查詢結果排序時,也必須使用第一查詢語句中的列名、列標題或者列序號。
在使用UNION 運算符時,應保證每個聯合查詢語句的選擇列表中有相同數量的表達式,並且每個查詢選
擇表達式應具有相同的數據類型,或是可以自動將它們轉換為相同的數據類型。在自動轉換時,對於數值類
型,系統將低精度的數據類型轉換為高精度的數據類型。
在包括多個查詢的UNION語句中,其執行順序是自左至右,使用括弧可以改變這一執行順序。例如:
查詢1 UNION (查詢2 UNION 查詢3)
INSERT語句
用戶可以用INSERT語句將一行記錄插入到指定的一個表中。例如,要將雇員John Smith的記錄插入到本例的表中,可以使用如下語句:
INSERT INTO EMPLOYEES valueS
('Smith','John','1980-06-10',
'Los Angles',16,45000);
通過這樣的INSERT語句,系統將試著將這些值填入到相應的列中。這些列按照我們創建表時定義的順序排列。在本例中,第一個值「Smith」將填到第一個列LAST_NAME中;第二個值「John」將填到第二列FIRST_NAME中……以此類推。
我們說過系統會「試著」將值填入,除了執行規則之外它還要進行類型檢查。如果類型不符(如將一個字元串填入到類型為數字的列中),系統將拒絕這一次操作並返回一個錯誤信息。
如果SQL拒絕了你所填入的一列值,語句中其他各列的值也不會填入。這是因為SQL提供對事務的支持。一次事務將資料庫從一種一致性轉移到另一種一致性。如果事務的某一部分失敗,則整個事務都會失敗,系統將會被恢復(或稱之為回退)到此事務之前的狀態。
回到原來的INSERT的例子,請注意所有的整形十進制數都不需要用單引號引起來,而字元串和日期類型的值都要用單引號來區別。為了增加可讀性而在數字間插入逗號將會引起錯誤。記住,在SQL中逗號是元素的分隔符。
同樣要注意輸入文字值時要使用單引號。雙引號用來封裝限界標識符。
對於日期類型,我們必須使用SQL標准日期格式(yyyy-mm-dd)