mysql數據庫完整筆記(mysql數據庫數據)

本文目錄一覽:

MySQL的GIS、GEO入門筆記

探索和學習MySQL中GIS相關功能和特性

這裡記錄了學習和了解MySQL中GIS特性相關內容的過程。

MySQL官方論壇中GIS的舉例

測試數據已經導入成功,下面開始對GIS相關函數和GEOHASH進行了解和體驗;

mysql中geometry類型的簡單使用

MySQL空間數據類型

經緯度信息存儲在geometry格式的字段中,該字段必須非空。

MySQL8.0前按照longitude-latitude的順序存儲位置

MySQL8.0前按照longitude-latitude的順序存儲位置

MySQL8.0前按照longitude-latitude的順序存儲位置

插入數據時候可使用如下語句:

MySQL存儲geometry信息的方式採用了25bytes,相比WKB的21bytes,多了4bytes的坐標系表示,組成部分如下:

WTF字符串格式說明

select ST_GeomFromText(WTF格式字符串);

WKT(Well-known text)是一種文本標記語言,用於表示矢量幾何對象、空間參照系統及空間參照系統之間的轉換。通過WTF字符串生成geometry的方法:

點: POINT(x y)

線: LINESTRING(x1 y1, x2 y2, x3 y3…)

多邊形: POLYGON((0 0, 10 0, 10 10,0 10,0 0),(5 5,7 5,7 7,5 7,5 5))

多點集: MULTIPOINT(0 0, 20 20, 60 60) 或 MULTIPOINT((0 0),(5 5),(5 0))

多線集: MULTILINESTRING((10 10, 20 20), (15 15, 30 15))

多多邊形集: MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((5 5,7 5,7 7,5 7, 5 5)))

例如兩點一線組成的幾何集: GEOMETRYCOLLECTION(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20))

A geometry is syntactically well-formed if it satisfies conditions such as those in this (nonexhaustive) list:

Collections are not empty (except GeometryCollection)

更多內容參見

ST_PointFromText(‘POINT(X Y)’);

ST_LineStringFromText(‘LINESTRING(0 0,1 1,2 2)’);

ST_PolygonFromText(‘POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7,5 5))’);

ST_GeomCollFromText();

更多內容參見

參見

Point(x,y)

LineString((x1,y1),(x2,y2)…)

Polygon(LineString(),LineString()….)

參見

ST_AsText()

ST_AsBinary()

ST_AsWKT()

參見

ST_Dimension(geom) :返回geom的維度(-1,0,1,2)

ST_Envelope(geom) :返回geom的最小外接矩形(MBR)

ST_GeometryType(geom) :返回geom的類型

ST_IsEmpty(geom) :該函數並不能真實的判空,當geom為任何有效的幾何值時返回0,無效的幾何值返回1;

ST_IsSimple(geom) :當geom無任何異常幾何點返回1(如自相交和自切線等),否則返回0

ST_SRID(geom) :返回geom的坐標系ID

參見

ST_X(Point) :獲取Point的X值

ST_Y(Point) :獲取Point的Y值

參見

ST_StartPoint(linestrng) : 線的起點

ST_EndPoint(linestring) :返回線的最後一個點

ST_IsClosed(linestring或multilinestring) :線是否閉合(若為線,則判斷起點與終點是否一致;若為線組,則判斷組內每個元素是否符合閉合線)

ST_Length(linestring) :返回線的長度,若入參為線集,則返回集合內所有長度的和

ST_NumPoiints(linestring) :返回點的數量;

ST_PointN(linestring,N) :返回第N個點(從1開始)

參見

具體不在一一列舉,主要有計算多邊形面積、中心點、最小外接圓,最大內接圓等函數,列舉幾個可能會用到的:

ST_Area(Poly|mPoly) :返回雙精度的面積或面積的和

‘ST_Centroid(Poly|mPoly)’:返回數學上的中心點

ST_ExteriorRing(Poly) :返回外接圓

參見

ST_Buffer說明

不再列舉,主要有:ST_Buffer(不懂幹啥用),ST_ConvexHull(geom)凸包,ST_Dfference(g1,g2)比較差異,ST_Intersecton(g1,g2)交叉點,ST_SymDifference(g1,g2)對稱差分,ST_Union(g1,g2)連接、合併等。

檢查geometry Objects之間的空間關係的方法。

參見

計算兩個Object之間的空間關係的函數,有兩個間距離、相交、不相交,包含、相等、相切、重疊、接觸、在內等等空間關係。下面列舉幾個可能會常用的方法:

