Linux中使用mysql

一、mysql數(shù)據(jù)庫的基本使用:增刪改查

1、前提:

????1>啟動數(shù)據(jù)庫服務(wù):service mysqld start

????2>登錄mysql? :mysql -u root? -p? ? ----->接著輸入密碼? 回車。

????-u:?指定登錄用戶名

????-p:使用密碼登錄

????3>使用數(shù)據(jù)庫:?use?mysql ;

2、數(shù)據(jù)庫的“增刪改”

-- 2.1 增加數(shù)據(jù)

-- 插入所有字段。一定依次按順序插入

INSERT INTO student VALUES(1,'張三','男',20);

-- 注意不能少或多字段值

-- INSERT INTO student VALUES(2,'李四','女');

-- 插入部分字段

INSERT INTO student(id,NAME) VALUES(2,'李四');

-- 2.2 修改數(shù)據(jù)

-- 修改所有數(shù)據(jù)(建議少用)

UPDATE student SET gender='女';

-- 帶條件的修改(推薦使用)

UPDATE student SET gender='男' WHERE id=1; -- 修改id為1的學(xué)生,修改性別為男

-- 修改多個字段,注意: SET 字段名=值,字段名=值,....

UPDATE student SET gender='男',age=30 WHERE id=2;

-- 2.3 刪除數(shù)據(jù)

-- 刪除所有數(shù)據(jù)(建議少用)

DELETE FROM student;

-- 帶條件的刪除(推薦使用)

DELETE FROM student WHERE id=2;

--? 另一種方式

-- delete from: 可以全表刪除? ? ? 1)可以帶條件刪除? 2)只能刪除表的數(shù)據(jù),不能刪除表的約束? 3)使用delete from刪除的數(shù)據(jù)可以回滾(事務(wù))

-- truncate table: 可以全表刪除? 1)不能帶條件刪除 2)即可以刪除表的數(shù)據(jù),也可以刪除表的約束 3)使用truncate table刪除的數(shù)據(jù)不能回滾

TRUNCATE TABLE student;

3、數(shù)據(jù)庫的“查”

-- 3.1 查詢所有列

SELECT * FROM student;

-- 3.2 查詢指定列

SELECT id,NAME,gender FROM student;

-- 3.3 查詢時添加常量列

-- 需求: 在查詢student表時添加一個班級列,內(nèi)容為“java”

SELECT id,NAME,gender,age,'java' AS '學(xué)科'? FROM student;

-- 3.4 查詢時合并列

-- 需求: 查詢每個學(xué)生的servlet和jsp的總成績

SELECT id,NAME,(servlet+jsp) AS '總成績' FROM student;

-- 注意:合并列只能合并數(shù)值類型的字段

SELECT id,(NAME+servlet) FROM student;

-- 3.5 查詢時去除重復(fù)記錄(DISTINCT)

-- 需求: 查詢學(xué)生的性別? ? 男 女

SELECT DISTINCT gender FROM student;

-- 另一種語法

SELECT DISTINCT(gender) FROM student;

-- 需求: 查詢學(xué)生所在的地區(qū)

SELECT DISTINCT address FROM student;

-- 3.6 條件查詢(where)

-- 3.6.1 邏輯條件: and(與)? ? or(或)

-- 需求: 查詢id為2,且姓名為李四的學(xué)生

SELECT * FROM student WHERE id=2 AND NAME='李四'; -- 交集

-- 需求: 查詢id為2,或姓名為張三的學(xué)生

SELECT * FROM student WHERE id=2 OR NAME='張三'; -- 并集

-- 3.6.2 比較條件: >? <? >=? <=? =? <>(不等于)? ? between and (等價于>= 且 <=)

-- 需求: 查詢servlet成績大于70分的學(xué)生

SELECT * FROM student WHERE servlet>70;

-- 需求: 查詢jsp成績大于等于75,且小于等于90分的學(xué)生

SELECT * FROM student WHERE jsp>=75 AND jsp<=90;

-- 另一個語法

SELECT * FROM student WHERE jsp BETWEEN 75 AND 90; -- (包前包后)

SELECT * FROM student WHERE gender<>'男';

-- 3.6.3 判空條件(null 空字符串):? is null / is not null / =''? / <>''

-- 需求: 查詢地址為空的學(xué)生(包括null和空字符串)

-- null vs? 空字符串

-- null:表示沒有值

-- 空字符串:有值的!

-- 判斷null

SELECT * FROM student WHERE address IS NULL ;

-- 判斷空字符串

SELECT * FROM student WHERE address='';

SELECT * FROM student WHERE address IS NULL OR address=''; -- (包括null和空字符串)

-- 需求: 查詢有地址的學(xué)生(不包括null和空字符串)

SELECT * FROM student WHERE address IS NOT NULL AND address<>'';

-- 3.6.4 模糊條件: like

-- 通常使用以下替換標(biāo)記:

-- % : 表示任意個字符

-- _ : 表示一個字符

-- 需求: 查詢姓‘張’的學(xué)生

SELECT * FROM student WHERE NAME LIKE '李%';

-- 需求: 查詢姓‘李’,且姓名只有兩個字的學(xué)生

SELECT * FROM student WHERE NAME LIKE '李_';

-- 3.7 聚合查詢(使用聚合函數(shù)的查詢)

-- 常用的聚合函數(shù): sum()? avg()? max()? min()? count()

