數據庫基礎知識

關系模型:結構化數據模型
實體-關系模型
對象關系模型:基于對象的數據模型
半結構化數據模型:XML(擴展標記語言)

SQL:Structure Query Language結構化查詢語言
DML:數據操作語言
INSERT DELETE SELECT UPDATE
DDL:數據定義語言
CREATE DROP ALTER
DCL: 數據控制語言
GRANT REVOKE

RDB對象:
數據庫、表、索引、視圖、用戶、存儲過程、存儲函數、觸發器、事件調度器
約束: 域約束:數據類型約束
外鍵約束:引用完整性約束
主鍵約束:某字段能惟一標識此字段所屬的實體,并且不允許為空
一張表中只能有一個主鍵
惟一性約束:每一行的某字段都不允許出現相同值,可以為空
一張表中可以有多個
檢查性約束: check

關系運算:
投影:只輸出指定屬性
選擇:只輸出符合條件的行
自然連接:具有相同名字的屬性上所有取值相同的行;
笛卡爾積:(a+b)*(c+d)=ac+ad+bc+bd
并:集合運算

SQL語言的組成部分:
DDL
DML
完整性定義語言:DDL的一部分功能
視圖定義:
事務控制:
授權:DCL

使用程序設計語言和RDBMS交互:
動態SQL:程序設計語言使用函數(MySQL_connect())或者方法與RDBMS服務器建立連接,并進行交互;通過建立連接向SQL服務器發送查詢語句,并將結果保存至變量中而后進行處理;

行:定長,變長
文件中記錄組織
表結構定義文件,表數據文件
表空間:table space
數據字典:Data Dictionary

MariaDB:
特性:存儲引擎Aria XtraDB
更多的擴展
更多的測試工具

用戶密碼修改:
# mysqladmin -u USERNAME -h HOSTNAME password ‘NEW_PASS’ -p
SET PASSWORD FOR ‘USERNAME’@’HOST’=PASSWORD(‘new_pass’);
UPDATE MySQL.user SET PASSWORD=PASSWORD(‘new_pass’) WHERE CONDITION;

源碼安裝MariaDB
groupadd useradd mysql
tar xf mariadb-xx.tar.gz -C /usr/local
cd /usr/local/mariadb-xx
兼容性考慮 ln -sv mariadb-xx mysql
修改屬組chown -R root:mysql
目錄文件夾 建議邏輯卷
mariadb文件夾目錄scripts/mysql_install_db –user=mysql –datadir=/pathfile 元數據
服務啟動文件

MySQL客戶端工具:
MySQL
mysqldump
mysqladmin
mysqlcheck
mysqlimport

配置文件my.cnf及配置文件的查找次序 /etc/my.cnf –> /etc/MySQL/my.cnf –> $MySQL_HOME/my.cnf –> –default-extra-file=/path/to/somefile –> ~/.my.cnf
[mysqld]