ST_Contains(g1,g2) :g1是否完全包含g2

ST_Within(g1,g2) :g1是否包含於g2中

ST_Distance(g1,g2) :返回g1和g2之間的距離,已坐標單位計算的

ST_Equals(g1,g2) :返回g1和g2是否相等

參見

MBRContains(g1,g2) :g1的mbr是否包含g2的mbr

MBRWithin(g1,g2) :g1的mbr是否在g2的mbr內

MBRCoveredBy(g1,g2) :g1的mbr是否被g2的mbr覆蓋

MBRCovers(g1,g2) :g1的mbr是否覆蓋g2的mbr

MBRDisjoint(g1,g2) :g1的mbr,g2的mbr是否不相交

MBRIntersects(g1,g2) :g1mbr,g2mbr是否相交

MBREqual(g1,g2) :g1的mbr,g2的mbr的外接是否相等

MBREquals(g1,g2) :g1的mbr,g2的mbr的外接是否相等

MBROverlaps(g1,g2) :g1mbr、g2mbr

其他函數請參看原文

GeoHash介紹

GeoHash Wiki百科

MySQL中自帶函數 st_geohash(longtude,latitude,max_length) 或 st_geohash(point, max_length) 即可生成某一點的geohash值。

返回一個geohash字符串中的latitude或longitude

返回一個geohash解析出的point數據

官方文檔

通過geometry生成一個GeoJSON Object, select st_asgeojson(geometry,max_length,options);

通過GeoJSON生成GeoMetry對象。

ST_GeomFromGeoJSON(jsonstring, [options [, srid]])

具體使用方法參見官方文檔

官方文檔

MySQL中提供的方便空間運算的函數們

select ST_Distance_Spher(geomPoint1,geomPoint2 [, radius]);

此方法用於計算兩點或多個點之間的地球上的距離(是地球球面距離而不是直線距離),返回單位為米,

select ST_IsValid(ST_GeomFromText(‘LINESTRING(0 0,1 1)’))

判斷入參是否是符合地理位置描述的格式。返回1(符合)或者0(不符);

例如:

返回0:

