mysql語句在客戶端與服務端的基本使用


//把數據庫導出到腳本文件
mysqldump -uroot -p1234 --databases abc > d:/a/abc.sql
----------------------------------------------------------------------------
如何在mysql控制台中查看數據庫表(就是在服務器端查看客戶端的數據庫表)
1,先啟動服務(以管理員身份運行)
net start mysql-5.6.22-winx64
--也可右鍵點擊“我的電腦”|“管理”|“服務和應用程序”|“服務”|找到“mysql-5.5.24-winx64”,右鍵點開,選擇啟動
2,命令行登錄(把bin目錄設到path環境變量中,則可省略“bin\”,后面同理)
bin\mysql -u root -p (看你客戶端設置的是那個客戶名)
--密碼為空回車
3,你可以先查看有哪些數據庫:show databases;
4,使用數據庫名:use (這里填寫表格中你要選擇的數據庫名);
5,查看數據庫中的表格:show tables;
6,查看數據庫表格中的所有內容:select * from (你選擇的表格名);
7,之后你可以在這里進行增刪改查:(可以在客戶端也可以在服務端);
----------------------------------------------------------------------------
CREATE TABLE stud(
id INT PRIMARY KEY,-----primary key是主鍵填寫值的時候不能為空,not null也是填值的時候不能為空。primary key=unique key+not null
NAME VARCHAR(32) NOT NULL,
score NUMERIC(4,1)
);
//把所有名字都設成"Mike"了
UPDATE stud SET NAME="Mike"

//只設置分數>=70的記錄的Name
UPDATE stud SET NAME="Exc" WHERE score>=70

//同時修改多個字段(下面兩種方式都可。字段值即使不是字符類型,也可以加引號---注意,字符類型的值必須加引號。因此為安全考慮,最好所有的值都加引號--單引號和又引號
都可以)
UPDATE stud SET NAME="笨蛋",id=5 WHERE score<60
UPDATE stud SET NAME="笨蛋",id='5' WHERE score<60


※where子句的句型
Select 字段列表 From 表名 where 條件 and 條件 or 條件 
Update table tableName set .. Where 條件
Delete from tableName where ….

//查詢分數在[60,80]之間的學生
SELECT * FROM stud WHERE score>=60 AND score<=80;
SELECT NAME,score FROM stud WHERE score BETWEEN 60 AND 80; //between子句是包含邊界的

//查詢分類正好是65和85的學生
SELECT * FROM stud WHERE score=65 OR score=85;
SELECT * FROM stud WHERE score IN(65,85); //in子句中的值是離散的

//模糊查詢: like 參數: %(任意匹配) _(匹配單字符)
SELECT * FROM stud WHERE NAME LIKE '王%'; //姓王的學生
SELECT * FROM stud WHERE NAME LIKE '王_'; //姓王且名為單字的學生
SELECT * FROM stud WHERE NAME LIKE '王__'; //姓王且名為雙字的學生
SELECT * FROM stud WHERE NAME LIKE '%王%';//姓名中包含"王"的學生

//查詢某字段值為空
SELECT * FROM stud WHERE score IS NULL; //注意,不能用"="號

SELECT * FROM stus WHERE scorce='null'; 這里是判斷表格中的值是否填寫的是空值;

//視圖View ---對視圖的操作能夠時時更新到物理表,只是操作范圍只針對視圖中的進行(效率更高)
CREATE VIEW studV AS SELECT * FROM stud WHERE score<60;
SELECT NAME FROM studV;
UPDATE studV SET score = score*1.1; //該句執行后: 1)如果分數及格則studV視圖中不再包含該數據 2)物理表stud中的數據也更改了。

//聚合函數
SELECT COUNT(*) AS num FROM stud; //統計表中數據的行數
SELECT COUNT(score) AS num FROM stud; //統計score列中非NULL數據行的數量
SELECT AVG(score) AS avgg FROM stud;//統計分數的平均值(不包含score值為null的記錄)
SELECT AVG(score) AS avgg FROM stud WHERE score IS NOT NULL;

SELECT ROUND(AVG(score)) AS avgg FROM stud;//四舍五入,取整
SELECT ROUND(AVG(score),2) AS avgg FROM stud;//四舍五入,保留兩位小數

SELECT SUM(score) AS avgg FROM stud;//求和
SELECT MAX(score) AS avgg FROM stud; //最大值(最高分)
//查詢出最高分學生的信息
SELECT * FROM stud WHERE score = (SELECT MAX(score) AS avgg FROM stud );
SELECT * FROM stud WHERE score IN( SELECT MAX(score) AS avgg FROM stud );

//查詢有哪些年齡段的學生(顯示有哪些年齡值,即年齡值相同的只顯示一個)---以后的顯示有哪些專業、哪些部門 都用distinct
SELECT DISTINCT age FROM stud;
SELECT DISTINCT age FROM stud ORDER BY age ASC; //升序
SELECT DISTINCT age FROM stud ORDER BY age DESC; //降序

//反模式--以下語句要么顯示所有記錄,要么一條也不顯示。因為EXISTS()返回的是同一個結果
SELECT * FROM stud WHERE EXISTS( SELECT * FROM stud WHERE age=25 );

//句型: group by... having... ---把各年齡段學生的平均分顯示出來
SELECT AVG(score) 平均分, age FROM stud GROUP BY age;
SELECT AVG(score) 平均分, age FROM stud GROUP BY age HAVING age>20; //把年齡大於20歲的學生的平均成績查出來;
SELECT AVG(score) 平均分, age FROM stud GROUP BY age HAVING AVG(score)>=70;//把分數大於70的年齡段的人的平均分求出來;

//字符串處理函數
Length(str) - 求字符串長度
Ltrim(str) - 去掉左邊的空格
Rtrim(str) - 去掉右邊的空格
Left(str,n); - 從左邊取出n個字符
Right(str,n); - 從右邊取出n個字符
Substring(str,begin,len) -返回子串, begin的序號從1開始 ※
Reverse(str) –返回顛倒的字符串
Lower(str) - 轉成小寫
Upper(str) - 轉成大寫
Concat(Str,str…..)串聯字符串。
Instr(str,s) – 返回s在str中出面的位置,沒有則返回0

SELECT * FROM stud WHERE LENGTH(NAME)>3;
SELECT * FROM stud WHERE LENGTH(LTRIM(NAME))>3;

SELECT SUBSTRING(NAME,1,2) FROM stud;
SELECT * FROM stud WHERE SUBSTRING(NAME,1,1)='王';//顯示姓王的學生


※數據庫和Java類之間的對象
List<Stud> ---表格
Stud類對象(值對象,域對象) ---表記錄(表中的一行)
Stud類對象中的屬性(成員變量) -----表字段(Field)

----------------------------------------------------------------------------------------------

在客戶端數據庫和數據庫的表格要時刻刷新,不然會出現一些小小的錯誤;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM