重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
今天主要復(fù)習(xí)了MySQL的一些簡(jiǎn)單語(yǔ)句,可總結(jié):
成都創(chuàng)新互聯(lián)公司溝通電話:13518219792,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),成都創(chuàng)新互聯(lián)公司網(wǎng)頁(yè)制作領(lǐng)域10年,包括成都濕噴機(jī)等多個(gè)方面擁有豐富的網(wǎng)站制作經(jīng)驗(yàn),選擇成都創(chuàng)新互聯(lián)公司,為企業(yè)錦上添花。
mysql 統(tǒng)計(jì) 表的數(shù)量:SELECT COUNT(1) FROM information_schema.TABLES WHERE TABLE_SCHEMA = '你的數(shù)據(jù)庫(kù)';
有時(shí)候需要查詢MySQL數(shù)據(jù)庫(kù)中各個(gè)表大小,該如何操作呢?
MySQL中有一個(gè)名為 information_schema 的數(shù)據(jù)庫(kù),在該庫(kù)中有一個(gè) TABLES 表,這個(gè)表主要字段分別是:
TABLE_SCHEMA : 數(shù)據(jù)庫(kù)名
TABLE_NAME:表名
ENGINE:所使用的存儲(chǔ)引擎
TABLES_ROWS:記錄數(shù)
DATA_LENGTH:數(shù)據(jù)大小
INDEX_LENGTH:索引大小
use information_schema;
SELECT
TABLE_NAME,
(DATA_LENGTH/1024/1024) as DataM ,
(INDEX_LENGTH/1024/1024) as IndexM,
((DATA_LENGTH+INDEX_LENGTH)/1024/1024) as AllM,
TABLE_ROWS
FROM
TABLES
WHERE
TABLE_SCHEMA = '你的數(shù)據(jù)庫(kù)';
MySQL的一些基礎(chǔ)語(yǔ)句:
行是記錄 列是字段
創(chuàng)建庫(kù)
CREATE DATABASE [IF NOT EXISTS] 數(shù)據(jù)庫(kù)名 [參數(shù)[ 參數(shù)] [ 參數(shù)]...];
參數(shù):
CHARACTER SET 碼表名
COLLATE 校對(duì)規(guī)則名, 詳見(jiàn)文檔10.10.1
顯示庫(kù)
SHOW DATABASES;
顯示數(shù)據(jù)庫(kù)創(chuàng)建語(yǔ)句
SHOW CREATE DATABASE 數(shù)據(jù)庫(kù)名;
修改庫(kù)
ALTER DATABASE 數(shù)據(jù)庫(kù)名[ 參數(shù)[ 參數(shù)][ 參數(shù)]...];
注意: 不能改數(shù)據(jù)庫(kù)的名字
刪除庫(kù)
DROP DATABASE [IF EXISTS] 數(shù)據(jù)庫(kù)名;
操作表之前使用需要先確定使用哪個(gè)數(shù)據(jù)庫(kù)
USE 數(shù)據(jù)庫(kù)名
創(chuàng)建表
CREATE TABLE 表名(列名 類型[,列名 類型][,列名 類型]...);
查看所有表
SHOW TABLES;
查看表的創(chuàng)建語(yǔ)句
SHOW CREATE TABLE 表名;
顯示表結(jié)構(gòu)
DESC 表名;
修改表名
RENAME TABLE 原表名 TO 新表名;
修改字符集
ALTER TABLE 表名 CHARACTER SET 字符集名;
刪除表
DROP TABLE 表名;
追加列
ALTER TABLE 表名 ADD 列名 類型[,列名 類型][,列名 類型]...;
修改列類型
ALTER TABLE 表名 MODIFY 列名 類型[,列名 類型][,列名 類型]...;
修改列
ALTER TABLE 表名 CHANGE COLUMN 原列名 新列名 類型;
刪除列
ALTER TABLE 表名 DROP 列名;
插入語(yǔ)法:
INSERT INTO 表名[(列名[,列名]...)] VALUES(值[,值]...);
注意事項(xiàng):
插入值類型必須與對(duì)應(yīng)列的數(shù)據(jù)類型一致
數(shù)據(jù)不能超出長(zhǎng)度
插入值得為之必須與列名順序一致
字符和日期數(shù)據(jù)要放在單引號(hào)中
插入空值使用null
如果不指定插入哪一列, 就是插入所有列
中文數(shù)據(jù)
由于默認(rèn)碼表是utf8, 而cmd.exe的碼表是gbk, 在插入中文數(shù)據(jù)的時(shí)候會(huì)報(bào)錯(cuò), 所以我們需要修改客戶端碼表
先查看系統(tǒng)變量: SHOW VARIABLES LIKE 'character%';
修改客戶端碼表: SET character_set_client=gbk;
修改輸出數(shù)據(jù)的碼表: SET character_set_results=gbk;
修改語(yǔ)法
UPDATE 表名 SET 列名=值[,列名=值]...[WHERE 條件語(yǔ)句];
注意事項(xiàng)
WHERE子句選擇滿足條件的行進(jìn)行更新, 如果不寫, 則更新所有行
刪除語(yǔ)法
DELETE FROM 表名 [where 條件語(yǔ)句]
注意事項(xiàng)
如果不加where子句, 將刪除表中所有記錄
delete只能用作刪除行, 不能刪除某一列的值, 需要用update
在delete和update的時(shí)候需要注意表與表之間的關(guān)聯(lián)關(guān)系
刪除表中所有數(shù)據(jù)可以使用: TRANCATE 表名, 這種方式會(huì)刪除舊表重新創(chuàng)建, 在數(shù)據(jù)較多的時(shí)候使用
備份數(shù)據(jù)庫(kù)
輸入quit退出mysql, 在cmd.exe中輸入:
mysqldump –u用戶名 –p密碼 數(shù)據(jù)庫(kù)名 文件名
恢復(fù)數(shù)據(jù)庫(kù)
進(jìn)入mysql.exe之后, 使用數(shù)據(jù)庫(kù)之后
source 文件名
操作數(shù)據(jù)(查詢)
DISTINCT語(yǔ)法
SELECT [DISTINCT] 列名[, 列名]... FROM 表名
注意事項(xiàng)
*可以替代列名, 表示所有列, 但是通常我們?yōu)榱颂岣叽a的可讀性, 不使用*
DISTINCT為過(guò)濾重復(fù)記錄
如果DISTINCT后面跟多列, 是過(guò)濾掉多列合并之后的重復(fù)
列名表達(dá)式——語(yǔ)法
SELECT 列名|表達(dá)式[,列名|表達(dá)式]... FROM 表名
注意事項(xiàng)
表達(dá)式只是顯示時(shí)起作用, 不會(huì)改變數(shù)據(jù)庫(kù)中的值
AS——
SELECT 列名 AS 別名 FROM 表名
注意事項(xiàng)
起別名時(shí)AS可以省略
不會(huì)改變數(shù)據(jù)庫(kù)中的值
WHERE——
語(yǔ)法
SELECT 列名 FROM 表名 [WHERE 條件語(yǔ)句]
WHERE子句中的運(yùn)算符
比較運(yùn)算符
, , =, =, =,
注意不等于和Java中不同, 是
BETWEEN ... AND ...
某一區(qū)間內(nèi)的值, 從 ... 到 ...
IN(列表)
在列表之中, 例: in(1,2,3) 代表1或2或3
LIKE(表達(dá)式)
模糊查詢, %代表多個(gè)字符, _代表單個(gè)字符
IS NULL
判斷是否為NULL
邏輯運(yùn)算符
AND
與, 兩邊都為TRUE結(jié)果為TRUE
OR ||
或, 一邊為TRUE結(jié)果就為TRUE
NOT !
非, 將表達(dá)式結(jié)果取反
ORDER BY——
語(yǔ)法
SELECT 列名 FROM 表名 ORDER BY 列名 ASC|DESC;
注意事項(xiàng)
ORDER BY 指定排序的列名可以是表中的列名, 也可以是SELECT語(yǔ)句后面起的別名
ASC為升序, DESC為降序
ORDER BY應(yīng)在查詢語(yǔ)句的結(jié)尾
COUNT函數(shù)——
語(yǔ)法
SELECT COUNT(*)|COUNT(列名) from 表名 [WHERE 條件語(yǔ)句]
注意事項(xiàng)
COUNT(列名)的方式是統(tǒng)計(jì)指定列中有多少條記錄, 不包括值為NULL的
COUNT(*)則是統(tǒng)計(jì)表中有多少條數(shù)據(jù)
COUNT(DISTINCT 列名) 統(tǒng)計(jì)不重復(fù)的記錄數(shù)
如果加上WHERE子句, 則是統(tǒng)計(jì)滿足條件的記錄
用count函數(shù)就可以查看。
比如表名叫test,要查詢表中一共有多少條記錄,select count(*) from test;
如果按條件查詢的話,就正常使用where條件即可,select count(*) from test where id=1。
擴(kuò)展資料
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB 公司開(kāi)發(fā),目前屬于?Oracle?旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的?RDBMS?(Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) 應(yīng)用軟件。
MySQL是一種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。
MySQL所使用的 SQL 語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。
由于其社區(qū)版的性能卓越,搭配?PHP?和?Apache?可組成良好的開(kāi)發(fā)環(huán)境。
應(yīng)用環(huán)境
與其他的大型數(shù)據(jù)庫(kù)
例如?Oracle、DB2、SQL Server等相比,MySQL?[1]??自有它的不足之處,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于 MySQL是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本。
Linux作為操作系統(tǒng),Apache?或Nginx作為?Web?服務(wù)器,MySQL 作為數(shù)據(jù)庫(kù),PHP/Perl/Python作為服務(wù)器端腳本解釋器。
由于這四個(gè)軟件都是免費(fèi)或開(kāi)放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開(kāi)人工成本)就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng),被業(yè)界稱為“LAMP“或“LNMP”組合。
mySQL.百度百科
1、創(chuàng)建測(cè)試表,
create table test_limit(id int ,value varchar(100));
2、插入測(cè)試數(shù)據(jù),共6條記錄;
insert into test_limit values (1,'v1');
insert into test_limit values (2,'v2');
insert into test_limit values (3,'v3');
insert into test_limit values (4,'v4');
insert into test_limit values (5,'v5');
insert into test_limit values (6,'v6');
3、查詢表中全量數(shù)據(jù),可以發(fā)現(xiàn)共6條數(shù)據(jù),select * from test_limit t;
4、編寫語(yǔ)句,指定查詢3條數(shù)據(jù);
select * from test_limit limit 3;
看一下這個(gè)SQL
selectsum(if((sex = 1 and age = 2),1,0)),sum(if((sex = 1 and age = 5),1,0)),sum(if((sex = 1 and age = 10),1,0))from a_test
這個(gè)SQL現(xiàn)在就是得出的這個(gè)結(jié)果