select st_isvalid(st_geomfromtext(‘linestring(0 0, -0.00 0, 0.0 0)’)

返回1:

select st_isvalid(st_geomfromtext(‘linestring(0 0,1 1)’)

select st_astext(st_makeenvelope(pt1, pt2));

返回兩點構成的包絡。(此計算是基於笛卡爾坐標系而非球面)

例如:

SELECT ST_AsText ( st_makeenvelope ( st_geomfromtext ( ‘point(0 0)’ ), st_geomfromtext ( ‘point(1 1)’ ) ) );

返回結果:

POLYGON((0 0,1 0,1 1,0 1,0 0))

效果說明

JS抽稀算法

select st_simplify(geometry, max_distance);

用道格拉斯-普克算法(抽稀函數)簡化geometry,並返回與原格式相同格式的結果。

例如,以下點集擬合為直線,步長0.5:

SELECT st_simplify ( st_geomfromtext ( ‘LINESTRING(0 0,0 1,1 1,1 2,2 2,2 3,3 3)’ ), 0.5 )

返回結果:

LINESTRING(0 0, 0 1, 1 1, 2 3, 3 3)

再如,步長1.0:

SELECT st_simplify ( st_geomfromtext ( ‘LINESTRING(0 0,0 1,1 1,1 2,2 2,2 3,3 3)’ ), 1.0 )

返回結果:

LINESTRING(0 0, 3 3)

SELECT ST_Validate(geometry);

驗證geometry是符合正確的地理位置信息格式。例如 Point(0 0) 是合格的; Linestring(0 0) 是非法的; Linestring(0 0, 1 1) 是合格的

了解了上述MySQL中關於集合對象的功能,下面來實踐一下

由上面geohash長度-精度對應表可知,前6位表示±610米左右的誤差,這裡先查詢前六位範圍之後再用上述方法精確篩選一次即可:

可將上述查詢方法封裝為MySQL函數方便和簡化程序調用.

該方法是運用了內置的幾何關係運算函數 ST_Contains 和 ST_MakeEnvelop 來實現的,0.5對應大概500米左右的範圍,具體如下;

鏈接:

提取碼: jagn

誰有mysql數據庫的筆記呀?

mysql學習的筆記:

Mysql和SQL的語法差不多是一樣的,分為以下幾個大類。

1、 數據定義語言(DDL):create , alter ,drop 等

2、 數據操作語言(DML):如插入,修改,刪除等

3、 數據控制語言(DCL):grant,revoke等

我們通過控制台的mysql進行數據庫操作,mysql語句的結束符是 ‘;’

當我們進入到mysql的控制台之後,可以查看有幾個數據庫

數據庫操作:

顯示所有數據庫:show databases ;

刪除數據庫:drop databases dbname ;

創建數據庫:create database [if not exists] dbname ;

切換數據庫:use dbname ;

騰訊雲專家經驗凝聚成簡,593頁MySQL DBA工作筆記,透析MySQL架構

數據庫運維的變革,經歷從手工造到腳本化、系統化、平台化、智能化的轉變,逐步實現DBA對數據庫的規範化、自動化、自助化、可視化、智能化、服務化管理,從而保障數據庫的安全、穩定、高效運行。

MySQL則是目前最流行的關係型數據庫,網上的學習資料也十分充足,這是一件好事,但是但小課堂依然推薦一定要看一看 《MySQL DBA工作筆記》 這本書

本書是根據ACE,騰訊雲TVP,資深DBA,一線數據庫專家多年運維經驗凝聚成簡,自已多年工作歷程,點滴積累,從理論到實踐,從開發規範視角到運維基本操作,從業務需求到架構優化,全面闡述如何使用和運維好MySQL數據庫,此書必將使你受益良多。

此書是 全面理解新時代DBA技術轉型思路和運維心得 的最佳選擇,是 透徹解析MySQL運維管理、架構優化和運維開發 的指路明燈;話不多說,跟着小課堂一起看一下!!!

第1章MySQL發展和技術選型

第2章理解MySQL體系結構

第3章MySQL基礎運維面面觀

第4章SQL開發規範和基礎

第5章MySQL運維管理實踐

第6章MySQL查詢優化

第7章MySQL事務和鎖

第8章MySQL集群和高可用設計

第9章MySQL性能測試

第10章基於業務的數據庫架構設計

第11章運維開發基礎

第12章自動化運維架構設計和規劃

第13章MySQL運維基礎架構設計

第14章MySQL運維管理模塊設計

第15章運維自助化服務

MySQL作為現在最火的數據庫,火爆程度不用我們來說,小課堂相信,這本來自一線數據庫專家的 《MySQL DBA工作筆記》 一定能給大家帶來巨大的收穫,也能進一步推進MySQL的發展。

MySQL筆記(簡單查詢)

用來查詢數據庫中表的數據。關鍵字: select 、where 等。

註:查詢只是對數據的一種顯示,不會對數據庫進行修改

1.查詢所有數據 : select * from 表 ; 「*」 表示所有列; select id ,name, age, sex, birthday from 表 ; (註:全部字段寫法相對於「*」的寫法查詢效率要高,但寫法比較麻煩)

2.查詢部分列 : select 字段1, 字段2……. from 表 ;

3.別名查詢( 別名作用是方便觀看和處理數據)查詢時可以給表、列指定別名,關鍵字: AS

SELECT 字段1 AS 別名1,字段2 AS 別名2……. from 表; 或者 SELECT 字段1 別名1,字段2 別名2……. from 表 ; AS 可以不寫

4.清除重複值 ( 查詢指定列並且數據不出現重複 ): SELECT DISTINCT 字段1,字段2…… FORM 表;

5.查詢結果進行運算 ( 注意:參與計算列必須是數值類型 )

5.1與固定值計算: SELECT 列名1+固定值 FROM 表 ;

5.2列與列計算 : SELECT 列1+ 列2 FROM 表;

6.條件查詢 : SELECT * From 表 WHERE 字段 = 值;

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

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

相關推薦

  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • 打造照片漫畫生成器的完整指南

    本文將分享如何使用Python編寫一個簡單的照片漫畫生成器,本文所提到的所有代碼和技術都適用於初學者。 一、環境準備 在開始編寫代碼之前,我們需要準備一些必要的環境。 首先,需要安…

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

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

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

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

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

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29
  • Python中文版下載官網的完整指南

    Python是一種廣泛使用的編程語言,具有簡潔、易讀易寫等特點。Python中文版下載官網是Python學習和使用過程中的重要資源,本文將從多個方面對Python中文版下載官網進行…

    編程 2025-04-29
  • Python兩張表數據匹配

    本篇文章將詳細闡述如何使用Python將兩張表格中的數據匹配。以下是具體的解決方法。 一、數據匹配的概念 在生活和工作中,我們常常需要對多組數據進行比對和匹配。在數據量較小的情況下…

    編程 2025-04-29

發表回復

登錄後才能評論