您好,登錄后才能下訂單哦!
下文主要給大家?guī)?nbsp;MySql基本操作及開發(fā)經(jīng)常使用到哪些,希望這些內容能夠帶給大家實際用處,這也是我編輯 MySql基本操作及開發(fā)經(jīng)常使用到哪些這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。
MySQL語句的規(guī)范
(1):關鍵字與函數(shù)名稱全部大寫
(2):數(shù)據(jù)庫名稱,表名稱,字段名稱全部小寫
(3):SQL語句必須以分號結尾
1:命令行模式啟動mysql服務
net start mysql
2:命令行模式關閉mysql服務
net stop mysql
3:mysql退出
mysql>exit;
mysql>quit;
mysql>\q;
4:顯示當前云服務器版本
select version();
5:顯示當前日期時間
select now();
6:顯示當前用戶
select user();
7:創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE 數(shù)據(jù)庫名;
8:查看當前云服務器下的數(shù)據(jù)表列表
SHOW DATABASES;
9:查看警告信息
SHOW WARNINGS;
10:顯示數(shù)據(jù)庫創(chuàng)建的時候顯示的指令是多少
SHOW CREATE DATABASE 數(shù)據(jù)庫名;
11:指定數(shù)據(jù)庫的編碼方式
CREATE DATABASE IF NOT EXISTS 數(shù)據(jù)庫名 CHARACTER SET gbk;
12:修改數(shù)據(jù)庫
13:修改數(shù)據(jù)庫的編碼方式
ALTER DATABASE 數(shù)據(jù)庫名 CHARACTER SET = UTF8;
14:刪除數(shù)據(jù)庫
DROP DATABASE 數(shù)據(jù)庫名;
15:登錄mysql客戶端數(shù)據(jù)庫
mysql -u賬戶 -p密碼 -P端口號 -hip地址
16:打開數(shù)據(jù)庫
(連貫操作
第一SHOW DATABASES;
第二USE 數(shù)據(jù)庫名
第三SHOW TABLES;
)
USE test;
17:(顯示當前用戶打開的數(shù)據(jù)庫)
SELECT DATABASE();
18:創(chuàng)建數(shù)據(jù)表(UNSIGNED不可以為負)
CREATE TABLE [IF NOT EXISTS] 數(shù)據(jù)表名(
數(shù)據(jù)表列名稱 數(shù)據(jù)類型,
username VARCHAR(20),
age TINYINT UNSIGNED,
salary FLOAT(8,2) UNSIGNED
);
19:查看數(shù)據(jù)表
SHOW TABLES;
SHOW TABLES FROM mysql;//查看mysql的數(shù)據(jù)表
20:查看數(shù)據(jù)表結構
SHOW COLUMNS FROM 數(shù)據(jù)表的名稱
21:向數(shù)據(jù)表中寫入記錄,插入記錄
INSERT [INTO] 表的名字[(col_name,...)] 值(val,...)
INSERT t1 VALUES('TOM',22,8000.25);
22:記錄的查找命令SELECT(查看表里面的內容)
記錄查找
SELECT * FROM t1;
23:空值和非空值
NULL:字段值可以為空
NOT NULL:字段值禁止為空
查看表的結構DESC 表名;
24:自動編號
AUTO_INCREMENT
自動編號,且必須與主鍵組合使用
默認情況下,起始值為1,每次的增量為1;
25:主鍵PRIMARY KEY(primary key)
主鍵約束
每張數(shù)據(jù)表只能存在一個主鍵
主鍵保證記錄的唯一性
主鍵自動為NOT NULL;
26:唯一約束UNIQUE KEY
唯一約束
唯一約束可以保證記錄的唯一性
唯一約束的字段可以為空值
每張數(shù)據(jù)表可以存在多個唯一約束
27:默認約束DEFAULT
默認值
當插入記錄時,如果沒有明確為字段賦值,則自動賦予默認值
擴展,修改表的名字
1:下面詳細的說一下以后經(jīng)常使用的命令和操作,方便大家學習和自我腦補
(首先打開mysql自帶的命令行輸入密碼即可登錄,必須保證mysql的服務啟動起來,不然輸入密碼按enter鍵會閃退,如何起服務請自行腦補)
2:(登錄以后首先查看自己的mysql的數(shù)據(jù)庫,mysql自帶四個數(shù)據(jù)庫,其他是自己創(chuàng)建的)
3:(做項目首先就是先創(chuàng)建一個數(shù)據(jù)庫,如下圖所示,CREATE DATABASE 數(shù)據(jù)庫名,我強烈建議mysql語句大寫,以示區(qū)別,純屬個人建議與習慣,最后的分號一定要加上,切記)
4:(創(chuàng)建好數(shù)據(jù)庫可以查詢一下使用SHOW DATABSES;命令,切記DATABASES后面又一個s,后面加分號;結束按enter鍵查詢即可)
5:(刪除創(chuàng)建好的數(shù)據(jù)庫,命令是DROP DATABASE 數(shù)據(jù)庫名;切記加分號;)
6:(再次查詢自己的數(shù)據(jù)庫顯示已經(jīng)刪除了)
7:(在此我使用以前創(chuàng)建的數(shù)據(jù)庫demo,查看數(shù)據(jù)庫以后就可以使用USE 數(shù)據(jù)庫名;切換到某一個數(shù)據(jù)庫,然后操作這個數(shù)據(jù)庫里面的數(shù)據(jù)表)
8:(顯示這個數(shù)據(jù)庫里面的數(shù)據(jù)表,SHOW TABLES;顯示這個數(shù)據(jù)庫里面的數(shù)據(jù)表,這是以前創(chuàng)建的數(shù)據(jù)表)
9:(顯示后發(fā)現(xiàn)沒有自己想要的,就自行創(chuàng)建一個數(shù)據(jù)表,命令CREATE TABLE 數(shù)據(jù)表名(字段名 字段的數(shù)據(jù)類型,。。。。); 需要注意的就是最后);后面的分號,一定要加上去,格式如下圖所示,創(chuàng)建一個最簡單的數(shù)據(jù)表。 )
10:(創(chuàng)建好數(shù)據(jù)表查看創(chuàng)建好的數(shù)據(jù)表,命令上面已經(jīng)說過,不作多敘述)
11:(當創(chuàng)建的數(shù)據(jù)表不符合自己的需求時刪除即可,命令如下,DROP TABLE 數(shù)據(jù)表名; 即可刪除創(chuàng)建好的數(shù)據(jù)表)
12:(創(chuàng)建命令上面說過,不作多敘述,這里加入了mysql的約束,在id加上了主鍵PRIMARY KEY和自動增加AUTO_INCREMENT這兩個約束,需要注意的就是主鍵和自動增加的單詞別拼寫錯誤了,不然命令就會報錯)
13:(再次查看自己創(chuàng)建好的數(shù)據(jù)表)
14:(查看自己創(chuàng)建好的數(shù)據(jù)表的結構,下面顯示了字段名稱,字段的類型,字段是否為空,是否為主鍵,和是否自動增加等等)
15:(創(chuàng)建數(shù)據(jù)表的目的就是使用它,下面就是插入一條語句,命令INSERT INTO 數(shù)據(jù)表名 VALUES(字段的值); 字段的值需要注意的是:當添加的字段的數(shù)據(jù)類型是int類型,直接寫值,如果添加的字段的類型是varchar類型和日期類型,使用單引號把值包起來,格式如下圖所示即可。)
16:(插入完成后就可以查看自己的數(shù)據(jù)表里面是否插入成功,命令SELECT * FROM 數(shù)據(jù)表名;)
17:(插入的方式除了上面那種還可以使用下面這種,由于id是自動增加的,所以id那個字段可以省略,其他字段的添加內容即可,需要注意的是數(shù)據(jù)表名(字段名) 和values(字段值),必須一 一對應,格式如下所示。)
18:(然后再次查看數(shù)據(jù)表里面的內容即可)
19:(更新操作,命令UPDATE 數(shù)據(jù)表明 SET 更新的內容 WHERE 更新的條件)
20:(更新操作完畢后查看是否更新完成)
21:(刪除命令,如下所示,DELETE FROM 數(shù)據(jù)表名 WHERE 刪除的條件,或者直接DELETE FROM 數(shù)據(jù)表名,即把這個數(shù)據(jù)表全部刪除,這里不做演示,請自行腦補)
22:(然后查看自己的數(shù)據(jù)表即可,已經(jīng)完成刪除了)
23:(查詢的方式上圖已經(jīng)說了,如SELECT * FROM 數(shù)據(jù)表名;請自行腦補,下面說一下其他的查詢方式,只查詢部分內容,SELECT 查詢的字段 FROM 數(shù)據(jù)表名;如下圖)
24:(帶有條件的查詢語句,如下圖,SELECT * FROM 數(shù)據(jù)表名 WHERE 查詢條件)
25:(查詢的時候也可以起別名,下面給字段起別名,命令SELECT 字段名 AS 別名,... FROM 數(shù)據(jù)表名)
26:(查詢的時候也可以起別名,下面給字段起別名,命令SELECT 字段名 別名,... FROM 數(shù)據(jù)表名,需要注意的是也可以將AS省去也可)
27:(也可以將數(shù)據(jù)表名起別名,格式如下,請自行腦補)
28:(distinct,去除表里面重復語句查詢;記錄語句 select distinct * from 表名;)由于我的數(shù)據(jù)表里面的id設置為主鍵了,無法添加重復的值,在此不做演示。請自行腦補。。。。。。
29:(第一,運算符 < > >= <= WHERE的條件查詢需要多做練習,如下圖所示,請自行腦補WHERE 后面是條件)
30:(in:在范圍內 代表在范圍內的,如下圖所示)
31:(in后面也可以加多個查詢值)
32:(第三,and:在where里面如果有多個條件,表示多個條件同時滿足)
33:(第三,and:在where里面如果有多個條件,表示多個條件同時滿足,可以是范圍也可以是具體的)
34:(第四,得到區(qū)間范圍的值,注意使用AND 和BETWEEN ... AND的區(qū)別,容易出錯)
35:(第五,like:模糊查詢 ; _下劃線代表一個字母,%代表多個字母)
36:(查詢當前的時間)
37:(注意:order by寫在select語句的最后 ;降序 order by 要排序字段 desc)
38:(第一,升序 order by 要排序字段 asc(asc可以省略,默認的情況下就是升序))
39:(排序ORDER BY需要寫在最后面,前面可以加條件控制篩選后進行排序升序或者降序)
40:聚集函數(shù)的使用
(count()函數(shù),根據(jù)查詢的結果,統(tǒng)計記錄數(shù),寫法 select count(*) from ...where....)
41:(還可以為count(*)起別名,如下圖所示)
42:(還可以使用WHERE進行篩選條件統(tǒng)計查詢)
43:(sum()函數(shù),求和的函數(shù),寫法 select sum(要進行求和字段) from ...where....)
44:(下圖也是求平均數(shù)和45的AVG函數(shù)做對比)
45:(avg()函數(shù),計算的平均數(shù)的函數(shù),寫法 select avg(要計算平均數(shù)的字段名稱) from ...)
46:(max()函數(shù):計算最大值,寫法 select max(字段) from...)
47:(min()函數(shù):計算最小值,寫法 select min(字段) from...)
48:(分組使用 group by 根據(jù)分組的字段 WHERE子句里面不能寫具體函數(shù),寫了就報錯,我在這里已經(jīng)重新創(chuàng)建新的數(shù)據(jù)表,請自行腦補)
49:(在分組的基礎之上再進行條件的判斷 having,后面可以寫聚集函數(shù),因為使用WHERE后面無法使用具體的聚集函數(shù),所以使用HAVING后面加聚集函數(shù)進行使用)
(上下兩張圖做對比,先分類name然后把一樣類求總和)
50:分頁查詢,LIMIT 0,5;執(zhí)行分頁查詢,第一個數(shù)字代表從那個開始,第二個數(shù)字代表一頁有幾個。
舉兩個例子,上下如圖
51:多表查詢,(笛卡爾乘積);連接查詢(是將兩種或者兩種以上的表按照某種條件連接起來,從中選取需要的數(shù)據(jù))
(后面介紹一下:內連接查詢,外連接查詢,左連接查詢,右連接查詢,多條件連接查詢)
52:內連接查詢:(是一種常見的連接查詢,內鏈接查詢可以查看兩個多兩個以上的表)需要注意的是‘’去掉也可以執(zhí)行的。也可以查詢詳細字段,將詳細字段替換掉*即可。不過這樣寫有缺陷,不知道查詢的是那個表里面的。
53:外連接:外連接包含左連接和右連接,如下(可以查詢一個表的所有信息)
54:左連接查詢:(可以查詢出表名1 的所有記錄,而表名2中只能查出匹配的記錄)
左連接別名查詢,以后開發(fā)可能會經(jīng)常這樣使用,起別名,可以省去AS。
55:右連接查詢:(可以查詢出表名2 的所有記錄,而表名1中只能查出匹配的記錄);右連接別名查詢省去沒寫,請自行腦補。
56:多條件查詢,其實就是后面使用AND連接一下,進行多條件查詢即可。
57:子查詢
58:帶IN關鍵字的子查詢
一個查詢語句的條件可能落在另一個SELECT語句的查詢結果中
(帶NOT IN關鍵字的子查詢)
59:帶有比較運算符的子查詢
子查詢可以使用比較運算符
60:帶有EXISTS關鍵字的子查詢
假如子查詢查詢到記錄,其實就是判斷一下內層為ture,則進行外層查詢,如果為false,不執(zhí)行外層查詢
帶有NOT EXISTS關鍵字的子查詢
61:帶ANY關鍵字的子查詢
ANY關鍵字表示滿足其中任一條件
62:帶ALL關鍵字的子查詢
ALL關鍵字表示滿足所有條件
63:合并查詢結果
64:UNION , 使用UNION關鍵字是,數(shù)據(jù)庫系統(tǒng)會將所有的查詢合并到一起,然后去除掉相同的記錄
65:UNION ALL ,使用UNION ALL,不會去除掉系統(tǒng)重復的記錄
66:索引引入
索引定義:索引是由數(shù)據(jù)庫表中一列或者多列組合而成,其作用是提高對表中數(shù)據(jù)的查詢速度,類似于圖書的目錄,方便快速定位,尋找指定的內容
索引的優(yōu)缺點:
優(yōu)點:提高查詢數(shù)據(jù)的速度
缺點:創(chuàng)建和維護索引的時間增加了。
67:索引分為普通索引
這類索引可以創(chuàng)建在任何數(shù)據(jù)類型中
68:唯一索引
使用UNIQUE參數(shù)可以設置,在創(chuàng)建唯一索引時,限制該索引的值必須時唯一的
(唯一索引,起別名,在index后面加上自己取的別名即可。)
69:全文索引(由于不支持,咱不演示)
使用FULLTEXT參數(shù)可以設置,全文索引只能創(chuàng)建在CHAR,VARCHAR,TEXT類型的字段上。主要作用就是提高查詢較大字符串類型的速度,只有MYISAM引擎支持該索引,mysql默認引擎不支持
70:單列索引(上面寫的兩種都是單列索引,不多敘述)
在表中可以給單個字段創(chuàng)建索引,單列索引可以時普通索引,也可以是唯一索引,還可以時全文索引
71:多列索引
多列索引在表的多個字段上創(chuàng)建一個索引
72:空間索引(由于不支持,咱不演示)
使用spatial參數(shù)可以設置空間索引,空間索引只能創(chuàng)建在空間數(shù)據(jù)類型上,這樣可以提高系統(tǒng)獲取空間數(shù)據(jù)的效率,只有MYISAM引擎支持該索引,mysql默認引擎不支持
(上面是在創(chuàng)建數(shù)據(jù)表的時候創(chuàng)建索引,下面介紹一下在已存在的表上創(chuàng)建索引)
73:在已經(jīng)創(chuàng)建好的數(shù)據(jù)表上面創(chuàng)建索引如下圖所示
(在已經(jīng)創(chuàng)建好的數(shù)據(jù)表上面創(chuàng)建唯一索引如下圖所示)
(在已經(jīng)創(chuàng)建好的數(shù)據(jù)表上面創(chuàng)建多列索引如下圖所示)
74:使用ALTER TABLE來創(chuàng)建索引
(使用ALTER TABLE來創(chuàng)建唯一索引)
(使用ALTER TABLE來創(chuàng)建多列索引)
75:刪除索引
76:視圖的引入
1:視圖是一種虛擬的表,是從數(shù)據(jù)庫中一個或者多個表中導出來的表
2:數(shù)據(jù)庫中只存放了視圖的定義,而沒有存放視圖中的數(shù)據(jù),這些數(shù)據(jù)存放在原來的表中
3:使用視圖查詢數(shù)據(jù)時,數(shù)據(jù)庫系統(tǒng)會從原來的表中取出對應的數(shù)據(jù)
77:視圖的作用
1:使操作簡便化
2:增加數(shù)據(jù)的安全性
3:提高表的邏輯獨立性
78:創(chuàng)建視圖
(然后使用創(chuàng)建的視圖進行查詢即可查詢出數(shù)據(jù)表里面的內容)
(上面創(chuàng)建的視圖然后進行查詢好像意義不大,下面創(chuàng)建視圖v2,然后對數(shù)據(jù)表里面的部分內容進行查詢,增加安全性)
(然后使用創(chuàng)建的視圖進行查詢即可查詢出數(shù)據(jù)表里面的內容)
(也可以利用視圖修改名字,如下圖)
(然后使用創(chuàng)建的視圖進行查詢即可查詢出數(shù)據(jù)表里面的內容)
79:多表視圖的創(chuàng)建
(然后使用創(chuàng)建的視圖進行查詢即可查詢出數(shù)據(jù)表里面的內容)
80:查看視圖的基本信息
81:查看視圖的基本信息,對比顯示出視圖是一個虛表
82:查看視圖的詳細信息
83:CREATE修改視圖,如果視圖不存在則創(chuàng)建,如果存在則修改
(然后使用修改后的視圖進行查詢即可查詢出數(shù)據(jù)表里面的內容)
84:ALTER修改視圖。
(然后使用修改后的視圖進行查詢即可查詢出數(shù)據(jù)表里面的內容)
85:更新視圖
更新視圖是指通過視圖來插入(INSERT),更新(UPDATE),刪除(DELETE)表中的數(shù)據(jù),因為視圖是一個虛擬的表,其中沒有數(shù)據(jù)。通過視圖更新時,都是轉換基本表更新。更新視圖時,只能更新權限范圍內的數(shù)據(jù),超出了范圍,就不能更新
插入(INSERT),
更新(UPDATE),
刪除(DELETE)
86:刪除視圖
刪除視圖是指刪除數(shù)據(jù)庫中的已經(jīng)存在的視圖,刪除視圖時,只能刪除視圖的定義,不會刪除數(shù)據(jù);(視圖是虛表)
87:觸發(fā)器(TRIGGER)的引入
觸發(fā)器是由事件來觸發(fā)某個操作,這些事件包括INSERT語句,UPDATE語句,DELETE語句。當數(shù)據(jù)庫系統(tǒng)執(zhí)行這些事件時,就會激活觸發(fā)器執(zhí)行相應的操作
88:創(chuàng)建與使用觸發(fā)器
創(chuàng)建只有一個執(zhí)行語句的觸發(fā)器
(過度變量new或者old,就是剛剛插入的那條數(shù)據(jù),具體的一條數(shù)據(jù)。)
(然后執(zhí)行插入語句,可以在圖形化工具中快速看到插入數(shù)據(jù)后,另一個表發(fā)生了變化)
(創(chuàng)建多個執(zhí)行語句的觸發(fā)器)
(然后執(zhí)行刪除語句,可以在圖形化工具中快速看到插入數(shù)據(jù)后,另兩個表發(fā)生了變化)
89:查看觸發(fā)器
90:刪除觸發(fā)器
對于以上關于MySql基本操作及開發(fā)經(jīng)常使用到哪些,大家是不是覺得非常有幫助。如果需要了解更多內容,請繼續(xù)關注我們的行業(yè)資訊,相信你會喜歡上這些內容的。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。