MySQL筆記

一.安裝mysql

徹底刪除mysql并且重裝的方法

刪除
sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoreclean
重裝
sudo apt-get install mysql-server mysql-client

二.啟動(dòng)mysql
sudo service mysql start ##啟動(dòng)mysql服務(wù)器治唤;

mysql -u root -p ##root用戶鏈接服務(wù)器练湿,并輸入密碼;

mysql> SELECT VERSION(), CURRENT_DATE; ##查詢版本號(hào)和當(dāng)前日期;

mysql大小寫是等價(jià)的荷科,一般關(guān)鍵字大寫;

mysql>SELECT SIN(PI()/4, (4+1)*5);

兩個(gè)簡單的計(jì)算;

三.創(chuàng)建數(shù)據(jù)庫并插入數(shù)據(jù)

mysql> CREATE DATABASE mysql_shiyan;   ##創(chuàng)建一個(gè)數(shù)據(jù)庫
mysql> show databases;   ##顯示有哪些數(shù)據(jù)庫
mysql> use mysql_shiyan;    ##連接剛剛創(chuàng)建的數(shù)據(jù)庫讶凉,成功后顯示database changed
mysql>show tables; ##查看數(shù)據(jù)庫中的表

mysql>CREATE TABLE employee(id int(10), name char(20), phone int(12));

創(chuàng)建一個(gè)表employee ,里面包含三列

mysql> CREATE TABLE department
-> (
-> dpt_name CHAR(20),
-> dpt_phone INT(12)
-> );

再創(chuàng)建一個(gè)department的table

數(shù)據(jù)類型 大小(字節(jié)) 用途 格式
INT 4 整數(shù)
FLOAT 4 單精度浮點(diǎn)數(shù)
DOUBLE 4 雙精度浮點(diǎn)數(shù)

ENUM 單選,比如性別 ENUM('a','b','c')
SET 多選 SET('1','2','3')

DATE 3 日期 YYYY-MM-DD
TIME 3 時(shí)間點(diǎn)或持續(xù)時(shí)間 HH:MM:SS
YEAR 1 年份值 YYYY

CHAR 0~255 定長字符串
VARCHAR 0~255 變長字符串
TEXT 0~65535 長文本數(shù)據(jù)
mysql> SELECT * FROM employee; ##查看employee中的所有數(shù)據(jù)

mysql>INSERT INTO employee(id,name,phone) VALUES(01,’Tom’,110110110);
在employee中插入一個(gè)數(shù)據(jù)山孔;

插入SQL代碼:source懂讯,如:
Mysql>source /home/shiyanlou/Desktop/MySQL-04-01.sql

mysql>exit;     ##退出mysql,吃飯去了

四.約束

cd Desktop
git clone http://git.shiyanlou.com/shiyanlou/SQL3
sudo service mysql start
mysql -u root -p
w23256010

1.主鍵
主鍵 (PRIMARY KEY)是用于約束表中的一行台颠,作為這一行的標(biāo)識(shí)符褐望,在一張表中通過主鍵就能準(zhǔn)確定位到一行,因此主鍵十分重要。行中的主鍵不能有重復(fù)且不能為空瘫里。

2.默認(rèn)值約束
3.唯一約束
4.非空約束
5.外鍵約束

五.SELECT語句
首先生成三張表格department,employee,和project;
1.基本語句:
SELECT 列名 FROM 表名 WHERE 限制條件实蔽;
SELECT name,age FROM employee WHERE age>25;
SELECT name,age,phone FROM employee WHERE name='Mary';
2.AND且 OR或
SELECT name,age FROM employee WHERE age<25 OR age>30;
SELECT name,age FROM employee WHERE age>25 AND age<30;
3.IN 和 NOT IN
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN ('dpt3','dpt4');
4.通配符
其中 _ 代表一個(gè)未指定字符,% 代表不定個(gè)未指定字符
SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';
SELECT name,age,phone FROM employee WHERE name LIKE 'J%';
5.對結(jié)果排序
默認(rèn)情況下谨读,ORDER BY的結(jié)果是升序排列盐须,而使用關(guān)鍵詞ASC和DESC可指定升序或降序排序。 比如漆腌,我們按salary降序排列贼邓,SQL語句為:
SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;
7.內(nèi)置函數(shù)和計(jì)算
函數(shù)名: COUNT SUM AVG MAX MIN
作用: 計(jì)數(shù) 求和 求平均值 最大值 最小值

SELECT MAX(salary) AS max_salary,MIN(salary) FROM employee;  ##AS的作用是重命名

8.子查詢
設(shè)計(jì)多個(gè)表才能獲得所需信息;
如想要知道Tom所在部門做了幾個(gè)工程
SELECT of_dpt,COUNT(proj_name) AS count_project FROM project
WHERE of_dpt IN
(SELECT in_dpt FROM employee WHERE name='Tom');
9.連接查詢JOIN
把多個(gè)表當(dāng)成一個(gè)表來使用
SELECT id,name,people_num
FROM employee,department
WHERE employee.in_dpt = department.dpt_name
ORDER BY id;
定價(jià)于
SELECT id,name,people_num
FROM employee JOIN department
ON employee.in_dpt = department.dpt_name
ORDER BY id;

六.?dāng)?shù)據(jù)庫的刪除和修改
刪除一個(gè)database
mysql> DROP DATABASE ‘database name’;
修改表名
RENAME TABLE former_name TO new_name;
ALTER TABLE former_name TO new_name;
ALTER TABLE former_name TO new_name;
刪除table
DROP TABLE table_name;

