mysql選定數據庫,sql選中數據庫

本文目錄一覽:

數據庫(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-hant/n/146874.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GNJO的頭像GNJO
上一篇 2024-10-31 15:33
下一篇 2024-10-31 15:33

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Hibernate日誌打印sql參數

    本文將從多個方面介紹如何在Hibernate中打印SQL參數。Hibernate作為一種ORM框架,可以通過打印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 使用SQL實現select 聚合查詢結果前加序號

    select語句是數據庫中最基礎的命令之一,用於從一個或多個表中檢索數據。常見的聚合函數有:count、sum、avg等。有時候我們需要在查詢結果的前面加上序號,可以使用以下兩種方…

    編程 2025-04-29
  • 理解Mybatis中的SQL Limit用法

    Mybatis是一種非常流行的ORM框架,提供了SQL映射配置文件,可以使用類似於傳統SQL語言的方式編寫SQL語句。其中,SQL的Limit語法是一個非常重要的知識點,能夠實現分…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • SQL預研

    SQL預研是指在進行SQL相關操作前,通過數據分析和理解,確定操作的方法和步驟,從而避免不必要的錯誤和問題。以下從多個角度進行詳細闡述。 一、數據分析 數據分析是SQL預研的第一步…

    編程 2025-04-28

發表回復

登錄後才能評論