mysql編程技巧 編程和資料庫管理篇 機械工業出版社
啟動:net start mysql
中止:net stop mysql
修改密碼:$MySQL_HOME>bin>mysqladmin -u root -p password new_password(設定新密碼為new_password,斷行符號後輸入舊密碼)
還可以,但是有錯誤mysql> set password for root=password("why810707");
ERROR 1133 (42000): Can't find any matching row in the user table
建立資料庫:create database mydata;
刪除資料庫:drop database mydata;
顯示資料庫:show databases;
開啟一個資料庫:use mydata;
顯示一個資料庫中的所有表:show tables;
建立資料表:create table data(id int(6),name varchar(20));
插入一條資料insert into table_name values ( , ' ', , , );
從文字檔匯入資料mysqlimport -u root -p mydata data.txt
刪除資料表:drop table data;
查詢資料表:select * from table_name;
匯出資料:mysqladmin creat target_db_name
mysql target_db_name<backup-file.sql
extended-status顯示伺服器狀態變數的名字和值
flush-hosts重新整理主機快取
flush-logs重新整理記錄檔
flush-privileges重新載入授權表
flush-status清楚狀態變數
flush-tables重新整理表的快取
version 檢索並顯示伺服器資訊
status:顯示伺服器簡短的狀態資訊
shutdown:指示伺服器關閉
reload:重新載入授權表
refresh:重新整理表的告訴緩衝並關閉和重新開啟記錄檔
kill id……
password new_password設定新密碼
ping檢查mysql伺服器是否在運行
\c取消當前查詢
-------------------------------------------------------------------------------
(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"
Sql = "Select Distinct 欄位名 From 資料表"
Distinct函數,查詢資料庫存表內不重複的記錄
Sql = "Select Count(*) From 資料表 where 欄位名1>#18:0:0# and 欄位名1< #19:00# "
count函數,查詢數庫表內有多少條記錄,“欄位名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]"
尋找資料庫中前10記錄
Sql="select top n * form 資料表 order by newid()"
隨機取出資料庫中的若干條記錄的方法
top n,n就是要取出的記錄數
Sql="select * from 資料表 where 欄位名 in ('值1','值2','值3')"
(2)更新資料記錄:
sql="update 資料表 set 欄位名=欄位值 where 條件運算式"
sql="update 資料表 set 欄位1=值1,欄位2=值2……欄位n=值n where 條件運算式"
Sql="update 資料表 set 欄位1=值1,欄位2=值2 …… 欄位n=值n "
沒有條件則更新整個資料表中的指定欄位值
(3)刪除資料記錄:
sql="delete from 資料表 where 條件運算式"
sql="delete from 資料表 "
(將資料表所有記錄刪除)
(4)添加資料記錄:
sql="insert into 資料表(欄位1,欄位2,欄位3…) values(值1,值2,值3…)"
sql="insert into 資料表 valuess (值1,值2,值3 …)"
不指定具體欄位名表示將按照資料表中欄位的順序,依次添加
sql="insert into 目標資料表 select * from 來源資料表"(把來源資料表的記錄添加到目標資料表)
(5)資料記錄統計函數:
AVG(欄位名)得出一個表格欄平均值
COUNT(*|欄位名)對資料行數的統計或對某一欄有值的資料行數統計
MAX(欄位名)取得一個表格欄最大的值
MIN(欄位名)取得一個表格欄最小的值
SUM(欄位名)把資料欄的值相加
引用以上函數的方法:
sql="selectsum(欄位名)as別名from資料表where條件運算式"
setrs=conn.excute(sql)
用rs("別名")擷取統的計值,其它函數運用同上。
(5)資料表的建立和刪除:
CREATETABLE資料表名稱(欄位1類型1(長度),欄位2類型2(長度)……)
例:CREATETABLEtab01 (namevarchar (50), datetimedefaultnow ())
DROPTABLE資料表名稱(永久性刪除一個資料表)
4.記錄集對象的方法:
rs.movenext將記錄指標從當前的位置向下移一行
rs.moveprevious將記錄指標從當前的位置向上移一行
rs.movefirst將記錄指標移到資料表第一行
rs.movelast將記錄指標移到資料表最後一行
rs.absoluteposition=N將記錄指標移到資料表第N行
rs.absolutepage=N將記錄指標移到第N頁的第一行
rs.pagesize=N設定每頁為N條記錄
rs.pagecount根據pagesize的設定返回總頁數
rs.recordcount返回記錄總數
rs.bof返回記錄指標是否超出資料表首端,true表示是,false為否
rs.eof返回記錄指標是否超出資料表末端,true表示是,false為否
rs.delete刪除目前記錄,但記錄指標不會向下移動
rs.addnew添加記錄到資料表末端
rs.update更新資料表記錄
----------------------------------------------------------------------
jsp中串連mysql
(1)載入驅動程式
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("jdbc.DriverXYZ");
(2)建立串連
String Url="jdbc:odbc:Fred";
Connection con=DriverManager.getConnection(Url,"myLogin","myPassword");
(3)執行sql語句
executeQuery()用於執行單個結果集的語句
executeUpdate()用於執行insert、update、delete之類的non-select語句