jdbc簡單步驟與mysql 基本語句

2021-08-21 19:25:25 字數 3938 閱讀 2890

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 在例項配置 這樣就開啟了...