MySQL的安裝:
sudo apt-get install mysql-server mysql-client
基本命令:
- 1、創(chuàng)建數(shù)據(jù)庫
create database 數(shù)據(jù)庫名稱 charset=utf8;;
- 2省撑、刪除數(shù)據(jù)庫
drop database 數(shù)據(jù)庫名稱;
- 3、查看數(shù)據(jù)庫
show database;
- 4、使用(進(jìn)入)數(shù)據(jù)庫
use 數(shù)據(jù)庫名稱;
- 5罪既、查看數(shù)據(jù)庫當(dāng)中有多少張表
show tables;
- 數(shù)據(jù)類型三大類
1载弄、數(shù)值類型
2祝迂、字符串類型
3婿奔、日期和時間類型
- 常見數(shù)據(jù)類型
4.1 double浮點(diǎn)型
例如double(5,2)表示最多5位,其中必須有2位小數(shù),即最大值為999.99;4.2 char
固定長度字符串類型;
char(10)'abc '
varchar
可變長度字符串類型;
varchar(10)'abc'
text
字符串類型
blob
二進(jìn)制類型
date
提起類型,格式為:yyyy-MM-dd;
time
時間類型,格式為:hh:mm:ss;
datetime
日期時間類型,格式為:yyyy-MM-dd hh:mm:ss
- 6缺狠、創(chuàng)建學(xué)生表
CREATE TABLE 表名(
列名1 列名類型 [約束],
列名2 列名類型 [約束],
.....
列名N 類的類型 [約束]
)
- 7、添加一列
ALTER TABLE 表名 ADD 列名 數(shù)據(jù)類型;
- 8脸秽、刪除一列
ALTER TABLE students drop nums;
- 9、查看表的字段信息
desc 表名
- 10蝴乔、修改一個表的字段類型
ALTER TABLE 表名 MODIFY 字段名 數(shù)據(jù)類型;
- 11记餐、修改表名
RENAME TABLE 原始表名 TO 要修改的表名;
- 12、查看表的創(chuàng)建細(xì)節(jié)
SHOW CREATE TABLE 表名;
- 13薇正、修改表的字符集gbk
ALTER TABLE students character set gbk;
- 14片酝、修改表的列名
ALTER TABLE students change name newname varchar(20);
- 15囚衔、刪除表
DROP TABLE 表名;
- 16、查詢表中的所有數(shù)據(jù)
SELETE * FROM 表名;
- 17雕沿、插入操作:
INSERT INTO 表名 ( 列名1,列名2 ) VALUES (列值1, 列值2...);
- 例子
INSERT INTO students (id,name,age,email,score) VALUES (
2,'lisi',18,'wengwenyu@aliyun.com',null
);
- 18练湿、添加多條數(shù)據(jù)(批量插入):
VALUES后面以逗號隔開
INSERT INTO 表名(列名1,列名2....) VALUES(列值1,列值2),(列值1,列值2)....;
- 例子
INSERT INTO students (id,name,age,email,score) VALUES (2,'wangwu',20,'wengwenyu2@aliyun.com',20
),(
3,'maliu',21,'wengwenyu3@aliyun.com',22
);
- 19、更新操作
UPDATE 表名 SET 列名1=列值1, 列名2=列值2... WHERE 列名=值
- 20审轮、把所有學(xué)生的分?jǐn)?shù)改為90
UPDATE students SET score=90;
- 21肥哎、把姓名為zs的學(xué)生分?jǐn)?shù)修改為60
UPDATE students SET score=60 WHERE name='zs';
- 22、把姓名為lisi的年齡修改為20和分?jǐn)?shù)修改為70
UPDATE students SET age=30,score=70 WHERE name='lisi';
- 23疾渣、把wangwu的年齡在原來基礎(chǔ)上+1歲
UPDATE students SET age=age+1 WHERE name='wangwu'
- 24篡诽、修改數(shù)據(jù)庫密碼
mysqladmin -u root -p password 123456
- 25、刪除操作
如果不加過濾條件就是刪除所有數(shù)據(jù)
DELETE FROM 表名 [WHERE 列名=值]
例子:
DELETE FROM students WHERE name='amliu'
- 26榴捡、刪除所有數(shù)據(jù)
TRUNCATE TABLE 表名;
- DELETE 與 TRUNCATE的區(qū)別:
DELETE可以刪除指定數(shù)據(jù)也能刪除所有數(shù)據(jù) TRUNCATE只能刪除所有數(shù)據(jù)
DELETE刪除表中的數(shù)據(jù),表結(jié)構(gòu)還在;刪除后數(shù)據(jù)還可以找回
TRUNCATE刪除是把表直接DROP掉,然后再創(chuàng)建一個同樣的新表.刪除的數(shù)據(jù)不能找回.執(zhí)行速度比DELETE快
- 27杈女、查詢所有列
SELECT * FROM 表名;
- 結(jié)果集
結(jié)果集:
通過查詢語句查詢出來的數(shù)據(jù)以表的形式展示,我們稱這個表為虛擬結(jié)果集.存放再內(nèi)存中吊圾。
查詢返回的結(jié)果集就是一張?zhí)摂M表
- 28达椰、查詢指定的列
SELECT 列名1,列名2 FROM 表名;
-
29、條件查詢:
[圖片上傳失敗...(image-910912-1544545449024)]
BETWEEN...AND; 值在什么范圍
IN(set);
IS NULL; (為空)
IS NOT NULL; (不為空)
AND; 與
OR; 或
NOT; 非
- 30项乒、查詢性別為男,并且年齡為20的學(xué)生記錄
添加性別字段
ALTER table students add gender varchar(2);
查詢
SELECT * FROM students WHERE gender='男' AND age=20;
- 31啰劲、查詢學(xué)號為1001 或者 名為 zs 的記錄
SELECT * FROM students WHERE id=1001 OR name='zs';
- 32、查詢學(xué)號為1001 , 1002 ,1003的記錄
(1)SELECT * FROM students WHERE id = 1001 OR id = 1002 OR id = 1003;
(2)SELECT * FROM students WHERE id in (1001,1002,1003);
- 33板丽、查詢年齡為null的記錄
SELECT * FROM students WHERE age IS NULL;
- 34呈枉、查詢年齡在18-20之間的學(xué)生記錄
(1)SELECT * FROM students WHERE age>= 18 AND age<=20;
(2)SELECT * FROM students WHERE age BETWEEN 18 AND 20;
- 35、查詢性別非男的學(xué)生記錄
SELECT * FROM students WHERE gender != '男';
- 36埃碱、查詢姓名不為null的學(xué)生記錄
SELECT * FROM students WHERE name IS NOT NULL;
模糊查詢
- 37猖辫、查詢姓名由5個字母構(gòu)成的學(xué)生記錄
5個字母就是5個下劃線
SELECT * FROM students WHERE name LIKE '_____';
- 38、查詢姓名由5個字母構(gòu)成,并且第5個字母為's'的學(xué)生記錄
SELECT * FROM students WHERE name LIKE '____s';
- 39砚殿、查詢姓名以'm'開頭的學(xué)生記錄
SELECT * FROM students WHERE name LIKE 'm%';
- 40啃憎、查詢姓名中第二個字母為'u'的學(xué)生記錄
SELECT * FROM students WHERE name LIKE '_u%';
- 41、查詢姓名中包含's'字母的學(xué)生記錄
SELECT * FROM students WHERE name LIKE '%s%';
- 42似炎、去除重復(fù)記錄 辛萍。 查詢所有學(xué)生name信息,去除重復(fù)信息SELECT
SELECT DISTINCT name FROM students;
- 43、把查詢字段的結(jié)果進(jìn)行運(yùn)算,必須都要是數(shù)值型
SELECT *,字段1+字段2 FROM 表名;
- 舉例:
查出所有內(nèi)容,又添加了一個新的列為age和score的和,注意* 表示查出所有羡藐,然后逗號隔開贩毕,然后age+score SELECT *,age+score FROM students;
- 列有很多記錄的值為null,因?yàn)槿魏螙|西與NULL相加的結(jié)果還是NULL,所以結(jié)算結(jié)果可能會出現(xiàn)NULL,下面使用了把NULL轉(zhuǎn)化成數(shù)值0的函數(shù)IFNULL:
SELECT *,age+IFNULL(score,0) FROM students;
- 對查詢結(jié)果起別名 在上面的查詢中出現(xiàn)列名為sx+IFNULL(yw,0),這很不美觀,現(xiàn)在我們給這一列起一個別名,為total:
SELECT *,yw+IFNULL(sx,0) AS total FROM score;
省略
AS SELECT *,yw+IFNULL(sx,0) total FROM score;
- 排序
關(guān)鍵字 ORDER BY
排序類型(默認(rèn)是ASC)
升序ASC 從小到大
降序DESC 從大到小
- 根據(jù) id排序
SELECT * FROM employee ORDER BY salary DESC,id DESC;