jdbc
//1. 匯入外部的驅動包
class.forname("com.mysql.jdbc.driver");
//2. 載入驅動
//3. 建立連線 url:全球資源定位
connection conn = drivermanager.getconnection("jdbc:mysql:庫名?useunicode=true&characterencoding=utf-8", "root", "123456");
//?useunicode=true&characterencoding=utf-8 將資料進行相應的格式轉化,避免亂碼
string sql = "select * from user where money > ? and userid > ?";
//4. 建立preparedstatement物件
preparedstatement ps = conn.preparestatement(sql);
ps.setdouble(1, 10000);
ps.setint(2, 1003);
//5. 執行並獲得結果集
resultset rs = ps.executequery();
mysql
sql語句分類:
ddl:資料定義(對資料庫和表結構的,增、刪、改)
檢視所有資料庫:show databases
切換(選擇要操作的)資料庫:use 資料庫名
建立資料庫:create database [if not exists] mydb1 [charset=utf8]
刪除資料庫:drop database [if exists] mydb1
修改資料庫編碼:alter database mydb1 character set utf8
建立表:
create table [if not exists] 表名(
列名 列型別,
列名 列型別,
…… 列名 列型別
); 檢視當前資料庫中所有表名稱:show tables;
檢視指定表的建立語句:show create table 表名;
檢視表結構:desc 表名;
刪除表:drop table 表名;
修改表:字首為 alter table 表名
a) 新增列:
alter table 表名 add(
列名 列型別,
列名 列型別,
…… );
b) 修改類型別(如果被修改的列已存在資料,那麼新的型別可能會影響到已存在資料):alter table 表名 modify 列名 列型別;
c) 修改列名:alter table 表名 change 原列名 新列名 列型別;
d) 刪除列:alter table 表名 drop 列名;
e) 修改表名稱:alter table 原表名 rename to 新錶名;
** dml:資料操作(對錶記錄的操作,增、刪、改)
1. 插入資料
insert into 表名(列名1,列名2,…) values(值1,值2,…);
在表名後給出要插入的列名,其他沒有指定的列等同於插入null值。所以插入記錄總是插入一行;
在values後給出列值,值的順序和個數必須與前面指定的列對應;
在資料庫中所有的字元型別,必須使用單引號,不能使用雙引號,日期型別也要使用單引號
insert into 表名 values(列值1,值2);
沒有給出要插入的列,那麼表示插入的所有列;
值的個數必須是該表列的個數;
值的順序,必須與表建立時給出的列的順序相同。
修改資料
update 表名 set 列名1=列值1,列名2=列值2,… [where 條件]
條件(條件可選):
條件必須是乙個boolean型別的值或表示式:update t_person set gender=』男』, age=age+1 where sid=』1』;
運算子:=,!=,<>,>,<,>=,<=,between…and,in(…),is null,not,or,and
刪除資料
delete from 表名 [where 條件];
truncate table 表名:truncate是ddl語句,它是先刪除drop該錶,再create該錶,而且無法回滾。
dcl:資料控制
建立使用者
create user 使用者名稱@ip位址 identified by 『密碼』;
使用者只能在指定的ip位址上登入
create user 使用者名稱@』%』 identified by 『密碼』;
使用者可以在任意ip位址上登入
給使用者授權
grant 許可權1,……,許可權n on 資料庫.* to 使用者名稱@ip位址;
給使用者分派在指定的資料庫上的指定許可權
例如:grant create,alter,drop,insert,update,delete,select on mydb1.* to user1@localhost;
給user1使用者分派在mydb1資料庫上的create、alter、drop、insert、update、delete、select許可權
grant all on 資料庫.* to 使用者名稱@ip位址;
給使用者分派指定資料庫上的所有許可權
撤銷授權
revoke 許可權1,……,許可權n on 資料庫.* from 使用者名稱@ip位址;
撤銷指定使用者在指定資料庫上的指定許可權
例如:revoke create,alter,drop on mydb1.* from user1@localhost;
撤銷user1使用者在mydb1資料庫上的create、alter、drop許可權
檢視許可權
show grants for 使用者名稱@ip位址;
檢視指定使用者的許可權
刪除使用者
drop user 使用者名稱@ip位址;
*dql:資料查詢(對錶記錄的查詢操作)
基本查詢
字段(列)控制
查詢所有列
select * from 表名;
其中「*」表示所有列
查詢指定列
select 列1[,列2,……列n] from 表名;
完全重複的記錄只顯示一次
當查詢結果中的多行記錄完全一樣時,只顯示一行,一般用於查詢某個欄位中一共有幾種型別的值。
select distinct * | 列1[,列2,……,列n] from 表名;
例如:select distinct sal from emp;
查詢員工表的工資,如果存在相同的工資只顯示一次
列運算
數量型別的列可以做加、減、乘、除運算
select *,sal*1.5 from emp;
字串做算術運算時,會被當做0來進行運算,在字串中+號不代表拼接
字串型別可以做連續運算
select concat(『$』,sal) from emp;
轉換null值
有時需要把null轉換成其他值,例如com+1000時,如果com列存在null值,那麼null+1000還是null,而我們這是希望把null當做0來運算。
select ifnull(comm,0)+1000 from emp;
ifnull(comm,0):如果comm中存在null值,那麼當成0來運算;
給列起別名
當使用列運算後,查詢出的結果集中的列名稱不好看,這時我們需要給列名起個別名,這樣在結果集中列名就顯示別名了。
select ifnull(comm,0)+1000 as 獎金 from emp;
其中as可以省略
WCF簡單步驟
記錄乙個 內容對我有點深,以後可能有用。一 vs2008解決方案下新增 新建專案 wcf wcf服務庫 一般在這裡定義服務契約 資料契約,並實現。二 發布到iis上 vs2008解決方案下新增 新建 wcf服務 會有svc檔案和web.config檔案,要進行修改 然後 發布 記得在iis要讓其支援...
mysql效能優化簡單步驟
只有當查詢優化,索引優化,庫表結構優化齊頭並進時,才能實現mysql高效能。在嘗試編寫快速的查詢之前,需要清楚一點,真正重要是響應時間。查詢的生命週期 通常來說,查詢的生命週期大致可以按照順序來看 從客戶端 伺服器 然後再伺服器上進行解析 生成執行計畫 執行 並返回結果給客戶端。其中 執行 可以認為...
Filestream 使用簡單步驟
為了減少大檔案在資料庫的儲存對資料庫的讀寫效率造成的壓力,多了filestream這乙個功能,下面介紹一下如何快速使用filestream。1 開啟sqlserver例項對filestream 的開關,具體開關在 sql server配置管理器裡面,都開啟。2 開啟ssms 在例項配置 這樣就開啟了...