mysql基础_月隐学python第22课
目錄
?、數(shù)據(jù)庫基本概念
常?的數(shù)據(jù)庫:
MySQL簡介
mysql的安裝
linux下
windows下安裝
?、 SQL
三、操作數(shù)據(jù)庫
四、數(shù)據(jù)庫表
例子:
五、數(shù)據(jù)類型
數(shù)值型
字符型?
?期時間型
枚舉enum?
集合set
六、數(shù)據(jù)操作
1. insert
2.update
3. delete?
七、數(shù)據(jù)查詢
1 基礎(chǔ)查詢?
2 條件查詢(where)
3. 排序(order by)
4.限制結(jié)果集(limit)
5.集合函數(shù)
6.分組(group by)
? 存儲引擎
?、數(shù)據(jù)庫基本概念
數(shù)據(jù)庫是存放數(shù)據(jù)的倉庫。它的存儲空間很?,可以存放百萬條、千萬條、上億條數(shù)據(jù)。但是數(shù)據(jù)庫并不是隨意地將數(shù)據(jù)進(jìn)?存放,是有?定的規(guī)則的,否則查詢的效率會很低。
常?的數(shù)據(jù)庫:
- Oracle - ?前世界上使?最為?泛的數(shù)據(jù)庫管理系統(tǒng),作為?個通?的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為?個關(guān)系數(shù)據(jù)庫,它是?個完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫,它實現(xiàn)了分布式處理的功能。在Oracle最新的12c版本中,還引?了多承租?架構(gòu),使?該架構(gòu)可輕松部署和管理數(shù)據(jù)庫云。
- DB2 - IBM公司開發(fā)的、主要運?于Unix(包括IBM?家的AIX)、 Linux、以及Windows服務(wù)器版等系統(tǒng)的關(guān)系數(shù)據(jù)庫產(chǎn)品。 DB2歷史悠久且被認(rèn)為是最早使?SQL的數(shù)據(jù)庫產(chǎn)品,它擁有較為強(qiáng)?的商業(yè)智能功能。
- SQL Server - 由Microsoft開發(fā)和推?的關(guān)系型數(shù)據(jù)庫產(chǎn)品,最初適?于中?企業(yè)的數(shù)據(jù)管理,但是近年來它的應(yīng)?范圍有所擴(kuò)展,部分?企業(yè)甚?是跨國公司也開始基于它來構(gòu)建??的數(shù)據(jù)管理系統(tǒng)。
- MySQL - MySQL是開放源代碼的,任何?都可以在GPL(General PublicLicense)的許可下下載并根據(jù)個性化的需要對其進(jìn)?修改。 MySQL因為其速度、可靠性和適應(yīng)性?備受關(guān)注。
- PostgreSQL - 在BSD許可證下發(fā)?的開放源代碼的關(guān)系數(shù)據(jù)庫產(chǎn)品。
MySQL簡介
MySQL最早是由瑞典的MySQL AB公司開發(fā)的?個開放源碼的關(guān)系數(shù)據(jù)庫管理系統(tǒng),該公司于2008年被昇陽微系統(tǒng)公司(Sun Microsystems)收購。在2009年,甲??公司(Oracle)收購昇陽微系統(tǒng)公司,因此在這之后MySQL成為了Oracle旗下產(chǎn)品。
MySQL在過去由于性能?、成本低、可靠性好,已經(jīng)成為最流?的開源數(shù)據(jù)庫,因此被?泛地應(yīng)?于中?型?站開發(fā)。隨著MySQL的不斷成熟,它也逐漸被應(yīng)?于更多?規(guī)模?站和應(yīng)?,?如維基百科、?歌(Google)、臉書(Facebook)、淘寶?等?站都使?了MySQL來提供數(shù)據(jù)持久化服務(wù)。
甲??公司收購后昇陽微系統(tǒng)公司,?幅調(diào)漲MySQL商業(yè)版的售價,且甲??公司不再?持另?個?由軟件項?OpenSolaris的發(fā)展,因此導(dǎo)致?由軟件社區(qū)對于Oracle是否還會持續(xù)?持MySQL社區(qū)版(MySQL的各個發(fā)?版本中唯?免費的版本)有所擔(dān)憂, MySQL的創(chuàng)始??克爾·維德紐斯以MySQL為基礎(chǔ),成?分?計劃MariaDB(以他??的名字命名的數(shù)據(jù)庫)。有許多原來使?MySQL數(shù)據(jù)庫的公司(例如:維基百科)已經(jīng)陸續(xù)完成了從MySQL數(shù)據(jù)庫到MariaDB數(shù)據(jù)庫的遷移。
mysql的安裝
linux下
windows下安裝
參考https://blog.csdn.net/qq_41080850/article/details/97495643
在實際開發(fā)中,為了?便?戶操作,可以選擇圖形化的客戶端?具來連接MySQL
服務(wù)器,包括:
MySQL Workbench(官?提供的?具)
Navicat for MySQL(界?簡單優(yōu)雅,功能直觀強(qiáng)?)
SQLyog for MySQL(強(qiáng)?的MySQL數(shù)據(jù)庫管理員?具)
?、 SQL
基本可分為:
數(shù)據(jù)定義語?DDL (create、 drop)
數(shù)據(jù)操作語?DML(insert、 delete、 update)
數(shù)據(jù)查詢語?DQL(select、 where、 group by、 order by 、 limit)
數(shù)據(jù)控制語?DCL(grant、 revoke)
事務(wù)處理語?TPL(commit、 rollback)
三、操作數(shù)據(jù)庫
- 連接mysql數(shù)據(jù)庫的命令
數(shù)據(jù)庫操作命令
注意:
每條命令結(jié)束必須使?; 或者 \g 結(jié)束
退出mysql使?命令quit或exit
四、數(shù)據(jù)庫表
- 創(chuàng)建表
- 刪除表
? ? ? ?drop table 表名;
- 復(fù)制表結(jié)構(gòu)
? ? ? ?create table 表名 like 其他表名
- 查看表結(jié)構(gòu)
? ? ? ?desc 表名;
- 查看建表語句
? ? ? ? show create table 表名;
- 修改表
- 字段限制
例子:
五、數(shù)據(jù)類型
數(shù)值型
?
字符型
注意:
(1) char 和 varchar 的區(qū)別:
- char的執(zhí)?效率?于varchar , varchar 相對于 char 節(jié)省存儲空間
- 如果使?char 傳?的數(shù)據(jù)的?度 ?于指定的?度的時候 存儲的實際?度不夠的會拿空格來填充
- 如果使? varchar 傳?的數(shù)據(jù)的?度 ?于指定的?度的時候 存儲的實際?度 為傳進(jìn)來的數(shù)據(jù)的?度
?期時間型
枚舉enum
集合set
六、數(shù)據(jù)操作
1. insert
2.update
update 表名 set 字段1=值1,字段2=值2... where 條件 #不加where修改的是所有的記錄3. delete
七、數(shù)據(jù)查詢
基本結(jié)構(gòu): select 字段名列表 from 表名
1 基礎(chǔ)查詢
2 條件查詢(where)
- 關(guān)系運算
關(guān)系運算符: > 、 >=、 <、 <=、 =、 !=、 <>、 between and
select username,password from user where uid <10 select username,password from user where uid != 10 select username,password from user where uid between 10 and 20- 邏輯運算
邏輯運算符: and 、 or、 not
select username,password from user where uid < 100 and uid > 20; select username,password from user where uid > 100 or uid < 20;- 集合運算
集合運算符: in、 not in
select username,password form user where uid in (2,3,4) select username,password form user where uid not in (2,3,4)- 判空
判空運算: is null、 is not null
select username,password from user where username is null字符串的模糊查詢(like)
通配符 _代表?個字符, %代表任意?度字符串
3. 排序(order by)
asc 升序(默認(rèn))、 desc 降序、
?
4.限制結(jié)果集(limit)
limit n #取前n條記錄
limit offset,n #從第offset條開始取,取n條
5.集合函數(shù)
- count統(tǒng)計結(jié)果集中記錄數(shù)
- max 最?值
- min 最?值
- avg 平均值,只針對數(shù)值類型統(tǒng)計
- sum 求和,只針對數(shù)值類型統(tǒng)計
- 注意,集合函數(shù)不能直接使?在where后?的條件?,但可以在?查詢中
6.分組(group by)
將結(jié)果集分組統(tǒng)計,規(guī)則:
- 出現(xiàn)了groub by的查詢語句, select后?的字段只能是集合函數(shù)和group by后?有的字段,不要跟其它字段
- 對分組進(jìn)?過濾,可以使?having
?
查詢?結(jié):
- 整體順序不能顛倒
- []表示可選,可以有也可以沒有
- select 字段 from 表名 [where 條件][group by ] [having][order by ] [limit]
?
? 存儲引擎
可以使?show engines命令查看數(shù)據(jù)庫引擎
show engines \G下?的表格對MySQL?種常?的數(shù)據(jù)引擎進(jìn)?了簡單的對?。
通過上?的?較我們可以了解到, InnoDB是唯?能夠?持外鍵、事務(wù)以及?鎖的存儲引擎,所以我們之前說它更適合互聯(lián)?應(yīng)?,?且它也是較新的MySQL版本中默認(rèn)使?的存儲引擎。
myisam和innodb的區(qū)別:
- myisam查詢速度快,不?持事務(wù)、不?持外鍵、?持表鎖
- innodb增刪改效率?,?持事務(wù)、?持外鍵,?持?鎖
?
總結(jié)
以上是生活随笔為你收集整理的mysql基础_月隐学python第22课的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在JS函数中执行C#中的函数、字段
- 下一篇: MINA2 源代码学习--源代码结构梳理