① update sql語句有哪些
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值,update語句的寫法:
1、UPDATE table_name
2、SET column1=value1,column2=value2,...
3、WHERE column(1)=value(1),column(2)=value(2)...and column(n)=value(n);
4、UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing',WHERE LastName = 'Wilson'
(1)mysqlupdatesql語句擴展閱讀
SQL語句中UPDATE的三種用法:
一、環境:
MySQL-5.0.41-win32
Windows XP professional
二、建立測試環境:
DROP TABLE IF EXISTS t_test;
CREATE TABLE t_test (
bs bigint(20) NOT NULL auto_increment,
username varchar(20) NOT NULL,
password varchar(20) default NULL,
remark varchar(200) default NULL,
PRIMARY KEY (bs)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=gbk;
INSERT INTO t_test VALUES (1,'lavasoft','123456',NULL);
INSERT INTO t_test VALUES (2,'hello',NULL,NULL);
INSERT INTO t_test VALUES (3,'haha',zz,tt);
三、測試
1、set一個欄位
在表t_test中設置第二條記錄(bs為2)的password為'***'。
update t_test t
set t.password = '***'
where t.bs = 2;
2、set多個欄位
在表t_test中設置第一條記錄(bs為1)的password為'*'、remark為'*'。
update t_test t
set t.password = '*', t.remark = '*'
where t.bs = 1;
3、set null值
在表t_test中設置第三條記錄(bs為3)的password為null、remark為null。
update t_test t
set t.password = null, t.remark = null
where t.bs = 3;
② mysql中一個update語句如何去寫
首先,單表的UPDATE語句:
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_definition]
[ORDER BY ...]
[LIMIT row_count]
其次,多表的UPDATE語句:
UPDATE [LOW_PRIORITY] [IGNORE] table_references
SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_definition]
UPDATE語法可以用新值更新原有錶行中的各列。
SET子句指示要修改哪些列和要給予哪些值。WHERE子句指定應更新哪些行。
如果沒有WHERE子句,則更新所有的行。如果指定了ORDER BY子句,則按照被指定的順序對行進行更新。
LIMIT子句用於給定一個限值,限制可以被更新的行的數目。
UPDATE語句支持以下修飾符:
1,如果您使用LOW_PRIORITY關鍵詞,則UPDATE的執行被延遲了,直到沒有其它的客戶端從表中讀取為止。
2,如果您使用IGNORE關鍵詞,則即使在更新過程中出現錯誤,更新語句也不會中斷。
如果出現了重復關鍵字沖突,則這些行不會被更新。如果列被更新後,新值會導致數據轉化錯誤,則這些行被更新為最接近的合法的值。
如果您在一個表達式中通過tbl_name訪問一列,則UPDATE使用列中的當前值。
例如,把年齡列設置為比當前值多一:
代碼如下:
mysql> UPDATE persondata SET age=age+1;
UPDATE賦值被從左到右評估。
例如,對年齡列加倍,然後再進行增加:
代碼如下:
mysql> UPDATE persondata SET age=age*2, age=age+1;
如果您把一列設置為其當前含有的值,則MySQL會注意到這一點,但不會更新。
如果您把被已定義為NOT NULL的列更新為NULL,則該列被設置到與列類型對應的默認值,並且累加警告數。
對於數字類型,默認值為0;對於字元串類型,默認值為空字元串('');對於日期和時間類型,默認值為「zero」值。
UPDATE會返回實際被改變的行的數目。Mysql_info() C API函數可以返回被匹配和被更新的行的數目,以及在UPDATE過程中產生的警告的數量。
您可以使用LIMIT row_count來限定UPDATE的范圍。LIMIT子句是一個與行匹配的限定。
只要發現可以滿足WHERE子句的row_count行,則該語句中止,不論這些行是否被改變。
如果一個UPDATE語句包括一個ORDER BY子句,則按照由子句指定的順序更新行。
您也可以執行包括多個表的UPDATE操作。table_references子句列出了在聯合中包含的表。
例子:
代碼如下:
SQL>UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;
說明:以上代碼顯示出了使用逗號操作符的內部聯合,但是multiple-table UPDATE語句可以使用在SELECT語句中允許的任何類型的聯合,比如LEFT JOIN。
注釋:不能把ORDER BY或LIMIT與multiple-table UPDATE同時使用。
在一個被更改的multiple-table UPDATE中,有些列被引用。您只需要這些列的UPDATE許可權。有些列被讀取了,但是沒被修改。您只需要這些列的SELECT許可權。
如果您使用的multiple-table UPDATE語句中包含帶有外鍵限制的InnoDB表,則MySQL優化符處理表的順序可能與上下層級關系的順序不同。
在此情況下,語句無效並被 回滾。同時,更新一個單一表,並且依靠ON UPDATE功能。
該功能由InnoDB提供,用於對其它表進行相應的修改。
目前,不能在一個子查詢中更新一個表,同時從同一個表中選擇。
update語句的幾種基本用法
A. 使用簡單的 UPDATE
下列示例說明如果從 UPDATE 語句中去除 WHERE 子句,所有的行會受到什麼影響。
下面這個例子說明,如果表 publishers 中的所有出版社將總部搬遷到喬治亞州的亞特蘭大市,表 publishers 如何更新。
代碼如下:
UPDATE publishers
SET city = 'Atlanta', state = 'GA'
本示例將所有出版商的名字變為 NULL。
復制代碼 代碼如下:
UPDATE publishers
SET pub_name = NULL
也可以在更新中使用計算值。本示例將表 titles 中的所有價格加倍。
代碼如下:
UPDATE titles
SET price = price * 2
B.把 WHERE 子句和 UPDATE 語句一起使用
WHERE 子句指定要更新的行例如,在下面這個虛構的事件中,北加利福尼亞更名為 Pacifica(縮寫為 PC),而奧克蘭的市民投票決定將其城市的名字改為 Bay City。這個例子說明如何為奧克蘭市以前的所有居民(他們的地址已經過時)更新表 authors。
代碼如下:
UPDATE authors
SET state = 'PC', city = 'Bay City'
WHERE state = 'CA' AND city = 'Oakland'
必須編寫另一個語句來更改北加利福尼亞其它城市的居民所在的州名。
C.通過 UPDATE 語句使用來自另一個表的信息
本示例修改表 titles 中的 ytd_sales 列,以反映表 sales 中的最新銷售記錄。
復制代碼 代碼如下:
UPDATE titles
SET ytd_sales = titles.ytd_sales + sales.qty
FROM titles, sales
WHERE titles.title_id = sales.title_id
AND sales.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
這個例子假定,一種特定的商品在特定的日期只記錄一批銷售量,而且更新是最新的。如果不是這樣(即如果一種特定的商品在同一天可以記錄不止一批銷售量),這里所示的例子將出錯。例子可正確執行,但是每種商品只用一批銷售量進行更新,而不管那一天實際銷售了多少批。這是因為一個 UPDATE 語句從不會對同一行更新兩次。
對於特定的商品在同一天可銷售不止一批的情況,每種商品的所有銷售量必須在 UPDATE 語句中合計在一起,如下例所示:
代碼如下:
UPDATE titles
SET ytd_sales =
(SELECT SUM(qty)
FROM sales
WHERE sales.title_id = titles.title_id
AND sales.ord_date IN (SELECT MAX(ord_date) FROM sales))
FROM titles, sales
D. 將 UPDATE 語句與 SELECT 語句中的 TOP 子句一起使用
這個例子對來自表 authors 的前十個作者的 state 列進行更新。
代碼如下:
UPDATE authors
SET state = 'ZZ'
FROM (SELECT TOP 10 * FROM authors ORDER BY au_lname) AS t1
WHERE authors.au_id = t1.au_id
以上就是mysql update語句用法的全部內容
③ 關於SQL的update語句
如果所有欄位都重復,而且系統不提供ROWID等隱藏列,或者RECNO()等函數,或者不能使用LIMIT
1指定只更新一條記錄,那麼你確實沒有辦法只處理裡面的一條記錄。
INFORMIX等資料庫為每一條記錄都增加了一個隱藏不可以刪除和修改的欄位--ROWID,利用這個欄位可以指定處理某一條記錄。
FOXPRO的資料庫,可以使用函數RECNO()返回記錄號,可以指定RECNO()值進行處理指定的記錄。
MYSQL資料庫的SQL語句可以使用LIMIT
1來指定(DELETE或者UPDATE)只操作前面的第一條數據。
如果你不是以上資料庫,也沒有這些東西支持,建議你給表增加一個自動編碼的欄位,然後就可以使用此欄位進行操作了。
④ SQL的update語句怎麼寫
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值,update語句的寫法:
1、UPDATE table_name
2、SET column1=value1,column2=value2,...
3、WHERE column(1)=value(1),column(2)=value(2)...and column(n)=value(n);
4、UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing',WHERE LastName = 'Wilson'
(4)mysqlupdatesql語句擴展閱讀
SQL的update語句寫法的特點
1、一體化:SQL集數據定義DDL、數據操縱DML和數據控制DCL於一體,可以完成資料庫中的全部工作。
2、使用方式靈活:它具有兩種使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主語言中使用。
3、非過程化:只提操作要求,不必描述操作步驟,也不需要導航。使用時只需要告訴計算機「做什麼」,而不需要告訴它「怎麼做」。
4、語言簡潔,語法簡單,好學好用:在ANSI標准中,只包含了94個英文單詞,核心功能只用6個動詞,語法接近英語口語。
⑤ mysql中的update語句怎麼寫
SQL UPDATE 命令
如果我們需要修改或更新 MySQL 中的數據,我們可以使用 SQL UPDATE 命令來操作。
具體語法參考:
from 樹懶學堂 - 一站式數據知識平台
注意:
你可以同時更新一個或多個欄位。
你可以在 WHERE 子句中指定任何條件。
你可以在一個單獨表中同時更新數據。
當你需要更新數據表中指定行的數據時 WHERE 子句是非常有用的。
⑥ sql update 語句是什麼
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值,update語句的寫法:
1、UPDATE table_name。
2、SET column1=value1,column2=value2,...。
3、WHERE column(1)=value(1),column(2)=value(2)...and column(n)=value(n)。
4、UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing',WHERE LastName = 'Wilson'。
SQL語句中UPDATE的三種用法:
一、環境:
MySQL-5.0.41-win32。
Windows XP professional。
二、建立測試環境:
DROP TABLE IF EXISTS t_test。
CREATE TABLE t_test 。
bs bigint(20) NOT NULL auto_increment。
username varchar(20) NOT NULL。
password varchar(20) default NULL。
remark varchar(200) default NULL。
PRIMARY KEY (bs)。
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=gbk。
INSERT INTO t_test VALUES (1,'lavasoft','123456',NULL)。
INSERT INTO t_test VALUES (2,'hello',NULL,NULL)。
INSERT INTO t_test VALUES (3,'haha',zz,tt)。
⑦ sql資料庫更新語句
sql更新資料庫語句
update語句用於更新修改指定記錄的數據,其用法為:
update
tbl_name
set
col_name1=value1,
col_name2=value2,
…
where
conditions
對符合條件的記錄,更新修改指定欄位的值。若沒有where條件限定,則對所有記錄進行更新修改。例如:
圖
4.23
更新記錄
⑧ sql中的update如何根據不同條件修改多條數據的同一列
如果只需要更新一個欄位,MYSQL和ORACLE語法是一樣的,在 set 後面跟一個子查詢即可。
現在需要同時更新2個欄位,最不經過大腦思考的方法就是 「為每個 set 後面都跟一個子查詢」,但是假如要 set 十個欄位或者更多欄位,很顯然,這樣在性能上是很不合適的方法。
同時更新多個欄位在MYSQL和ORACLE中的方法是不一樣,MYSQL需要連接表,ORACLE使用 set(...) 即可。
(8)mysqlupdatesql語句擴展閱讀
sql更新語句中update用法:
語法:
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
更新某一行中的一個列
為 lastname 是 "Wilson" 的人添加 firstname:
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
請注意 SQL UPDATE 語句中的 WHERE 子句!
WHERE 子句規定哪條記錄或者哪些記錄需要更新。如果您省略了 WHERE 子句,所有的記錄都將被更新!
⑨ mysql資料庫執行sql語句怎麼寫
Mysql常用命令詳解
Mysql安裝目錄
資料庫目錄
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相關命令
/usr/bin(mysqladmin mysqlmp等命令)
啟動腳本
/etc/init.d/mysql(啟動腳本文件mysql的目錄)
系統管理
連接MySQL
格式:
mysql -h 主機地址 -u用戶名 -p用戶密碼
例 1:連接到本機上的 MySQL。
hadoop@ubuntu:~$ mysql
-uroot -pmysql;
例 2:連接到遠程主機上的 MYSQL。
hadoop@ubuntu:~$ mysql -h
127.0.0.1 -uroot -pmysql;
修改新密碼
在終端輸入:mysql -u用戶名 -p密碼,回車進入Mysql。
>
use mysql;
> update user set password=PASSWORD('新密碼') where
user='用戶名';
> flush privileges; #更新許可權
> quit; #退出
增加新用戶
格式:grant select on 資料庫.* to
用戶名@登錄主機 identified by '密碼'
舉例:
例 1:增加一個用戶 test1 密碼為
abc,讓他可以在任何主機上登錄,並對所有資料庫有
查詢、插入、修改、刪除的許可權。首先用以 root 用戶連入
MySQL,然後鍵入以下命令:
mysql>grant select,insert,update,delete on *.* to
root@localhost identified by 'mysql';
或者
grant all privileges on *.* to
root@localhost identified by 'mysql';
然後刷新許可權設置。
flush privileges;
例
2:如果你不想 root 有密碼操作資料庫「mydb」里的數據表,可以再打一個命令將密碼消掉。
grant
select,insert,update,delete on mydb.* to root@localhost identified by
'';
刪除用戶
hadoop@ubuntu:~$ mysql
-u用戶名 -p密碼
mysql>delete from user where user='用戶名' and
host='localhost';
mysql>flush privileges;
//刪除用戶的資料庫
mysql>drop
database dbname;
資料庫操作
顯示所有的資料庫
mysql> show databases;(注意:最後有個
s)
創建資料庫
mysql> create database
test;
連接資料庫
mysql> use
test;
查看當前使用的資料庫
mysql> select
database();
當前資料庫包含的表信息
mysql>
show tables; (注意:最後有個 s)
刪除資料庫
mysql> drop database
test;
表操作
備注:操作之前使用「use
<資料庫名>」應連接某個資料庫。
建表
命令:create
table <表名> (<欄位名 1> <類型 1> [,..<欄位名 n> <類型
n>]);
例子:
mysql> create table MyClass(
> id int(4) not null
primary key auto_increment,
> name char(20) not null,
> sex int(4)
not null default '0',
> degree double(16,2));
獲取表結構
命令: desc 表名,或者show columns from
表名
例子:
mysql> describe MyClass
mysql> desc MyClass;
mysql>
show columns from MyClass;
刪除表
命令:drop table <表名>
例如:刪除表名為
MyClass 的表
mysql> drop table MyClass;
插入數據
命令:insert into <表名> [( <欄位名
1>[,..<欄位名 n > ])] values ( 值 1 )[, ( 值 n )]
例子:
mysql> insert
into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang',
96.59);
查詢表中的數據
查詢所有行
mysql>
select * from MyClass;
查詢前幾行數據
例如:查看錶 MyClass 中前 2 行數據
mysql>
select * from MyClass order by id limit 0,2;
或者
mysql> select * from
MyClass limit 0,2;
刪除表中數據
命令:delete from 表名 where 表達式
例如:刪除表
MyClass 中編號為 1 的記錄
mysql> delete from MyClass where id=1;
修改表中數據
命令:update 表名 set 欄位=新值,... where
條件
mysql> update MyClass set name='Mary' where id=1;
在表中增加欄位
命令:alter table 表名 add 欄位 類型
其他;
例如:在表 MyClass 中添加了一個欄位 passtest,類型為 int(4),默認值為 0
mysql> alter
table MyClass add passtest int(4) default '0'
更改表名
命令:rename table 原表名 to 新表名;
例如:在表
MyClass 名字更改為 YouClass
mysql> rename table MyClass to
YouClass;
更新欄位內容
命令:update 表名 set
欄位名 = 新內容
update 表名 set 欄位名 = replace(欄位名, '舊內容', '新內容');
例如:文章前面加入 4
個空格
update article set content=concat(' ', content);
資料庫導入導出
從資料庫導出資料庫文件
使用「mysqlmp」命令
首先進入 DOS
界面,然後進行下面操作。
1)導出所有資料庫
格式:mysqlmp -u [資料庫用戶名] -p
-A>[備份文件的保存路徑]
2)導出數據和數據結構
格式:mysqlmp -u [資料庫用戶名] -p
[要備份的資料庫名稱]>[備份文件的保存路徑]
舉例:
例 1:將資料庫 mydb 導出到 e:\MySQL\mydb.sql
文件中。
打開開始->運行->輸入「cmd」,進入命令行模式。
c:\> mysqlmp -h localhost -u
root -p mydb >e:\MySQL\mydb.sql
然後輸入密碼,等待一會導出就成功了,可以到目標文件中檢查是否成功。
例
2:將資料庫 mydb 中的 mytable 導出到 e:\MySQL\mytable.sql 文件中。
c:\> mysqlmp -h
localhost -u root -p mydb mytable>e:\MySQL\mytable.sql
例 3:將資料庫 mydb
的結構導出到 e:\MySQL\mydb_stru.sql 文件中。
c:\> mysqlmp -h localhost -u root -p
mydb --add-drop-table >e:\MySQL\mydb_stru.sql
備注:-h localhost
可以省略,其一般在虛擬主機上用。
3)只導出數據不導出數據結構
格式:
mysqlmp -u [資料庫用戶名] -p -t
[要備份的資料庫名稱]>[備份文件的保存路徑]
4)導出資料庫中的Events
格式:mysqlmp -u [資料庫用戶名] -p
-E [資料庫用戶名]>[備份文件的保存路徑]
5)導出資料庫中的存儲過程和函數
格式:mysqlmp -u [資料庫用戶名]
-p -R [資料庫用戶名]>[備份文件的保存路徑]
從外部文件導入資料庫中
1)使用「source」命令
首先進入「mysql」命令控制台,然後創建資料庫,然後使用該資料庫。最後執行下面操作。
mysql>source
[備份文件的保存路徑]
2)使用「<」符號
首先進入「mysql」命令控制台,然後創建資料庫,然後退出 MySQL,進入 DOS
界面。最後執行下面操作。
mysql -u root –p < [備份文件的保存路徑]