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浮點型
例如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.png
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)行運算,必須都要是數(shù)值型
SELECT *,字段1+字段2 FROM 表名;
- 舉例:
查出所有內(nèi)容,又添加了一個新的列為age和score的和,注意* 表示查出所有莽龟,然后逗號隔開蠕嫁,然后age+score SELECT *,age+score FROM students;
- 列有很多記錄的值為null,因為任何東西與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;