mysql數據庫基礎知識整理,mysql 基礎知識

本文目錄一覽:

該怎麼學習MySQL數據庫,從基礎學起的哪種?

如果你沒有 MySQL 的基礎,建議可以看看以下書籍:

《MySQL 必知必會》:主要講 SQL 的寫法

《深入淺出 MySQL》:比較全面的講解了 MySQL 的基礎知識,也涉及了一些優化。

如果已經對 MySQL 比較熟悉了,可以看下面的書籍:

《高性能 MySQL》:裡面講了很多 MySQL 優化技巧。

《MySQL 技術內幕》:講解了很多 MySQL 原理,強力推薦給想深入學習 MySQL 的同學。

《MySQL 內核:InnoDB 存儲引擎》:想深入研究 MySQL 內核及原理的可以看看。

《MySQL 運維內參》:對 MySQL 源碼感興趣,可以入手。

《MySQL Internals Manual》

《MySQL 5.7 Reference Manual》

北大青鳥設計培訓:零基礎如何mysql學習?

最近,有很多學員留言讓我整理一下“零基礎如何mysql學習?”.今天武漢電腦培訓就整理一下學習MySQL你需要掌握的知識點以及送給新手學習的建議,希望對大家能夠有所幫助!給新手的學習建議:1.在學習新的東西的時候,我們至少從三個問題開始。

What?why?how?2.學習需要堅持,如果還沒準備好堅持半年比較枯燥的MySQL之旅,那麼就別開始。

3.學習東西不在多,在精,市面上有非常多的MySQL教程,不要瞎學,今天這裡學一點,明天那裡學一點,這樣你學的都只是知識點,無法形成一個知識面,知識網絡。

4.在學習過程中充滿好奇,使用google進行問題搜索,千萬不要使用度娘了,質量不高。

至於怎麼用Google,請自行搜索。

5.學習的目的在於使用,因此,不要僅僅看書,看一遍,看兩遍,你可能還是沒什麼感覺。

因此學習一開始,就要動手練習,把資料上的情況,模擬一下。

6.請不要在windows上安裝mysql進行學習,因為工作中都是linux系統。

我們需要從一開始就是實戰,就是生產環境。

7.保持好心態,一步一個腳印的前進。

學習MySQL你需要掌握的知識點:1.系統,當然windos基本的要會。

然後就是Linux系統,現在做MySQLDBA的系統多數都是Linux系統,而生產環境大多又是RedHat,Centos。

其他的Linux和Unix系統可以只做了解。

2.Linux基礎,網絡,IO,內存,磁盤,CPU。

包括不限於安裝,啟動過程,目錄結構,遠程登錄,文件屬性與管理,用戶與用戶權限,LAMP結構vim,yum等shell命令,dns,ftp,以及一些常用工具。

3.MySQL基礎:MySQL安裝、MySQL體系結構,SQL,MySQL管理維護。

4.數據備份與恢復,常用的引擎:MyISAM、Innodb、NDB等。

5.數據庫設計優化,一個好的MySQL系統,往往從設計開始。

6.SQL優化,參數優化,監控,安全等。

7.MySQL負載均衡,讀寫分離,MHA,MMM高可用架構,以及分布式架構:mycat、maxscale、galeracluster、MySQLGroupReplication等。

8.mysql5.6,mysql5.7新特性,mariadb、percona分支的差異和特點。

9.MySQLJSON、MySQLmemcached。

10.常見MySQL搭配的緩存系統,redis,memcached,以及NOSQL、NEWSQL。

以上,就是小編為大家整理的mysql學習你需要掌握的知識點以及送給新手學習的建議,希望能夠幫助到大家!

mysql 常用命令手冊

之前介紹了一系列的mysql基礎知識,今天我們將MySQL常用的功能命令整理出來,供大家參考使用!

1.導出整個數據庫

mysqldump -u 用戶名 -p –default-character-set=latin1 數據庫名 導出的文件名(數據庫默認編碼是latin1)

mysqldump -u wcnc -p smgp_apps_wcnc wcnc.sql

2.導出一個表

mysqldump -u 用戶名 -p 數據庫名 表名 導出的文件名

mysqldump -u wcnc -p smgp_apps_wcnc users wcnc_users.sql

3.導出一個數據庫結構

mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc d:wcnc_db.sql

-d 沒有數據 –add-drop-table 在每個create語句之前增加一個drop table

4.導入數據庫

A:常用source 命令

進入mysql數據庫控制台,

如mysql -u root -p

mysqluse 數據庫

然後使用source命令,後面參數為腳本文件(如這裡用到的.sql)

mysqlsource wcnc_db.sql

B:使用mysqldump命令

mysqldump -u username -p dbname filename.sql

C:使用mysql命令

mysql -u username -p -D dbname filename.sql

啟動與退出

