日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql基础_月隐学python第22课

發(fā)布時間:2023/12/19 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql基础_月隐学python第22课 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

?、數(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ù)庫,它實(shí)現(xiàn)了分布式處理的功能。在Oracle最新的12c版本中,還引?了多承租?架構(gòu),使?該架構(gòu)可輕松部署和管理數(shù)據(jù)庫云。
  • DB2 - IBM公司開發(fā)的、主要運(yùn)?于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ā)?版本中唯?免費(fèi)的版本)有所擔(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

在實(shí)際開發(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 表名;

  • 修改表
#修改字段類型 alter table 表名 modify 字段名 類型 [限制] #增加字段 alter table 表名 add [column] 字段名 類型 [限制]; #刪除字段 alter table 表名 drop [column] 字段名; 修改字段名和類型 alter table 表名 change [column] 舊字段名 新字段名 類型 [限制]; #修改表名 alter table 表名 rename 新表名 alter table 表名 [engine=myisam] [default charset=utf8]; # 可以通過first、 after指定插?位置 alter table student add sno varchar(3) not null after sid; //在sid列后插? alter table student add sid int primary key auto_increment first;//在第?列插?
  • 字段限制
primary key 不允許空值,唯? not null ?空 unique 唯? default 缺省,默認(rèn)值

例子:

五、數(shù)據(jù)類型

數(shù)值型

  • 整型 能?整型盡量使?整型。包括int、 smallint tinyint
  • int(3) 或者 tinyint(2) :3或者2不會去限制你所存儲數(shù)據(jù)的?度 ,只有在配合zerofill 零填充的時候 才有意義
  • 浮點(diǎn)數(shù) double 、 decimal
    ?
  • 字符型

    注意:
    (1) char 和 varchar 的區(qū)別:

    • char的執(zhí)?效率?于varchar , varchar 相對于 char 節(jié)省存儲空間
    • 如果使?char 傳?的數(shù)據(jù)的?度 ?于指定的?度的時候 存儲的實(shí)際?度不夠的會拿空格來填充
    • 如果使? varchar 傳?的數(shù)據(jù)的?度 ?于指定的?度的時候 存儲的實(shí)際?度 為傳進(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)系運(yùn)算

    關(guān)系運(yù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
    • 邏輯運(yùn)算

    邏輯運(yùn)算符: 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;
    • 集合運(yùn)算

    集合運(yùn)算符: 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)
    • 判空

    判空運(yùn)算: is null、 is not null

    select username,password from user where username is null

    字符串的模糊查詢(like)
    通配符 _代表?個字符, %代表任意?度字符串

    select * from user where username like '王_'; select * from user where username like '王%';

    3. 排序(order by)

    asc 升序(默認(rèn))、 desc 降序、
    ?

    select * from user order by age asc; select * from user order by age desc; //"#多字段排序" select name,age from php_user_history order by age desc,name; //"#如果在第?列上有相同的值,在具有相同的age的記錄上再按name升序排列"

    4.限制結(jié)果集(limit)


    limit n #取前n條記錄
    limit offset,n #從第offset條開始取,取n條

    select * from php_user_history limit 3; select * from php_user_history limit 4,2; //注意結(jié)果集中記錄從0開始數(shù)數(shù), offset相對于0開始 //實(shí)現(xiàn)分?必須的技術(shù)點(diǎn) limit (page-1)*num,num

    5.集合函數(shù)

    • count統(tǒng)計結(jié)果集中記錄數(shù)
    • max 最?值
    • min 最?值
    • avg 平均值,只針對數(shù)值類型統(tǒng)計
    • sum 求和,只針對數(shù)值類型統(tǒng)計
    • 注意,集合函數(shù)不能直接使?在where后?的條件?,但可以在?查詢中
    select count(*) num from user; select count(distinct age) num from user; //去除重復(fù)記錄 select * from student where sno = max(sno);//錯誤

    6.分組(group by)

    將結(jié)果集分組統(tǒng)計,規(guī)則:

    • 出現(xiàn)了groub by的查詢語句, select后?的字段只能是集合函數(shù)和group by后?有的字段,不要跟其它字段
    • 對分組進(jìn)?過濾,可以使?having
      ?
    select uid, count(*) num from php_forum group by uid; select uid,title, count(*) num from forum group by uid having count(*) >=2; having和where的區(qū)別: where針對原始表進(jìn)?過濾 having 是針對分組進(jìn)?過濾

    查詢?結(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ù)、?持外鍵,?持?鎖
      ?
    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的mysql基础_月隐学python第22课的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。