本文目錄一覽:
- 1、資料庫(mysql)關鍵知識
- 2、mysql怎麼創建資料庫表
- 3、mysql如何在登錄時指定連接的資料庫?
- 4、MySql怎麼插入和查詢二進位數據
- 5、mysql 命令怎麼選擇資料庫
- 6、mysql 怎麼選擇資料庫 百度經驗
資料庫(mysql)關鍵知識
Mysql是目前互聯網使用最廣的關係資料庫,關係資料庫的本質是將問題分解為多個分類然後通過關係來查詢。 一個經典的問題是用戶借書,三張表,一個用戶,一個書,一個借書的關係表。當需要查詢某個用戶借書情況或者是書被那些人借了,就用關係查詢來實現。
關係資料庫範式
來自英文Normal form,簡稱NF。要想設計—個好的關係,必須使關係滿足一定的約束條件,滿足這些規範的資料庫是簡潔的、結構明晰的,同時,不會發生插入(insert)、刪除(delete)和更新(update)操作異常。總共有六種範式:第一範式(1NF)、第二範式(2NF)、 第三範式 (3NF)、巴斯-科德範式(BCNF)、 第四範式 (4NF)和 第五範式 (5NF,又稱完美範式)。
1NF是指資料庫表的每一列都是不可分割的原子數據項。2NF必須滿足1NF,要求資料庫表中的每行記錄必須可以被唯一地區分。3NF在2NF基礎上,任何非主 屬性 不依賴於其它非主屬性(在2NF基礎上消除傳遞依賴)。BCNF是在3NF基礎上,任何非主屬性不能對主鍵子集依賴(在3NF基礎上消除對主碼子集的依賴), 滿足BCNF不再會有任何由於函數依賴導致的異常,但是我們還可能會遇到由於多值依賴導致的異常。4NF的定義很簡單:已經是BC範式,並且不包含多值依賴關係。5NF處理的是無損連接問題,這個範式基本沒有實際意義,因為無損連接很少出現,而且難以察覺。而域鍵範式試圖定義一個終極範式,該範式考慮所有的依賴和約束類型,但是實用價值也是最小的,只存在理論研究中。
Catalog和Schema
是資料庫對象命名空間中的層次,主要用來解決命名衝突的問題。從概念上說,一個資料庫系統包含多個Catalog,每個Catalog又包含多個Schema,而每個Schema又包含多個資料庫對象(表、視圖、欄位等)。但是Mysql的資料庫名就是Schema,不支持Catalog。
Mysql的資料庫引擎主要有兩種MyISAM和InnoDB,MyISAM支持全文檢索,InnoDB支持事務。
SQL中的通配符『%』代表任意字元出現任意次數。『_』代表任意字元出現一次。SQL與正則表達式結合查詢一般用在WHERE table_name REGEXP ‘^12.34’。子查詢是從裡到外執行。
資料庫聯結(join)涉及到外鍵,外鍵是指一個表的列是另一個表的主鍵,那麼它就是外鍵。笛卡爾積聯結(不指定聯結條件時)生成的記錄條目是單純的第一個表的行乘以第二個表的列數。用得最多的是等值聯結也叫內部聯結。
高級聯結還有自連接,是指查詢中的兩張表是同一張表,它通常作為外部語句用來代替從相同表中檢索數據時使用的子查詢。自然聯結使每個列只返回一次。外部聯結是指聯結包含了那些在相關表中沒有關聯行的行。例如列出所有產品及其訂購數量,包括沒有人訂購的產品。LEFT OUTER JOIN指選擇左邊表的所有行。
組合查詢是指採用UNION等將兩個查詢結果取並集。
視圖是查看存儲在別處的數據的一種工具,它本身並不包含數據,因此表的數據修改了,視圖返回的數據也將隨之修改,因此如果使用了複雜或嵌套視圖會對性能有較大的影響。視圖的作用之一是隱藏複雜的SQL通常會涉及到聯結查詢。
存儲過程類似於批處理,包含了一條或多條SQL語句。語法:
CREATE PROCEDURE name()
BEGIN
SQL
END
————————-
CALL name()//來調用存儲過程
游標有DECLARE定義,游標與存儲過程是綁定的,存儲過程處理完成,游標就會消失。游標被打開後可以使用FETCH語句訪問每一行。
觸發器是在某個時間發生時自動執行某條SQL語句。語法:
CREATE TRIGGER name AFTER INSERT ON talbe_name FOR EACH ROW
事務處理可以維護資料庫的完整性,保證批量的操作要麼完全執行,要麼完全不執行。包括事務、回退、提交、保留點幾個關鍵術語。ROLLBACK只能在一個事務處理內使用。他不能回退CREATE和DROP操作。使用COMMIT保證事務提交。複雜的事務處理需要部分提交或回退,因此我們需要使用保留點SAVEPOINT。可以使用ROLLBACK TO savepoint_name。保留點越多越好。保留點在事務執行完成後自動釋放。
mysql怎麼創建資料庫表
01
MySql創建資料庫指定字符集
創建資料庫指定字符集:
UTF8
CREATE DATABASE xiaoyao_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
GBK
CREATE DATABASE xiaoyao_db DEFAULT CHARACTER SET gbk COLLATE gbk_general_ci
02
MySql創建表並設定為主鍵自動增值
CREATE TABLE person
(
personID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(personID),
FirstName varchar(15),
LastName varchar(15),
Age int
)
//創建admin表
CREATE TABLE `admin`
(
`id` INT(11) NOT NULL AUTO_INCREMENT,
`username` CHAR(20) NOT NULL,
`password` CHAR(32) NOT NULL,
`email` CHAR(32) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB AUTO_INCREMENT=1;
03
MySql在PHP語句中insert into
INSERT INTO table_name (column1,column2,column3,…) VALUES (values1,values2,values3….);
04
Mysql在PHP語句中update語法
UPDATE table_name SET column_name = new_value WHERE column_name = some_value
05
Mysql在PHP語句中Delete from語法
DELETE FROM table_name WHERE column_name = some_values;
06
注意兩點:
1、MySql在PHP語句中insert into常錯點
mysql_query(「insert into admin(username,password,age) values(『vaule』,』vaule』,』vaule』)」);
上面語句執行之前,應該先執行mysql_query(「set names utf8」);以防止數據插入數據之後出現亂碼!
2、MySql在PHP語句中update常錯點
update數據之前進行mysql_query(「set names utf8」)語句執行,這樣才會成功更新數據
mysql如何在登錄時指定連接的資料庫?
MySQL資料庫登錄方法:要完成登錄操作,首先要進入機器的命令行界面並輸入如下所示的命令: mysql -h hostname -u username -p mysql命令將調用mySQL監視程序。這是一個可以將我們連接到mySQL伺服器客戶端的命令行公開。
MySql怎麼插入和查詢二進位數據
以PHP腳本為例。PHP一般只支持小於2M的文件,假如要存取大於2M的文件,那就要進系統方面的設置了。具體操作如下:
首先創建測試表testtable
CREATE TABLE testtable ( id INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,filename CHAR(255),data LONGBLOB );
將文件存入表中使用如下PHP代碼
?php
mysql_connect( “localhost”, “root”, “password”); //連接資料庫
mysql_select_db( “database”); //選定資料庫
$filename=”” //這裡填入二進位文件名
$data = addslashes(fread(fopen($filename, “r”), filesize($filename)));//打開文件並規範化數據存入變數$data中
$result=mysql_query( “INSERT INTO testtable (filename,data) VALUES (‘$filename’,’$data’)”);//數據插入到資料庫test表中
mysql_close();
?
從表中取迴文件,使用如下PHP代碼
?php
if($id) {
mysql_connect( “localhost”, “root”, “password”);
mysql_select_db( “database”);
$filename=”” //這裡填入二進位文件名
$query = “select data from testtable where filename=$filename”;
$result = mysql_query($query);
$data = mysql_result($result,0, “data”);
?
mysql 命令怎麼選擇資料庫
如果你是在cmd命令行下:use 資料庫名;
如果你是在PHP中選擇資料庫: mysqli_select_db(連接數據返回的資源變數,’資料庫名’);
mysql 怎麼選擇資料庫 百度經驗
mysql是資料庫管理程序,你要選擇資料庫,可以使用sql語句中的use語法,比如 有資料庫,a、b、c,你要操作資料庫a,可以使用use a;來進行選擇。
原創文章,作者:GNJO,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146874.html