1、進入MySQL:啟動MySQL Command Line Client(MySQL的DOS界面),直接輸入安裝時的密碼即可。此時的提示符是:mysql

2、退出MySQL:quit或exit

庫操作

1、創建數據庫

命令:create database 數據庫名

例如:建立一個名為sqlroad的數據庫

mysql create database sqlroad;

2、顯示所有的數據庫

命令:show databases (注意:最後有個s)

mysql show databases;

3、刪除數據庫

命令:drop database 數據庫名

例如:刪除名為 sqlroad的數據庫

mysql drop database sqlroad;

4、連接數據庫

命令:use 數據庫名

例如:如果sqlroad數據庫存在,嘗試存取它:

mysql use sqlroad;

屏幕提示:Database changed

5、查看當前使用的數據庫

mysql select database();

6、當前數據庫包含的表信息:

mysql show tables; (注意:最後有個s)

表操作,操作之前應連接某個數據庫

1、建表

命令:create table 表名 ( 字段名 類型 [,..字段名n 類型n]);

mysql create table MyClass(

id int(4) not null primary key auto_increment,

name char(20) not null,

sex int(4) not null default ’′,

degree double(16,2));

2、獲取表結構

命令:desc 表名,或者show columns from 表名

mysqlDESCRIBE MyClass

mysql desc MyClass;

mysql show columns from MyClass;

3、刪除表

命令:drop table 表名

例如:刪除表名為 MyClass 的表

mysql drop table MyClass;

4、插入數據

命令:insert into 表名 [( 字段名[,..字段名n ])] values ( 值 )[, ( 值n )]

例如,往表 MyClass中插入二條記錄, 這二條記錄表示:編號為的名為Tom的成績為.45, 編號為 的名為Joan 的成績為.99,編號為 的名為Wang 的成績為.5.

mysql insert into MyClass values(1,’Tom’,96.45),(2,’Joan’,82.99), (2,’Wang’, 96.59);

5、查詢表中的數據

11)、查詢所有行

命令:select 字段,字段,… from 表名 where 表達式

例如:查看錶 MyClass 中所有數據

mysql select * from MyClass;

12)、查詢前幾行數據

例如:查看錶 MyClass 中前行數據

mysql select * from MyClass order by id limit 0,2;

或者:

mysql select * from MyClass limit 0,2;

6、刪除表中數據

命令:delete from 表名 where 表達式

例如:刪除表 MyClass中編號為 的記錄

mysql delete from MyClass where id=1;

7、修改表中數據:

update 表名 set 字段=新值,…where 條件

mysql update MyClass set name=’Mary’where id=1;

8、在表中增加字段:

1命令:alter table 表名 add字段 類型 其他;

3例如:在表MyClass中添加了一個字段passtest,類型為int(4),默認值為

5mysql alter table MyClass add passtest int(4) default ’′

9、更改表名:

命令:rename table 原表名 to 新表名;

例如:在表MyClass名字更改為YouClass

mysql rename table MyClass to YouClass;

更新字段內容

update 表名 set 字段名 = 新內容

update 表名 set 字段名 = replace(字段名,’舊內容’, 新內容’)

update article set content=concat(‘’,content);

字段類型和數據庫操作

1.INT[(M)] 型:正常大小整數類型

2.DOUBLE[(M,D)] [ZEROFILL] 型:正常大小(雙精密)浮點數字類型

3.DATE 日期類型:支持的範圍是-01-01到-12-31。MySQL以YYYY-MM-DD格式來顯示DATE值,但是允許你使用字符串或數字把值賦給DATE列

4.CHAR(M) 型:定長字符串類型,當存儲時,總是是用空格填滿右邊到指定的長度

5.BLOB TEXT類型,最大長度為(2^16-1)個字符。

6.VARCHAR型:變長字符串類型

7.導入數據庫表

創建.sql文件

先產生一個庫如auction.c:mysqlbinmysqladmin -u root -p creat auction,會提示輸入密碼,然後成功創建。

導入auction.sql文件

c:mysqlbinmysql -u root -p auction auction.sql。

通過以上操作,就可以創建了一個數據庫auction以及其中的一個表auction。

8.修改數據庫

在mysql的表中增加字段:

alter table dbname add column userid int(11) not null primary key auto_increment;

這樣,就在表dbname中添加了一個字段userid,類型為int(11)。

9.mysql數據庫的授權

mysqlgrant select,insert,delete,create,drop

on *.* (或test.*/user.*/..)

to 用戶名@localhost

identified by ‘密碼’;

如:新建一個用戶帳號以便可以訪問數據庫,需要進行如下操作:

mysql grant usage

– ON test.*

– TO testuser@localhost;

Query OK, 0 rows affected (0.15 sec)

此後就創建了一個新用戶叫:testuser,這個用戶只能從localhost連接到數據庫並可以連接到test 數據庫。下一步,我們必須指定testuser這個用戶可以執行哪些操作:

mysql GRANT select, insert, delete,update

