亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java數據庫知識點有哪些

發布時間:2021-11-02 15:49:32 來源:億速云 閱讀:160 作者:iii 欄目:編程語言

這篇文章主要介紹“Java數據庫知識點有哪些”,在日常操作中,相信很多人在Java數據庫知識點有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java數據庫知識點有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

知識點1SQLselect語句完整的執行順序。

1from子句組裝來自不同數據源的數據;

2where子句基于指定的條件對記錄行進行篩選;

3group by子句將數據劃分為多個分組;

4)使用聚集函數進行計算;

5)使用having子句篩選分組;

6)計算所有的表達式;

7select的字段;

8)使用order by對結果集進行排序。

知識點2SQL 之聚合函數

聚合函數是對一組值進行計算并返回單一的值的函數,它經常與select語句中的group by子句一同使用。

1avg():返回的是指定組中的平均值,空值被忽略。

2count():返回的是指定組中的項目個數。

3max():返回指定數據中的最大值。

4min():返回指定數據中的最小值。

5sum():返回指定數據的和,只能用于數字列,空值忽略。

6group by():對數據進行分組,對執行完group by之后的組進行聚合函數的運算,計算每一組的值。最后用having 去掉不符合條件的組,having子句中的每一個元素必須出現在select列表中。

 

知識點3:SQL之連接查詢

外連接:

左連接(左外連接):以左表作為基準進行查詢,左表數據會全部顯示出來,右表如果和左表匹配的數據則顯示相應字段的數據,如果不匹配則顯示為 null

右連接(右外連接):以右表作為基準進行查詢,右表數據會全部顯示出來,左表如果和右表匹配的數據則顯示相應字段的數據,如果不匹配則顯示為 null

全連接:先以左表進行左外連接,再以右表進行右外連接。

內連接:顯示表之間有連接匹配的所有行。

知識點4SQLsql注入

通過在 Web 表單中輸入(惡意)SQL 語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行 SQL 語句。舉例:當執行的 sql select * from user where username = “admin” or “a”=“a”時,sql 語句恒成立,參數 admin 毫無意義。防止 sql 注入的方式:

1)預編譯語句:如,select * from user where username = ?,sql 語句語義不會發生改變,sql 語句中變量用?表示,即使傳遞參數時為“admin or ‘a’= ‘a’”,也會把這整體當做一個字符創去查詢。

2Mybatis 框架中的 mapper 方式中的 # 也能很大程度的防止 sql 注入($無法防止 sql 注入)。

 

知識點5Mysql性能優化

1)當只要一行數據時使用 limit 1

查詢時如果已知會得到一條數據,這種情況下加上 limit 1 會增加性能。因為 mysql 數據庫引擎會在找到一條結果停止搜索,而不是繼續查詢下一條是否符合標準直到所有記錄查詢完畢。

2)選擇正確的數據庫引擎

Mysql 中有兩個引擎 MyISAM InnoDB,每個引擎有利有弊。MyISAM   適用于一些大量查詢的應用,但對于有大量寫功能的應用不是很好。甚至你只需要update 一個字段整個表都會被鎖起來。而別的進程就算是讀操作也不行要等到當前 update 操作完成之后才能繼續進行。另外,MyISAM 對于 select count(*)這類操作是超級快的。

InnoDB 的趨勢會是一個非常復雜的存儲引擎,對于一些小的應用會比 MyISAM 還慢,但是支持行鎖,所以在寫操作比較多的時候會比較優秀。并且,它支持很多的高級應用,例如:事物。

3)用 not exists 代替 not in

Not exists 用到了連接能夠發揮已經建立好的索引的作用,not in 不能使用索引。Not in 是最慢的方式要同每條記錄比較,在數據量比較大的操作紅不建議使用這種方式。

4)對操作符的優化,盡量不采用不利于索引的操作符

如:in      not in        is null        is not null <>等某個字段總要拿來搜索,為其建立索引:Mysql 中可以利用 alter table 語句來為表中的字段添加索引,語法為:alter table 表明add index (字段名)

知識點6Mysql 數據庫架構圖

Java數據庫知識點有哪些

知識點7Mysql性能優化

下面代碼創建了一個叫 pr_add MySQL 存儲過程,這個 MySQL 存儲過程有兩個 int 類型的輸入參數“a”“b”,返回這兩個參數的和。

1drop procedure if exists pr_add; (備注:如果存在 pr_add 的存儲過程,則先刪掉)

2)計算兩個數之和(備注:實現計算兩個整數之和的功能)

create procedure pr_add         (        a int,         b int )        begin        declare c int; if a is null then    set a = 0;

end if;

if b is null then set b = 0; end if;

set c = a + b;

select c as sum;

知識點8MySQL 中文亂碼問題完美解決方案

解決亂碼的核心思想是統一編碼。我們在使用 MySQL 建數據庫和建表時應盡量使用統一的編碼,強烈推薦的是 utf8 編碼,因為該編碼幾乎可以兼容世界上所有的字符。

數據庫在安裝的時候可以設置默認編碼,在安裝時就一定要設置為 utf8 編碼。設置之后再創建的數據庫和表如果不指定編碼,默認都會使用 utf8 編碼,省去了很多麻煩。數據庫軟件安裝好之后可以通過如下命令查看默認編碼:

1)查詢數據庫軟件使用的默認編碼格式

show variables like %colla%”;

show varables like “%char%”

2)修改數據庫默認編碼為 utf8

SET character_set_client='utf8';

SET character_set_connection='utf8';

SET character_set_results='utf8';

3)創建數據庫的時候指定使用 utf8 編碼

CREATE DATABASE `test`

CHARACTER SET 'utf8'

COLLATE 'utf8_general_ci';

4)創建表的時候指定使用 utf8 編碼

CREATE TABLE `database_user` (

`ID` varchar(40) NOT NULL default '',

`UserID` varchar(40) NOT NULL default '',

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

5)修改具體某數據庫或表的編碼

ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

到此,關于“Java數據庫知識點有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西乌珠穆沁旗| 灵宝市| 霍林郭勒市| 渭南市| 岑溪市| 秦皇岛市| 铁力市| 紫云| 宁津县| 扶余县| 桃江县| 左权县| 洛川县| 高密市| 永年县| 黎平县| 化隆| 新邵县| 奎屯市| 泰顺县| 双桥区| 晋宁县| 达日县| 易门县| 永寿县| 澎湖县| 麟游县| 平安县| 德昌县| 尉氏县| 永安市| 石台县| 鞍山市| 西乡县| 新昌县| 沿河| 永宁县| 太谷县| 紫金县| 如皋市| 万盛区|