mysql中日期相减_如何使用MySQL数据库
如何使用MySQL數(shù)據(jù)庫
前言:前面我們已經(jīng)了解了如何搭建MySQL數(shù)據(jù)庫,那么接下來我們就一起來了解一下,如何使用MySQL數(shù)據(jù)庫。
MySQL數(shù)據(jù)庫系統(tǒng)也是一個典型的C/S(客戶端/服務器)架構(gòu)應用,要訪問MySQL數(shù)據(jù)庫需要使用專門的客戶端軟件。在linux系統(tǒng)中,最簡單、易用的MySQL客戶端軟件是其自帶的MySQL命令工具。
一、訪問MySQL數(shù)據(jù)庫
1.登錄到MySQL服務器
經(jīng)過安裝后的初始化,MySQL數(shù)據(jù)庫默認管理員用戶名為root,密碼為空。若要以未設(shè)置密碼的root用戶登錄本機的MySQL數(shù)據(jù)庫,可執(zhí)行以下操作:
上面是沒密碼登錄,那么如何設(shè)置數(shù)據(jù)庫用戶的密碼呢?在linux命令環(huán)境中,一般使用mysqladmin工具來設(shè)置密碼。命令格式為"mysqladmin -u root -p '舊密碼' password '新密碼'"。如下圖:
在有密碼的情況下,使用"-p"選項來進行密碼校驗。如下圖:
注:進入"mysql>"的數(shù)據(jù)庫操作環(huán)境后,用戶可以輸入各種操作語句對數(shù)據(jù)庫進行管理。每條MySQL操作語句以分號";"表示結(jié)束,輸入時可以區(qū)分大小寫,但習慣上將MySQL語句中的關(guān)鍵字部分大寫。
示例:查看當前數(shù)據(jù)庫服務的基本信息。如下圖:
2.查看數(shù)據(jù)庫結(jié)構(gòu)
MySQL是一套數(shù)據(jù)庫管理系統(tǒng),在每臺MySQL服務器中,均支持運行多個庫,每個庫相當于一個容器,其中存放著許多表,表中的每行包含一條具體的數(shù)據(jù)關(guān)系信息,這些信息稱為數(shù)據(jù)記錄。
1)查看當前服務器中有哪些庫
"show databases語句":用于查看當前MySQL服務器中包含的庫,經(jīng)初始化后的MySQL服務器,默認建立了四個庫:test、mysql、information_schema和performance_schema(其中mysql庫是mysql正常運行所需的庫,其中包含了用戶認證相關(guān)的表)。如下圖:
2)查看當前使用的庫中有哪些表
"show tables語句":用于查看當前所在的庫中包含的表。在操作之前,需要先使用"use語句"切換到所使用的庫。
如下圖:查看mysql庫中包含的所有表。
MySQL數(shù)據(jù)庫的數(shù)據(jù)文件存放在/usr/local/mysql/data目錄下,每個數(shù)據(jù)庫對應一個子目錄,用于存儲數(shù)據(jù)表文件。每個數(shù)據(jù)表對應三個文件,擴展名分別為".frm"、".myd"和".myi"。(這里就不細說了)
3)查看表的結(jié)構(gòu)
"describe語句":用于顯示表的結(jié)構(gòu),即組成表的各字段(列)的信息。需要指定"庫名.表名"作為參數(shù);若只指定表名參數(shù),則需要先通過"use語句"切換到目標庫。如下圖:查看mysql庫中的user表的結(jié)構(gòu)。
3.創(chuàng)建及刪除庫和表
1)創(chuàng)建新的庫
"create database語句":用于創(chuàng)建一個新的庫,需指定數(shù)據(jù)庫名稱作為參數(shù)。如下圖:
剛剛創(chuàng)建的庫是空的,其中不包含任何表,在/usr/local/mysql/data目錄下會自動生成一個與新建的庫名相同的文件夾。
2)創(chuàng)建新的表
"create table語句":用于在當前庫中創(chuàng)建新的表,需指定數(shù)據(jù)表名稱作為參數(shù),并定義該表格所使用的各字段。基本格式為:
"create table 表名 (字段1名稱 類型,字段2名稱 類型, ... , primary key (主鍵名))"
創(chuàng)建表之前,應先明確數(shù)據(jù)表格的結(jié)構(gòu)、各字段的名稱和類型等信息。數(shù)據(jù)類型是數(shù)據(jù)的一種屬性,用于指定對象可保存的數(shù)據(jù)的類型,如整數(shù)數(shù)據(jù)、字符數(shù)據(jù)、貨幣數(shù)據(jù)、日期和時間數(shù)據(jù)、字符串等。下面列舉幾個常用的數(shù)據(jù)類型:
- int:整型,絕大多數(shù)數(shù)值型的數(shù)據(jù)都可以使用這種數(shù)據(jù)類型,存儲-231到231之間的整數(shù)。占4字節(jié)空間
- bit:整型,取值0、1或NULL。存儲只有兩種可能值的數(shù)據(jù),如Yes或No
- money:表示錢和貨幣值。存儲從-922 337 203 685 477.5808 到 922 337 203 685 477.5807之間的數(shù)據(jù),精確到貨幣單位的萬分之一。占8 字節(jié)空間
- char:存儲固定長度,非 Unicode 字符數(shù)據(jù)。須指定列長,最多包含 8000 個字符
- varchar:存儲可變長度,非 Unicode 字符數(shù)據(jù)。需要指定該列的最大長度,最多包含231個字符
- text:存儲大量的非 Unicode字符數(shù)據(jù)。最多可以有231-1或大約20億個字符
- date:日期,存儲從公元元年1月1日到公元9999年 12月31日間所有的日期數(shù)據(jù)。占3字節(jié)空間
- time:表示一天中某個時間,不能感知時區(qū)且基于 24 小時制。占5字節(jié)空間
- datetime:表示日期和時間。存儲從1753年1月1日到9999年12月31日間所有的日期和時間數(shù)據(jù)。占8個字節(jié)空間
了解了數(shù)據(jù)類型之后,我們來創(chuàng)建一個用戶及密碼的表。如下圖:
在創(chuàng)建表的字段定義部分,"not null"表示不為空,"default"用于設(shè)置默認的密碼字符串,"primary"用于設(shè)置主鍵。
3)刪除一個數(shù)據(jù)表
"drop table語句":用于刪除庫中的表,需要指定"庫名.表名"作為參數(shù);若只指定表名參數(shù),則需要先通過執(zhí)行use語句切換到目標庫。示例:
4)刪除一個數(shù)據(jù)庫
"drop database語句":用于刪除指定的庫,需要指定庫名作為參數(shù)。如上圖。
4.管理表中的數(shù)據(jù)記錄
1)插入數(shù)據(jù)記錄
"insert into語句":用于向表中插入新的數(shù)據(jù)記錄。語句格式為:"insert into 表名(字段1,字段2,...) values(字段1的值,字段2的值,...)"。
示例:向auth庫中的users表插入一條記錄,用戶名為"zhangsan",對應的密碼為"123456"。如下圖:
注:values部分的值應與前面指定的各字段逐一對應;如果這條記錄完整的包括了表中所有字段的值,則插入語句中指定字段的部分可以省略,可以如上圖中插入"lisi"這條記錄一樣。
2)查詢數(shù)據(jù)記錄
"select語句":用于從指定的表中查找符合條件的數(shù)據(jù)記錄。語句格式為:"select 字段名1,字段名2,... from 表名 where 條件表達式"。當要查詢所有字段時,可以使用通配符"*",若要顯示所有的數(shù)據(jù)記錄,則可以省略where條件語句。如下圖:
3)修改數(shù)據(jù)記錄
"update語句":用于修改、更新表中的數(shù)據(jù)記錄。語句格式為:"update 表名 set 字段名1=字段值1,字段名2=字段值2,... where 條件表達式"。
示例:修改"lisi"用戶的密碼字段為"123.abc"。如下圖:
在MySQL數(shù)據(jù)庫服務器中,用于訪問數(shù)據(jù)庫的各種用戶(如root)信息都保存在mysql庫中的user表中,熟練的管理員除了可以使用mysqladmin工具更改密碼外,還可以直接修改該表中的數(shù)據(jù)記錄來更改密碼。如:"update mysql.user set password=password('123.abc') where user='root';"(可以試著做一下)
4)刪除數(shù)據(jù)記錄
"delete語句":用于刪除表中的數(shù)據(jù)記錄。語句格式為:"delete from 表名 where 條件表達式"。
示例:刪除"lisi"記錄。如下圖:
特別注意:在執(zhí)行update、delete語句時,通常都帶where條件,不帶條件的update語句和delete語句會修改或刪除所有的記錄,是非常危險的操作。
5.數(shù)據(jù)庫用戶授權(quán)
MySQL數(shù)據(jù)庫的root用戶賬號擁有對所有庫、表的全部權(quán)限,頻繁的使用root賬號會給數(shù)據(jù)庫服務器帶來一定的安全隱患。實際工作中,通常會建立一些低權(quán)限的用戶,只負責一部分庫、表的管理和維護操作,甚至可以對查詢、修改、刪除記錄等各種操作做進一步的細化限制,從而降低數(shù)據(jù)庫的安全風險。
1)授予權(quán)限
"grant語句":專門用來設(shè)置數(shù)據(jù)庫用戶的訪問權(quán)限。當指定的用戶名不存在時,grant語句將會創(chuàng)建新的用戶,否則,grant語句用于修改用戶信息。
語句格式為:"grant 權(quán)限列表 on 庫名.表名 to 用戶名@來源地址 [ identified by '密碼']"
注意事項:
- 權(quán)限列表:用于授權(quán)使用的各種數(shù)據(jù)庫操作,以逗號進行分隔,如"select,insert,update"。使用"all"表示所有權(quán)限,可以授權(quán)執(zhí)行任何操作
- 庫名.表名:用于指定授權(quán)操作的庫和表的名稱,其中可以使用通配符"*"。例如:使用"auth.*"表示授權(quán)操作的對象為auth庫中的所有表。
- 用戶名@來源地址:用于指定用戶名稱和允許訪問的客戶機地址,即誰能連接、能從哪里連接。來源地址可以是域名、IP地址,還可以使用通配符"%",表示某個區(qū)域或網(wǎng)段內(nèi)的所有地址,如:"%.benet.com""192.168.1.%"等。
- identified by:用于設(shè)置用戶連接數(shù)據(jù)庫時所使用的密碼字符串。在新建用戶時,若省略"identified by"部分,則用戶的密碼為空。
示例:添加一個名為"wangwu"的數(shù)據(jù)庫用戶,并允許其從本機訪問,對auth庫中的所有表具有查詢權(quán)限,驗證密碼為"123456",并驗證。如下圖:
2)查看權(quán)限
"show grants語句":專門用來查看數(shù)據(jù)庫用戶的授權(quán)信息,通過for子句可以指定查看的用戶對象(必須與授權(quán)時使用的對象名稱一致)。語句格式為:"show grants for 用戶名@來源地址"。
示例:查詢"wangwu"的權(quán)限。如下圖:
3)撤銷權(quán)限
"revoke 語句":用于撤銷指定用戶的數(shù)據(jù)庫權(quán)限,撤銷權(quán)限后的用戶任然可以連接到mysql服務器,但將被禁止執(zhí)行對應的數(shù)據(jù)庫操作。語句格式為:"revoke 權(quán)限列表 on 數(shù)據(jù)庫名.表名 from 用戶名@來源地址"
示例:撤銷"wangwu"對auth庫的所有權(quán)限。如下圖:
——————— 本節(jié)完 ———————
若希望了解更多關(guān)于MySQL語句的知識,可以參閱MySQL的在線手冊。
總結(jié)
以上是生活随笔為你收集整理的mysql中日期相减_如何使用MySQL数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ue4 怎么传递变量到另一个蓝图_资深建
- 下一篇: mysql sql优化_MySQL数据库