– ON test.*

– TO testuser@localhost;

Query OK, 0 rows affected (0.00 sec)

此操作使testuser能夠在每一個test數據庫中的表執行SELECT,INSERT和DELETE以及UPDATE查詢操作。現在我們結束操作並退出MySQL客戶程序:

mysql exit

DDL操作

1:使用SHOW語句找出在服務器上當前存在什麼數據庫:

mysql SHOW DATABASES;

2、創建一個數據庫MYSQLDATA

mysql Create DATABASE MYSQLDATA;

3:選擇你所創建的數據庫

mysql USE MYSQLDATA; (按回車鍵出現Database changed 時說明操作成功!)

4:查看現在的數據庫中存在什麼表

mysql SHOW TABLES;

5:創建一個數據庫表

mysql Create TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

6:顯示錶的結構:

mysql DESCRIBE MYTABLE;

7:往表中加入記錄

mysql insert into MYTABLE values (“hyq”,”M”);

8:用文本方式將數據裝入數據庫表中(例如D:/mysql.txt)

mysql LOAD DATA LOCAL INFILE “D:/mysql.txt”INTO TABLE MYTABLE;

9:導入.sql文件命令(例如D:/mysql.sql)

mysqluse database;

mysqlsource d:/mysql.sql;

10:刪除表

mysqldrop TABLE MYTABLE;

11:清空表

mysqldelete from MYTABLE;

12:更新表中數據

mysqlupdate MYTABLE set sex=”f”where name=’hyq’;

mysql使用教程?

MySQL數據庫使用教程介紹

完整 MySQL 操作詳見:[MySQL攻略]MySQL數據庫使用教程介紹

什麼叫MySQL數據庫?

數據庫(Database)是依照算法設計來機構、儲存和管理數據信息的倉庫。每一個數據庫都具有一個或多個API用以創建,訪問,管理,檢索和拷貝存儲的數據信息。

如今大家用的大多數是關係型數據庫管理系統(RDBMS)來儲存和管理大量數據。所謂關係型數據庫,就是以關係模型為基礎的數據庫,憑藉結合集合代數等數學概念來對數據庫中的數據進行處理。

MySQL是時下最熱門的關係型數據庫管理系統之一,本教程將會講解MySQL的基礎知識,並幫助大家熟練應用MySQL數據庫。

MySQL教程-RDBMS專業術語

在開始學習MySQL數據庫前,使我們先掌握下RDBMS的一些專業術語:

數據庫:數據庫是一些關係表的結合。

數據表:數據的矩陣。在一個數據庫中的表看上去像一個簡易的excel表。

列:一列(數據元素)包括了同類型的數據。

行:一行(元組/紀錄)是一組有關的數據。

冗餘:儲存二倍數據,性能會有所損失,但信息安全性有所提高。

主鍵:主鍵是唯一的。一個數據表中只有包含一個主鍵。

外鍵:用於關聯兩個表。

索引:用數據庫索引可快速訪問數據表中的特定信息。索引是對數據庫表格中一列或多列的值作排列的一種構造方式。類似書本的目錄。

MySQL教程-基礎操作

進到數據庫:mysql -uroot -p,登陸密碼立即回車鍵

退出數據庫:quit或是exit

查詢版本號:select version();

獲取當前時間:select now();

sql數據庫基礎知識

sql數據庫基礎知識:

一、SQL 概述

1、什麼是 SQL

SQL(Structured Query Language)是“結構化查詢語言”,它是對關係型數據庫的操作語言。它可以應用到所有關係型數據庫中,例如:MySQL、Oracle、SQL Server 等。SQL 標準(ANSI/ISO)有:SQL-92:1992 年發布的 SQL 語言准;SQL:1999:1999 年發布的 SQL 語言標籤;SQL:2003:2003 年發布的 SQL 語言標籤;這些標準就與 JDK 的版本一樣,在新的版本中總要有一些語法的變化。不同時期的數據庫對不同標準做了實現。

雖然 SQL 可以用在所有關係型數據庫中,但很多數據庫還都有標準之後的一些語法,我們可以稱之為“方言”。例如 MySQL 中的 LIMIT 語句就是 MySQL 獨有的方言,其它數據庫都不支持!當然,Oracle 或 SQL Server 都有自己的方言。

數據庫(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。保留點越多越好。保留點在事務執行完成後自動釋放。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/152298.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-12 00:56
下一篇 2024-11-12 00:56

相關推薦

  • 如何修改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
  • Python操作MySQL

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

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

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

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

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

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入數據庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的數據庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • Python元祖排序:從基礎知識到高級應用

    Python元祖是一種不可變序列,通常用於將一組數據綁定在一起。元祖之間經常需要排序,本文將從基礎知識到高級應用,為你詳細講解Python元祖排序。 一、排序方法 Python提供…

    編程 2025-04-28

發表回復

登錄後才能評論