數據類型:
數值型
精確數值 int
近似數值 float double
字符型
定長:CHAR(#)、BINARY
變長:VARCHAR(#)、VARBINARY
text, blob
ENUM, SET
日期時間型
date, time, datetime, timestamp
數據類型:
1、存入的值類型;
2、占據的存儲空間;
3、定長還變長;
4、如何比較及排序;
5、是否能夠索引;

MySQL> SHOW CHARACTER SET;
MySQL> SHOW COLLATION;
ag:CREATE TABLE test(ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, Name CHAR(20))
MySQL> SELECT LAST_INSERT_ID();

SQL語句:數據庫 表 索引 視圖 DML
數據庫語法:
CREATE DATABASE|SCHEMA [IF NOT EXISTS] db_name [CHARACTER SET=] [COLLATE=]
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1、直接定義一張空表;
2、從其它表中查詢出數據,并以之創建新表;
3、以其它表為模板創建一個空表;
語法:CREATE TABLE [IF NOT EXISTS] tb_name (col_name col_defination, constraint )

CREATE TABLE tb1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, Name CHAR(20) NOT NULL, Age TINYINT NOT NULL) ENGINE [=] engine_name

單字段:
PRIMARY KEY
UNIQUE KEY

單或多字段:
PRAMARY KEY (col,…)
UNIQUE KEY (col,…)
INDEX (col,…)
鍵也稱作約束,可用作索引,屬于特殊索引(有特殊限定):B+Tree

修改表定義:
ALTER TABLE
添加、刪除、修改字段
添加、刪除、修改索引
改表名
修改表屬性

刪除表:DELETE * FROM TABLE;

查詢語句類型:簡單查詢 多表查詢 子查詢
SELECT list FROM tb WHERE ID=X
SELECT * FROM tb_name;
SELECT [DISTINCT] * FROM tb_name WHERE ; 選擇

FROM子句: 要查詢的關系 表、多個表、其它SELECT語句
WHERE子句:關系表達式
邏輯關系:AND OR NOT
BETWEEN … AND …
LIKE ‘’
%: 任意長度任意字符
_:任意單個字符
REGEXP, RLIKE
IN
IS NULL
IS NOT NULL

ORDER BY field_name {ASC|DESC} 排序
LIMIT子句:LIMIT [offset,]Count
聚合函數:SUM(), MIN(), MAX(), AVG(), COUNT()
GROUP BY: 分組
HAVING qualification

視圖VIEW: 存儲下來的SELECT語句,是一張虛表;
基于基表的查詢結果
CREATE VIEW
物化視圖:SELECT

通過JDBC與Mysql數據庫交互:
更新操作:增 刪 改 。
Statement statement = null;
conn=getConnection();獲取連接
String sql = null;準備sql語句
sql = “insert update delete…”;
System.out.println(sql);
statement = conn.createStatement();獲取操作sql的createStatement對象
statement.executeUpdate();具體執行
statement!=null;
statement.close();
conn!=null
conn.close();關閉連接 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 查詢操作:
Connection conn = null;
Statement statement = null;
ResultSet rs = null;
conn=getConnection();獲取連接
statement = conn.createStatement();獲取操作sql的createStatement對象
String sql = null;
sql = “select…”;準備sql
rs = statement.executeQuery();執行查詢 得到ResultSet
處理ResultSet
while(rs.next()){
int id = rs.getInt(1);
String name = rs.getStirng(“name”);
}

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87561

(0)
cuicui
上一篇 2017-09-25
下一篇 2017-09-25

相關推薦

  • Trap命令簡介

     Trap命令簡介     一、基本概念  trap是一個shell內建命令,它用來在腳本中指定信號如何處理。比如,按Ctrl+C會使腳本終止執行,實際上系統發送了SIGINT信號給腳本進程,SIGINT信號的默認處理方式就是退出程序。如果要在Ctrl +C不退出程序,那么就得使用trap命令來指定一下SIGINT的處…

    Linux干貨 2015-05-11
  • Linux man中文幫助安裝

    雖然在CentOS操作系統中具有多語言包,但其man手冊是英文的,對于新手來說能夠使用中文man手冊將加快學習速度

    CentOS系統安裝中文man手冊

    Linux干貨 2017-11-26
  • raid介紹及邏輯卷與邏輯卷快照應用

    高級文件系統管理 配置配額系統 綜述 在內核中執行,以文件系統為單位啟用,對不同組或者用戶的策略不同,如將home單獨分區,但是并不意味著每個用戶都可以無上限使用該分區的空間,所以系統管理員要據塊或者節點進行限制,限制每個用戶使用磁盤的空間,當到達執行軟限制( soft limit  )  會警報提醒用戶;當硬限制( hard limit…

    Linux干貨 2016-09-02
  • Linux網絡屬性管理(二)

    Linux網絡屬性(二) Linux 網絡屬性管理(二) ip命令 ip – show / manipulate routing, devices, policy routing and tunnels ip [ OPTIONS …

    Linux干貨 2016-07-07
  • Linux中一些常用的命令(一)

    ls命令 ls命令:用來列出當前目錄的內容或指定目錄,是使用頻率較高的命令 -l:以長格式顯示目錄下的內容列表。輸出的信息從左到右依次包括文件名,文件類型、權限模式、硬連接數、所有者、組、文件大小和文件的最后修改時間等 -a:列出所有隱藏文件和目錄 -h:以人類可讀的方式將文件或者目錄大小顯示出來 -R:把當前目錄下的目錄的所有內容列出來(遞歸) -d:顯示…

    Linux干貨 2017-03-30
  • N25-第19周博客作業

    1、描述Tomcat的架構; 2、詳細解釋Tomcat的配置文件及配置文件中的參數所代表的含義; 3、配置apache通過mod_proxy模塊與Tomcat連接的詳細過程; 4、配置基于mod_jk的負載均衡; 5、配置tomcat集群,能夠實現用戶的session會話保持。 1、描述Tomcat的架構; Tomcat組件,分為4類: 頂層類組件:包括&l…

    2017-05-21
欧美性久久久久