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