-- 需求:查詢學(xué)生的servlet的總成績 (sum() :求和函數(shù))

SELECT SUM(servlet) AS 'servlet的總成績' FROM student;

-- 需求: 查詢學(xué)生的servlet的平均分

SELECT AVG(servlet) AS 'servlet的平均分' FROM student;

-- 需求: 查詢當(dāng)前servlet最高分

SELECT MAX(servlet) AS '最高分' FROM student;

-- 需求: 查詢最低分

SELECT MIN(servlet) AS '最低分' FROM student;

-- 需求: 統(tǒng)計當(dāng)前有多少學(xué)生(count(字段))

SELECT COUNT(*) FROM student;

SELECT COUNT(id) FROM student;

-- 注意:count()函數(shù)統(tǒng)計的數(shù)量不包含null的數(shù)據(jù)

-- 使用count統(tǒng)計表的記錄數(shù),要使用不包含null值的字段

SELECT COUNT(age) FROM student;

-- 3.8 分頁查詢(limit 起始行,查詢幾行)

-- 起始行從0開始

-- 分頁:當(dāng)前頁? 每頁顯示多少條

-- 分頁查詢當(dāng)前頁的數(shù)據(jù)的sql: SELECT * FROM student LIMIT (當(dāng)前頁-1)*每頁顯示多少條,每頁顯示多少條;

-- 需求: 查詢第1,2條記錄(第1頁的數(shù)據(jù))

SELECT * FROM student LIMIT 0,2;

-- 查詢第3,4條記錄(第2頁的數(shù)據(jù))

SELECT * FROM student LIMIT 2,2;

-- 查詢第5,6條記錄(第3頁的數(shù)據(jù))

SELECT * FROM student LIMIT 4,2;

-- 查詢第7,8條記錄 (沒有記錄不顯示)

SELECT * FROM student LIMIT 6,2;

-- 3.9 查詢排序(order by )

-- 語法 :order by 字段 asc/desc

-- asc: 順序,正序。數(shù)值:遞增,字母:自然順序(a-z)

-- desc: 倒序,反序。數(shù)值:遞減,字母:自然反序(z-a)

-- 默認(rèn)情況下,按照插入記錄順序排序

SELECT * FROM student;

-- 需求: 按照id順序排序

SELECT * FROM student ORDER BY id ASC;

SELECT * FROM student ORDER BY id; -- 默認(rèn)正序

SELECT * FROM student ORDER BY id DESC;-- 反序

-- 注意:多個排序條件

-- 需求: 按照servlet正序,按照jsp的倒序

SELECT * FROM student ORDER BY servlet ASC,jsp DESC;

-- 3.10 分組查詢(group by)

-- 需求: 查詢男女的人數(shù)

-- 預(yù)期結(jié)果:

--? 男? 3

-- 女? 2

? -- 1) 把學(xué)生按照性別分組(GROUP BY gender)

? -- 2) 統(tǒng)計每組的人數(shù)(COUNT(*))

SELECT gender,COUNT(*) FROM student GROUP BY gender;

-- 3.11 分組查詢后篩選

-- 需求: 查詢總?cè)藬?shù)大于2的性別

-- 1) 查詢男女的人數(shù)

-- 2)篩選出人數(shù)大于2的記錄(having)

--- 注意: 分組之前條件使用where關(guān)鍵字,分組之前條件使用having關(guān)鍵字

SELECT gender,COUNT(*) FROM student WHERE GROUP BY gender HAVING COUNT(*)>2;

二、執(zhí)行SQL文件,建表插數(shù)據(jù)一步到位!

Linux中執(zhí)行sql 文件:當(dāng)你在部署項目時,往往是直接執(zhí)行SQL腳本,不可能一步一步的去手動建庫,建表。

所以先說下運行SQL文件的步驟:

1、創(chuàng)建需要的數(shù)據(jù)庫:create?database"數(shù)據(jù)庫的名稱";

2、查看下自己建的庫:?show?databases;


3、指定你要執(zhí)行sql文件的庫:?use “數(shù)據(jù)庫名”;? ? ---->例:use?fairyonline;

4、命令執(zhí)行SQL?文件:?source /root/sql/fairyonline.sql;

注:起初我把需要執(zhí)行的sql?文件放在了? root/sql? ?文件夾里面了。? 后面的?fairyonline.sql? ?是需要執(zhí)行的SQL文件。


5、查看下庫里面的表和數(shù)據(jù),對不對:show tables;? ? ? ? 最后? 退出mysql :?quit;? 或者?exit;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ORACLE自學(xué)教程 --create tabletestone ( id number, --序號usernam...
    落葉寂聊閱讀 1,243評論 0 0
  • MYSQL 基礎(chǔ)知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 MySQL基本操...
    Kingtester閱讀 8,060評論 5 115
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,012評論 0 11
  • 一、數(shù)據(jù)庫簡介 1.數(shù)據(jù)庫系統(tǒng) 1.1數(shù)據(jù)庫 DataBase【DB】,指的是長期保存到計算機(jī)上的數(shù)據(jù),按照一定順...
    鄭元吉閱讀 684評論 0 6
  • 2.2 什么是數(shù)據(jù)庫軟件 數(shù)據(jù)庫,俗稱數(shù)據(jù)的倉庫。方便管理數(shù)據(jù)的軟件(或程序)。 2.4 MySQL入門 1)到m...
    yangliangliang閱讀 443評論 0 0

友情鏈接更多精彩內(nèi)容