對表的修改
1.增加一列
ALTER TABLE table name ADD COLUMN column_name data_type restrict;
ALTER TABLE table name ADD column_name data_type restrict;
規(guī)定列的位置
ALTER TABLE employee ADD weight INT(4) DEFAULT 120 AFTER age;

把weight加入age的后面闷尿;

或者在最后加上FIRST加在最前面塑径;
2.刪除一列
ALTER TABLE 表名字 DROP COLUMN 列名字;
ALTER TABLE 表名字 DROP 列名字;
3.重命名一列
ALTER TABLE 表名字 CHANGE 原列名 新列名 數(shù)據(jù)類型 約束;

后面的數(shù)據(jù)類型不能省略,否則重命名失敗

4.改變數(shù)據(jù)類型
ALTER TABLE 表名字 MODIFY 列名字 新數(shù)據(jù)類型;

對表的內(nèi)容修改
1.修改表中的某個(gè)值
UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 條件;
例如把’Tom’的age改為21填具,salary改為3000;
SELECT * FROM employee WHERE name=’Tom’;
UPDATE employee SET age=21,salary=3000 WHERE name=’Tom’;
2.刪除一行記錄
DELETE FROM 表名字 WHERE 條件;

六.索引及其他基本操作
1.索引
索引是一種與表有關(guān)的結(jié)構(gòu)统舀,它的作用相當(dāng)于書的目錄,可以根據(jù)目錄中的頁碼快速找到所需的內(nèi)容劳景。
當(dāng)表中有大量記錄時(shí)誉简,若要對表進(jìn)行查詢,沒有索引的情況是全表搜索:將所有記錄一一取出盟广,和查詢條件進(jìn)行一一對比闷串,然后返回滿足條件的記錄。這樣做會(huì)消耗大量數(shù)據(jù)庫系統(tǒng)時(shí)間筋量,并造成大量磁盤 I/O 操作烹吵。
而如果在表中已建立索引,在索引中找到符合查詢條件的索引值桨武,通過索引值就可以快速找到表中的數(shù)據(jù)肋拔,可以大大加快查詢速度。

對某個(gè)列添加索引:
ALTER TABLE 表名字 ADD INDEX 索引名 (列名);
CREATE INDEX 索引名 ON 表名字 (列名);
2.視圖
視圖是從一個(gè)或多個(gè)表中導(dǎo)出來的表呀酸,是一種虛擬存在的表凉蜂。
CREATE VIEW 視圖名(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表名字;
打印視圖:
SELECT * FROM v_emp;

3.導(dǎo)入導(dǎo)出
LOAD DATA INFILE ‘文件路徑’ INTO TABLE 表名字;
報(bào)錯(cuò):The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
是因?yàn)閙ysql沒有修改本地文件的權(quán)限,除非修改權(quán)限;
輸入mysql>show variables like '%secure%'; ##這個(gè)語句屌爆了
找到了secure_file_priv在/var/lib/mysql-files/
于是把load的文件放在這個(gè)路徑下就行了.
sudo cp 想要移動(dòng)的文件或路徑 移動(dòng)后的路徑
-b 同名,備分原來的文件 -f 強(qiáng)制覆蓋同名文件 -r 按遞歸方式保留原目錄結(jié)構(gòu)復(fù)制文件
導(dǎo)出也一樣要在secure_file_priv路徑下,語句是:
Mysql>SELECT 哪幾列 INTO OUTFILE ‘文件路徑’ FROM 表名字;

4.備份
mysqldump -u root -p 數(shù)據(jù)庫名>備份文件名; #備份整個(gè)數(shù)據(jù)庫
mysqldump -u root -p 數(shù)據(jù)庫名 表名字>備份文件名; #備份整個(gè)表

5.恢復(fù)
source 就是一條恢復(fù)語句

七.MySQL服務(wù)安裝及命令使用
Linux必須安裝MySQL-server和MySQL-client,想要更高級(jí)還要MySQL-Max RPM

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市性誉,隨后出現(xiàn)的幾起案子窿吩,更是在濱河造成了極大的恐慌,老刑警劉巖艾栋,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爆存,死亡現(xiàn)場離奇詭異,居然都是意外死亡蝗砾,警方通過查閱死者的電腦和手機(jī)先较,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門携冤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闲勺,你說我怎么就攤上這事曾棕。” “怎么了菜循?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵翘地,是天一觀的道長。 經(jīng)常有香客問我癌幕,道長衙耕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任勺远,我火速辦了婚禮橙喘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胶逢。我一直安慰自己厅瞎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布初坠。 她就那樣靜靜地躺著和簸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碟刺。 梳的紋絲不亂的頭發(fā)上锁保,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機(jī)與錄音南誊,去河邊找鬼身诺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛抄囚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播橄务,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼幔托,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蜂挪?” 一聲冷哼從身側(cè)響起重挑,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棠涮,沒想到半個(gè)月后谬哀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡严肪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年史煎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谦屑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡篇梭,死狀恐怖氢橙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恬偷,我是刑警寧澤悍手,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站袍患,受9級(jí)特大地震影響坦康,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诡延,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一涝焙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧孕暇,春花似錦仑撞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至座舍,卻和暖如春沮翔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背曲秉。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工采蚀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人承二。 一個(gè)月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓榆鼠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親亥鸠。 傳聞我的和親對象是個(gè)殘疾皇子妆够,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容