SQL 數據庫常用命令及語法舉例
SQL常用語句一覽 sp_password null,'新密碼','sa' 修改數據庫密碼(1)數據記錄篩選: sql="select * from 數據表 where 字段名=字段值 orderby 字段名 [desc] " sql="select * from 數據表 where 字段名 like '%字段值%' orderby 字段名 [desc]" sql="select top10 * from 數據表 where 字段名 orderby 字段名[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="selectsum(字段名)as別名from數據表where條件表達式" setrs=*(sql) 用rs("別名")獲取統的計值,其它函數運用同上。
(5)數據表的建立和刪除: CREATETABLE數據表名稱(字段1類型1(長度),字段2類型2(長度)……) 例:CREATETABLEtab01 (namevarchar (50), datetimedefaultnow ()) DROPTABLE數據表名稱(永久性刪除一個數據表) 4.記錄集對象的方法: *xt將記錄指針從當前的位置向下移一行 *evious將記錄指針從當前的位置向上移一行 *rst將記錄指針移到數據表第一行 *st將記錄指針移到數據表最后一行 *teposition=N將記錄指針移到數據表第N行 *tepage=N將記錄指針移到第N頁的第一行 *ze=N設置每頁為N條記錄 *unt根據pagesize的設置返回總頁數 *count返回記錄總數 *返回記錄指針是否超出數據表首端,true表示是,false為否 *返回記錄指針是否超出數據表末端,true表示是,false為否 *刪除當前記錄,但記錄指針不會向下移動 *添加記錄到數據表末端 *更新數據表記錄 SQL語句的添加、刪除、修改雖然有如下很多種方法,但在使用過程中還是不夠用,不知是否有高手把更多靈活的使用方法貢獻出來? 添加、刪除、修改使用*e(Sql)命令執行操作 ╔----------------╗ ☆ 數據記錄篩選 ☆ ╚----------------╝ 注意:單雙引號的用法可能有誤(沒有測式) Sql = "Select Distinct 字段名 From 數據表" Distinct函數,查詢數據庫存表內不重復的記錄 Sql = "Select Count(*) From 數據表 where 字段名1>#18:0:0# and 字段名1< #19:00# " count函數,查詢數庫表內有多少條記錄,“字段名1”是指同一字段 例: set rs=*e("select count(id) as idnum from news") * rs("idnum") sql="select * from 數據表 where 字段名 between 值1 and 值2" Sql="select * from 數據表 where 字段名 between #2003-8-10# and #2003-8-12#" 在日期類數值為2003-8-10 19:55:08 的字段里查找2003-8-10至2003-8-12的所有記錄,而不管是幾點幾分。 select * from tb_name where datetime between #2003-8-10# and #2003-8-12# 字段里面的數據格式為:2003-8-10 19:55:08,通過sql查出2003-8-10至2003-8-12的所有紀錄,而不管是幾點幾分。
Sql="select * from 數據表 where 字段名=字段值 order by 字段名 [desc]" Sql="select * from 數據表 where 字段名 like '%字段值%' order by 字段名 [desc]" 模糊查詢 Sql="select top 10 * from 數據表 where 字段名 order by 字段名 [desc]" 查找數據庫中前10記錄 Sql="select top n * form 數據表 order by newid()" 隨機取出數據庫中的若干條記錄的方法 top n,n就是要取出的記錄數 Sql="select * from 數據表 where 字段名 in ('值1','值2','值3')" ╔----------------╗ ☆ 添加數據記錄 ☆ ╚----------------╝ sql="insert into 數據表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)" sql="insert into 數據表 valuess (值1,值2,值3 …)" 不指定具體字段名表示將按照數據表中字段的順序,依次添加 sql="insert into 目標數據表 select * from 源數據表" 把源數據表的記錄添加到目標數據表 ╔----------------╗ ☆ 更新數據記錄 ☆ ╚----------------╝ Sql="update 數據表 set 字段名=字段值 where 條件表達式" Sql="update 數據表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式" Sql="update 數據表 set 字段1=值1,字段2=值2 …… 字段n=值n " 沒有條件則更新整個數據表中的指定字段值 ╔----------------╗ ☆ 刪除數據記錄 ☆ ╚----------------╝ Sql="delete from 。
MYSQL數據庫如何執行SQL語句
select @a=DRClass1, @b=DRClass2, @c=DRClass3, @d=DRClass4, @e=DRClass5 from Teacher Where TeacherID = @TeacherID create table classname(classname char(50)) insert into classname (classname) values (@a) if (@b is not null) begin insert into classname (classname) values (@b) if (@c is not null) begin insert into classname (classname) values (@c) if (@d is not null) begin insert into classname (classname) values (@d) if (@e is not null) begin insert into classname (classname) values (@e) end end end end select * from classname 以上這些SQL語句能不能轉成一個存儲過程?我自己試了下 ALTER PROCEDURE Pr_GetClass @TeacherID int, @a char(50), @b char(50), @c char(50), @d char(50), @e char(50) as select @a=DRClass1, @b=DRClass2, @c=DRClass3, @d=DRClass4, @e=DRClass5 from Teacher Where TeacherID = @TeacherID DROP TABLE classname create table classname(classname char(50)) insert into classname (classname) values (@a) if (@b is not null) begin insert into classname (classname) values (@b) if (@c is not null) begin insert into classname (classname) values (@c) if (@d is not null) begin insert into classname (classname) values (@d) if (@e is not null) begin insert into classname (classname) values (@e) end end end end select * from classname 但是這樣的話,這個存儲過程就有6個變量,實際上應該只提供一個變量就可以了 主要的問題就是自己沒搞清楚 @a,@b,@C,@d 等是臨時變量,是放在as后面重新做一些申明的,而不是放在開頭整個存儲過程的變量定義。
(標準化越來越近了):namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 實戰SQL語句收集(不斷更新中--) 前言:這里將我編程實踐中遇到的有價值的sql語句一路記下來,一方面方便自己查用,一方面也夯實下即將遺忘的回憶。整個過程中我會不斷更新,直到不能再加為止,同時,這里只記錄最實用的咚咚,不效仿學院派的那一套。
mysql數據庫執行sql語句怎么寫
Mysql常用命令詳解Mysql安裝目錄數據庫目錄/var/lib/mysql/配置文件/usr/share/mysql(*命令及配置文件)相關命令/usr/bin(mysqladmin mysqldump等命令)啟動腳本/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 ( [,.. ]);例子: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 MyClassmysql> desc MyClass;mysql> show columns from MyClass;刪除表命令:drop table 例如:刪除表名為 MyClass 的表mysql> drop table MyClass;插入數據命令:insert into [( [,.. ])] 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),默認值為 0mysql> alter table MyClass add passtest int(4) default '0'更改表名命令:rename table 原表名 to 新表名;例如:在表 MyClass 名字更改為 YouClassmysql> rename table MyClass to YouClass;更新字段內容命令:update 表名 set 字段名 = 新內容update 表名 set 字段名 = replace(字段名, '舊內容', '新內容');例如:文章前面加入 4 個空格update article set content=concat(' ', content);數據庫導入導出從數據庫導出數據庫文件使用“mysqldump”命令首先進入 DOS 界面,然后進行下面操作。
1)導出所有數據庫格式:mysqldump -u [數據庫用戶名] -p -A>[備份文件的保存路徑]2)導出數據和數據結構格式:mysqldump -u [數據庫用戶名] -p [要備份的數據庫名稱]>[備份文件的保存路徑]舉例:例 1:將數據庫 mydb 導出到 e:\MySQL\* 文件中。打開開始->運行->輸入“cmd”,進入命令行模式。
c:\> mysqldump -h localhost -u root -p mydb >e:\MySQL\*然后輸入密碼,等待一會導出就成功了,可以到目標文件中檢查是否成功。例 2:將數據庫 mydb 中的 mytable 導出到 e:\MySQL\* 文件中。
c:\> mysqldump -h localhost -u root -p mydb mytable>e:\MySQL\*例 3:將數據庫 mydb 的結構導出到 e:\MySQL\mydb_* 文件中。c:\> mysqldump -h localhost -u root -p mydb --add-drop-table >e:\MySQL\mydb_*備注:-h localhost 可以省略,其一般在虛擬主機上用。
3)只導出數據不導出數據結構格式:mysqldump -u [數據庫用戶名] -p -t [要備份的數據庫名稱]>[備份文件的保存路徑]4)導出數據庫中的Events格式:mysqldump -u [數據庫用戶名] -p -E [數據庫用戶名]>[備份文件的保存路徑]5)導出數據。
mysql數據庫怎么執行sql語句
首先創建連接
就創建個Cnnection對象,然后把驅動加上,還有帳號密碼什么的!我沒連過sql數據庫,不知道驅動,你可以在網上搜一下。
給你一個我連接mysql數據庫的例子
public Connection Getdata(){//這是連接數據庫的一個方法,還可以配置連接池。
Connection con=null;
try {
*e("*");//加驅動
con=*nection("jdbc:mysql://localhost:3306/data","root","qq");//數據庫路徑、端口、庫名、數據庫用戶名和密碼
} catch (ClassNotFoundException e) {
*tackTrace();
} catch (SQLException e) {
*tackTrace();
}
return con;
}
public void delete(int id){//對數據庫進行操作的方法,先調用上面寫好的連接!
Connection con=Getdata();
Statement st;
try {
st=*Statement();
*eUpdate("delete from kaoshi where id="+id);
} catch (SQLException e) {
// TODO Auto-generated catch block
*tackTrace();
}
}
mysql 數據庫 執行語句
1.利用臨時表
select articleid,min(chapterid) chapterid into temp table ttt from 一個表 where chaptertype=1;
delete from 一個表 where chaptertype=1 and articleid not in (select articleid from ttt);
2.這個實際上是替換
update 一個表 set chaptername=right(chaptername,len(chaptername)-len(articlename)) where left(chaptername,len(articlename))=articlename
sql 刪除語句
1、delete 語句用于刪除表中的行。
delete語句執行刪除的過程是每次從表中刪除一行,并且同時將該行的刪除操作作為事務記錄在日志中保存 語法:DELETE FROM 表名稱 WHERE 列名稱 = 值, 如:刪除student表中姓名為張三豐的學生信息-delete from studentwhere name='張三豐'; 2、drop (刪除表):刪除內容和定義,釋放空間。簡單來說就是把整個表去掉.以后要新增數據是不可能的,除非新增一個表。
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger)索引(index);依賴于該表的存儲過程/函數將被保留,但其狀態會變為:invalid。 3、truncate (清空表中的數據):刪除內容、釋放空間但不刪除定義(保留表的數據結構)。
與drop不同的是,只是清空表數據而已。 注意:truncate 不能刪除行數據,要刪就要把表清空。
擴展資料: 數據庫操作中,經常要用到刪除表和刪除表數據,在實際應用中,三者的區別是明確的。 當你不再需要該表時, 用 drop; 當你仍要保留該表,但要刪除所有記錄時, 用 truncate; 當你要刪除部分記錄時(always with a WHERE clause), 用 delete。
truncate 與delete 比較: 1、truncate table 在功能上與不帶 WHERE 子句的 delete語句相同:二者均刪除表中的全部行。 2、truncate 比 delete速度快,且使用的系統和事務日志資源少。
3、truncate 操作后的表比Delete操作后的表要快得多。
MySQL數據庫中,如何記錄SQL執行語句
-- 打開sql 執行記錄功能
set global log_output='TABLE'; -- 輸出到表
set global log=ON; -- 打開所有命令
執行記錄功能general_log, 所有語句: 成功和未成功的.
set global log_slow_queries=ON; -- 打開慢查詢 sql 記錄
slow_log, 執行成功的: 慢查詢語句和未使用索引的語句
set global long_query_time=0.1; -- 慢查詢時間限制(秒)
set global log_queries_not_using_indexes=ON; -- 記錄未使用索引的sql 語句
-- 查詢sql 執行記錄
select * from *_log order by 1; -- 執行成功的:慢查詢語句,和未
使用索引的語句
select * from *l_log order by 1; -- 所有語句: 成功和未成功的.-- 關閉sql 執行記錄