在我們?nèi)粘I钪信紶枙龅揭恍┳约翰恢廊绾谓鉀Q的問題,比如使用安裝好的mysql。那么我們應(yīng)該怎樣解決這種自己不知道如何使用安裝好的mysql的情況呢?那么接下來就由我來介紹一下使用安裝好的mysql的步驟吧。
創(chuàng)新互聯(lián)建站是一家專業(yè)提供下城企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、html5、小程序制作等業(yè)務(wù)。10年已為下城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
本次操作以Dell電腦為例,具體操作步驟如下:
第一步:
首先,打開MySQLWorkbench,雙擊打開即可。打開后的界面如下所示,然后選擇數(shù)據(jù)庫實例,雙擊進(jìn)行登錄。圖中數(shù)據(jù)庫的實例是LocalinstanceMYSQL57
第二步:
然后,輸入用戶名和密碼進(jìn)行登錄。如下圖所示:
第三步:
登錄成功后,界面如下所示。其中,區(qū)域1顯示的是數(shù)據(jù)庫服務(wù)器中已經(jīng)創(chuàng)建的數(shù)據(jù)庫列表。區(qū)域2是關(guān)于數(shù)據(jù)庫的操作列表。區(qū)域三是sql的編輯器和執(zhí)行環(huán)境,區(qū)域4是執(zhí)行結(jié)果的列表
第四步:
在sql的編輯器中輸入測試語句,如圖所示,其中world數(shù)據(jù)庫是mysql自帶的測試數(shù)據(jù)庫,然后選擇執(zhí)行(或者使用快捷鍵ctrl+enter)。執(zhí)行成功后,查詢結(jié)果會顯示在下面的列表中。
第五步:
使用完畢后,直接退出,并且如果無需數(shù)據(jù)庫的后繼操作的話,記得關(guān)掉MySQL的服務(wù)
看了我的方法,現(xiàn)在你學(xué)會如何使用安裝好的mysql了嗎?學(xué)會了的話就快快把這個方法分享出去,讓更多的人知道如何使用安裝好的mysql。以上就是使用安裝好的mysql的步驟。
本文章基于Dell品牌、Windows10系統(tǒng)撰寫的。
進(jìn)入 MySQL
#mysql -h192.168.110.xxx -uroot -p -P 3306 (回車后輸入密碼,即可進(jìn)入mysql)
1、顯示 數(shù)據(jù)庫 列表
mysqlshow databases; (注:MySQL語句分隔符為“;”)
默認(rèn)有三個數(shù)據(jù)庫:information_schema、mysql和test。information_schema庫為MySQL默認(rèn)字典庫,mysql庫很重要它里面有MySQL的系統(tǒng)信息,我們改密碼和新增用戶,實際上就是用這個庫進(jìn)行操作。
2、顯示庫中的數(shù)據(jù)表:
mysqluse mysql;(指定mysql庫)
mysqlshow tables;
3、顯示數(shù)據(jù)表的結(jié)構(gòu):
mysqldescribe yourtablename; / mysqldesc yourtablename
4、建庫:
mysqlcreate database yourdbname;
5、建表:
mysqlcreate table yourtablename (columnname colunmtype,...);
6、刪庫和刪表:
mysqldrop database yourdbname;
mysqldrop table yourtablename;
7、將表中記錄清空:
mysqldelete from yourtablename;
8、顯示表中的記錄:
mysqlselect * from yourtablename;
9、舉個例子:一個建庫和建表以及插入數(shù)據(jù)的實例
mysqlcreate database world; //建立庫world
mysqluse world;//打開庫world
mysqlcreate table city //建立表city
(IDint(3) not null auto_increment ,
Name char(30) notnull default '',
CountryCode char(3) not null default '',
District char(20) not null default '',
Population integer not null default '0',
Primary key ('ID') ); //建表結(jié)束
//以下為插入字段
mysqlinsert intocity values('','Kabul','AFG','Kabol','1780000');
mysqlinsert intocity values('','Beijing','CHN','Beijing','1780001');
出處:mysqlpub.com ,不斷完善更新中。
方法如下:
1、首先打開Mysql命令行編輯器,連接Mysql數(shù)據(jù)庫;
2、使用所要操作的數(shù)據(jù)庫,先顯示一下數(shù)據(jù)庫中的表;
3、顯示一下表結(jié)構(gòu),了解一下表中的列;
4、向表插入數(shù)據(jù),insert into 表名 (列名) values (值);
5、查詢表可以看到所插入的數(shù)據(jù),select * from 表名;
6、可以再插入一個數(shù)據(jù),顯示一下。
擴(kuò)展資料:
MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于?Oracle?旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的?RDBMS?(Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件。
MySQL是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。
MySQL所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。
由于其社區(qū)版的性能卓越,搭配?PHP?和?Apache?可組成良好的開發(fā)環(huán)境。
與其他的大型數(shù)據(jù)庫,例如?Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于 MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。
Linux作為操作系統(tǒng),Apache?或Nginx作為?Web?服務(wù)器,MySQL 作為數(shù)據(jù)庫,PHP/Perl/Python作為服務(wù)器端腳本解釋器。由于這四個軟件都是免費(fèi)或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng),被業(yè)界稱為“LAMP“或“LNMP”組合。
MyISAMMySQL 5.0 之前的默認(rèn)數(shù)據(jù)庫引擎,最為常用。擁有較高的插入,查詢速度,但不支持事務(wù)
InnoDB事務(wù)型數(shù)據(jù)庫的首選引擎,支持ACID事務(wù),支持行級鎖定, MySQL 5.5 起成為默認(rèn)數(shù)據(jù)庫引擎
BDB源 自 Berkeley DB,事務(wù)型數(shù)據(jù)庫的另一種選擇,支持Commit 和Rollback 等其他事務(wù)特性
Memory所有數(shù)據(jù)置于內(nèi)存的存儲引擎,擁有極高的插入,更新和查詢效率。但是會占用和數(shù)據(jù)量成正比的內(nèi)存空間。并且其內(nèi)容會在 MySQL 重新啟動時丟失
Merge將一定數(shù)量的 MyISAM 表聯(lián)合而成一個整體,在超大規(guī)模數(shù)據(jù)存儲時很有用
Archive非常適合存儲大量的獨(dú)立的,作為歷史記錄的數(shù)據(jù)。因為它們不經(jīng)常被讀取。Archive 擁有高效的插入速度,但其對查詢的支持相對較差
Federated將不同的 MySQL 服務(wù)器聯(lián)合起來,邏輯上組成一個完整的數(shù)據(jù)庫。非常適合分布式應(yīng)用
Cluster/NDB高冗余的存儲引擎,用多臺數(shù)據(jù)機(jī)器聯(lián)合提供服務(wù)以提高整體性能和安全性。適合數(shù)據(jù)量大,安全和性能要求高的應(yīng)用
CSV: 邏輯上由逗號分割數(shù)據(jù)的存儲引擎。它會在數(shù)據(jù)庫子目錄里為每個數(shù)據(jù)表創(chuàng)建一個 .csv 文件。這是一種普通文本文件,每個數(shù)據(jù)行占用一個文本行。CSV 存儲引擎不支持索引。
BlackHole:黑洞引擎,寫入的任何數(shù)據(jù)都會消失,一般用于記錄 binlog 做復(fù)制的中繼
EXAMPLE 存儲引擎是一個不做任何事情的存根引擎。它的目的是作為 MySQL?源代碼中的一個例子,用來演示如何開始編寫一個新存儲引擎。同樣,它的主要興趣是對開發(fā)者。EXAMPLE 存儲引擎不支持編索引。
另外,MySQL 的存儲引擎接口定義良好。有興趣的開發(fā)者可以通過閱讀文檔編寫自己的存儲引擎。
參考資料來源:百度百科:mySQL
1、打開瀏覽器搜索“sqlyog”并下載這個客戶端軟件。
2、然后安裝之后打開客戶端軟件。
3、然后點擊“新建”新建一個連接,然后填寫mysql主機(jī)地址、用戶名、密碼,端口,然后點擊下面的連接。
4、然后在左側(cè)選擇自己要連接的數(shù)據(jù)庫。
5、然后在Query下面的空白地方輸寫自己的sql語句。
6、然后點擊如圖所示的圖標(biāo),進(jìn)行執(zhí)行自己寫好的sql語句,就完成了sql的基本操作。
你好,
方法/步驟
1
登陸mysql
打cmd命令終端,如果已經(jīng)添加了mysql的環(huán)境變量,可以直接使用命令
mysql -uroot
直接回車,之后按提示輸入密碼,
如果未添加mysql的環(huán)境變量,可以切換到mysql的安裝目錄下的bin目錄,再使用
mysq -uroot
你也可以手動為mysql添加環(huán)境變量。這里就不介紹怎么添加環(huán)境變量的方法了
密碼輸入正確之后,就會出現(xiàn)“Welcome to the MySQL monitor. Commands end with ; or \g. ......”字樣,
命令行出現(xiàn)“mysql”字符前綴。現(xiàn)在你就可以使用命令對mysql進(jìn)行操作了。曾經(jīng)有沒有過這樣的經(jīng)歷,原來看見別人在命令行里面咔咔的猛敲時,就一通的崇拜,覺得這人很牛,現(xiàn)在你也可以讓別一通崇拜了。
mysql的所有命令都以";"或者\(yùn)g為結(jié)束符
2
新建數(shù)據(jù)庫
在新建數(shù)據(jù)庫之后,我們先設(shè)置一下字符集
mysqlSET NAMES utf8;
然后再創(chuàng)建數(shù)據(jù)庫
mysqlCREATE DATABASE lesson
3
顯示所有數(shù)據(jù)庫
mysqlSHOW DATABASES;
4
使用數(shù)據(jù)庫
mysqlUSE 數(shù)據(jù)庫名;
5
新建表
mysqlCREATE TABLE study(
id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '學(xué)生id號',
username varchar(30) NOT NULL DEFAULT '' COMMENT '學(xué)生名字',
class tinyint(3) unsigned NOT NULL,
sex enum('男','女','保密') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '保密' COMMENT '性別',
addtime int(10) NOT NULL DEFAULT '0',
PRIMARY KEY (id)
)ENGINE=InnoDB COMMENT = '學(xué)生表';
6
顯示所有表
mysqlSHOW TABLES;
7
修改表的名稱
mysqlRENAME TABLE study TO study_new ;
或者
mysqlALTER TABLE study_new RENAME TO study;
8
顯示字段信息
SHOW COLUMNS FROM study或者DESCRIBE study
9
插入數(shù)據(jù)
mysql insert into study (username,class,sex)VALUES('小王',1,'男'),('小四',2,'女');
10
查詢數(shù)據(jù)(使concat函數(shù)拼接數(shù)據(jù))
mysql SELECT username,CONCAT(class,'班'),sex FROM study;
11
刪除數(shù)據(jù)
mysqlDELETE FROM study WHERE id=1;
12
刪除數(shù)據(jù)表
DROP TABLE study;
13
刪除數(shù)據(jù)庫
mysql DROP DATABASE lesson;
MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),屬于Oracle旗下產(chǎn)品,是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一。
端口是3306。
表很多時,使用linux腳本,需要根據(jù)需要修改一下:
和創(chuàng)建一樣,可以加上 if exists
可兩篇文章:
如:
用于在已有的表中添加、刪除或修改列。
添加 ADD
或
默認(rèn)是添加到最后,但可以指定位置。 FIRST :添加最前
AFTER 字段名 :添加指定字段之后
例子:
刪除 DROP
修改 MODIFY 主要修改原列的類型或約束條件 同樣可以用 FIRST 和 AFTER 字段名 ,代表的是修改到哪里。
修改字段名 CHANGE
可以把表2的數(shù)據(jù)復(fù)制到表1中,但 不能復(fù)制約束性條件 。
單行
多行,注意 只有一個VALUES :
不寫 (行1, 行2...) 這一部分的話,默認(rèn)一一對應(yīng)
除了以上方法外,還可以用SET為每一行附上相應(yīng)的值。
假如沒有篩選的話,就給全部都修改了。可以用 WHERE 篩選。
假如 沒有篩選的話,就給全部刪除了 。相當(dāng)于清空。
清空
先把表刪除,然后再建一個。與 DELETE FROM 相比, TRUNCATE 的效率更快,因為 DELETE FROM 是把記錄逐條刪除的。
查詢執(zhí)行的順序
FROM -- WHERE -- SELECT -- GROUP BY -- HAVING -- ORDER BY -- LIMIT
注意
當(dāng)數(shù)據(jù)很大,上百萬的時候,使用LIMIT ... OFFSET ..的方式進(jìn)行分頁十分浪費(fèi)資源且耗時長。最好是結(jié)合WHERE使用,如:
REGEXP 使用正則表達(dá)進(jìn)行匹配。 查詢時,需要搭配WHERE或HAVING使用 。
兩個表之間有交集且要用到兩個表的數(shù)據(jù)時,可以使用內(nèi)連接查詢。
LEFT JOIN 關(guān)鍵字從左表(table1)返回所有的行,即使右表(table2)中沒有匹配。如果右表中沒有匹配,則結(jié)果為 NULL。
用法:
RIGHT JOIN 關(guān)鍵字從右表(table2)返回所有的行,即使左表(table1)中沒有匹配。如果左表中沒有匹配,則結(jié)果為 NULL。 把LEFT JOIN的表1、表2調(diào)換順序,就是REGHT JOIN 。
FULL OUTER JOIN 關(guān)鍵字只要左表(table1)和右表(table2)其中一個表中存在匹配,則返回行. 相當(dāng)于結(jié)合了 LEFT JOIN 和 RIGHT JOIN 的結(jié)果。
但 MySQL中不支持 FULL OUTER JOIN 。
即SELECT嵌套。
IN 一個查詢結(jié)果作為另一個查詢的條件。 如:
EXISTS 用于判斷查詢子句是否有記錄,如果有一條或多條記錄存在返回 True,否則返回 False。True時執(zhí)行。 如:
索引的本質(zhì)是一種排好序的數(shù)據(jù)結(jié)構(gòu)。利用索引可以提高查詢速度。
常見的索引有:
MySQL通過外鍵約束來保證表與表之間的數(shù)據(jù)的完整性和準(zhǔn)確性。 外鍵的使用條件:
外鍵的好處:可以使得兩張表關(guān)聯(lián),保證數(shù)據(jù)的一致性和實現(xiàn)一些級聯(lián)操作。
對已有的兩個表增加外鍵 比如:主表為A,子表為B,外鍵為aid,外鍵約束名字為a_fk_b
為子表添加一個字段,當(dāng)做外鍵
為子表添加外鍵約束條件
假如刪除記錄報錯: [Err] 1451 -Cannot deleteorupdatea parent row: aforeignkeyconstraintfails (...)
這是因為MySQL中設(shè)置了foreign key關(guān)聯(lián),造成無法更新或刪除數(shù)據(jù)??梢酝ㄟ^設(shè)置 FOREIGN_KEY_CHECKS 變量來避免這種情況。 第一步:禁用外鍵約束,我們可以使用: SETFOREIGN_KEY_CHECKS=0; 第二步:刪除數(shù)據(jù) 第三步:啟動外鍵約束,我們可以使用: SETFOREIGN_KEY_CHECKS=1; 查看當(dāng)前FOREIGN_KEY_CHECKS的值,可用如下命令: SELECT @@FOREIGN_KEY_CHECKS;
使用 UNION 來組合兩個查詢,如果第一個查詢返回 M 行,第二個查詢返回 N 行,那么組合查詢的結(jié)果一般為 M+N 行。
每個查詢必須包含相同的列、表達(dá)式和聚集函數(shù)。
默認(rèn)會去除相同行,如果需要 保留 相同行,使用 UNION ALL 。
只能包含一個 ORDER BY 子句,并且必須位于語句的最后 。
內(nèi)置函數(shù)很多, 見: MySQL 函數(shù)
我們一般使用 START TRANSACTION 或 BEGIN 開啟事務(wù), COMMIT 提交事務(wù)中的命令, SAVEPOINT : 相當(dāng)于設(shè)置一個還原點, ROLLBACK TO : 回滾到某個還原點下
一般的使用格式如下:
開啟事務(wù)時, 默認(rèn)加鎖
根據(jù)類型可分為共享鎖(SHARED LOCK)和排他鎖(EXCLUSIVE LOCK)或者叫讀鎖(READ LOCK)和寫鎖(WRITE LOCK)。
根據(jù)粒度劃分又分表鎖和行鎖。表鎖由數(shù)據(jù)庫服務(wù)器實現(xiàn),行鎖由存儲引擎實現(xiàn)。
除此之外,我們可以顯示加鎖
加鎖時, 如果沒有索引,會鎖表,如果加了索引,就會鎖行
InnoDB默認(rèn)支持行鎖,獲取鎖是分步的,并不是一次性獲取所有的鎖,因此在鎖競爭的時候就會出現(xiàn)死鎖的情況
解決方法:
即ACID特性:
由于并發(fā)事務(wù)會引發(fā)上面這些問題, 我們可以設(shè)置事務(wù)的隔離級別解決上面的問題.
MySQL的默認(rèn)隔離級別(可重復(fù)讀)
查看當(dāng)前會話隔離級別
方式1
方式2
設(shè)置隔離級別
主從集群的示意圖如下:
主要涉及三個線程: binlog 線程、 I/O 線程和 SQL 線程。
同步流程:
由于MySQL主從集群只會從主節(jié)點同步到從節(jié)點, 不會反過來同步, 所以需要讀寫分離
讀寫分離需要在業(yè)務(wù)層面實現(xiàn) , 寫數(shù)據(jù)只能在主節(jié)點上完成, 而讀數(shù)據(jù)可以在主節(jié)點或從節(jié)點上完成
索引是幫助MySQL高效獲取數(shù)據(jù)的排好序的數(shù)據(jù)結(jié)構(gòu)
MySQL的索引有
推薦兩個在線工具:
簡單來說, B樹是在紅黑樹(一個平衡二叉樹)的基礎(chǔ)上將一個節(jié)點存放多個值, 實現(xiàn)的, 降低了樹的高度, 每個節(jié)點都存放索引及對應(yīng)數(shù)據(jù)指針, 同一層的節(jié)點是遞增的
而B+樹在B樹的基礎(chǔ)上進(jìn)行優(yōu)化, 非葉子節(jié)點存放 子節(jié)點的開始的索引, 葉子節(jié)點存放索引和數(shù)據(jù)的指針, 且葉子節(jié)點之間有雙向的指針
如下示意圖:
不同的引擎, 主鍵索引存放的數(shù)據(jù)也不一樣, 比如常見的 MyISAM 和 InnoDB
MyISAM 的B+樹葉子節(jié)點存放表數(shù)據(jù)的指針, InnoDB 的B+樹葉子節(jié)點存放處主鍵外的數(shù)據(jù)
其他的:
即多個列組成一個索引, 語法:
由于聯(lián)合索引的B+樹的結(jié)構(gòu), 根據(jù)列建立, 所以我們的查找條件也要根據(jù)索引列的順序( where column1=x, column2=y,columnN... ), 否則會全表掃描
如果你對列進(jìn)行了 (+,-,*,/,!) , 那么都將不會走索引。
OR 引起的索引失效
OR 導(dǎo)致索引是在特定情況下的,并不是所有的 OR 都是使索引失效,如果OR連接的是 同 一個字段,那么索引 不會失效 , 反之索引失效 。
這個我相信大家都明白,模糊搜索如果你前綴也進(jìn)行模糊搜索,那么不會走索引。
這兩種用法,也將使索引失效。另 IN 會走索引,但是當(dāng)IN的取值范圍較大時會導(dǎo)致索引失效,走全表掃描, 見: MySQL中使用IN會不會走索引
不走索引。
走索引。
所以設(shè)計表的時候, 建議不可為空, 而是將默認(rèn)值設(shè)置為 "" ( NOT NULL DEFAULT "" )