Javaä»å ¥é¨å°å®ææ»ç»-4.1ãæ°æ®åºåºç¡
æç« ç®å½
- ââJavaä»å ¥é¨å°å®ææ»ç»-4.1ãæ°æ®åºåºç¡ââ
- ââ第ä¸ç« æ°æ®åºç®ä»ââ
- ââ1.1 ç®ä»ââ
- ââ1.2 å¸¸è§æ°æ®åºç®¡çç³»ç»ââ
- ââ1.3 ä¸å¤§èå¼ï¼è§èï¼ââ
- ââ1.4 MySQLå®è£ åå¸è½½ââ
- ââ1.4.1 windowsä¸å®è£ ââ
- ââ1.4.2 å¸è½½ââ
- ââ1.4.3 mac使ç¨HomeBrewå®è£ ââ
- ââ第äºç« SQLè¯è¨ââ
- ââ2.1 æ¦è¿°ââ
- ââ2.2 SQLè¯å¥åç±»ââ
- ââ2.3 DDLæä½æ°æ®åºââ
- ââ2.3.1 å建ââ
- ââ2.3.2 æ¥çæ°æ®åºââ
- ââ2.3.3 ä¿®æ¹æ°æ®åºââ
- ââ2.3.4 å 餿°æ®åºââ
- ââ2.3.5 å ¶ä»è¯å¥ââ
- ââ2.4 DDLæä½è¡¨ââ
- ââ2.4.1 æ¦è¿°ââ
- ââ2.4.2 å ¶ä»è¡¨æä½ââ
- ââ2.4.3 ç»ä¹ ââ
- ââ2.5 DMLæä½ââ
- ââ2.5.1 æå ¥æä½ï¼INSERTââ
- ââ2.5.2 sqlä¸çè¿ç®ç¬¦ââ
- ââ2.5.3 ä¿®æ¹ï¼æ´æ°ï¼æä½ï¼UPDATEââ
- ââ2.5.4 å 餿ä½ï¼DELETEââ
- ââ2.5.5 ç»ä¹ é¢ââ
- ââ2.5.6 å°ç»ââ
- ââ2.6 DCLââ
- ââ2.6.1 åå»ºç¨æ·ââ
- ââ2.6.2 ç¨æ·ææââ
- ââ2.6.3 ç¨æ·æéæ¥è¯¢ââ
- ââ2.6.4 æ¤éç¨æ·æéââ
- ââ2.6.5 å é¤ç¨æ·ââ
- ââ第ä¸ç« DQLæ°æ®æ¥è¯¢ââ
- ââ3.1 DQLæ°æ®æ¥è¯¢è¯è¨ââ
- ââ3.2 ç®åæ¥è¯¢ââ
- ââ3.3 æ¡ä»¶æ¥è¯¢ââ
- ââ3.4 æ¨¡ç³æ¥è¯¢ââ
- ââ3.5 åæ®µæ§å¶æ¥è¯¢ââ
- ââ3.6 æåºââ
- ââ3.7 èå彿°ââ
- ââ3.7.1 COUNTââ
- ââ3.7.2 SUMåAVGââ
- ââ3.7.3 MAXåMINââ
- ââ3.8 åç»æ¥è¯¢ââ
- ââ3.8.1 åç»æ¥è¯¢ââ
- ââ3.8.2 HAVINGåå¥ââ
- ââ3.9 LIMITââ
- ââ3.9.1 å页æ¥è¯¢ââ
- ââ第åç« ä½¿ç¨å¼åå·¥å ·å®ç°æ°æ®åºæä½ââ
- ââ4.1 åºäºNavicatå®ç°æ°æ®åºæä½ââ
- ââ4.2 åºäºSQLyogå®ç°æ°æ®åºæä½ââ
- ââ4.3 ç»ä¹ ââ
第ä¸ç« æ°æ®åºç®ä»
1.1 ç®ä»
æ°æ®åºï¼DataBaseï¼DBï¼ï¼æé¿æä¿åå¨è®¡ç®æºçåå¨è®¾å¤ä¸ï¼æç §ä¸å®è§åç»ç»èµ·æ¥ï¼å¯ä»¥è¢«åç§ç¨æ·æåºç¨å ±äº«çæ°æ®éåã
æ°æ®åºç®¡çç³»ç»ï¼DataBase Management Systemï¼DBMSï¼ï¼æä¸ç§æä½åç®¡çæ°æ®åºç大å软件ï¼ç¨äºå»ºç«ã使ç¨åç»´æ¤æ°æ®åºï¼å¯¹æ°æ®åºè¿è¡ç»ä¸ç®¡çåæ§å¶ï¼ä»¥ä¿è¯æ°æ®åºçå®å ¨æ§å宿´æ§ã
ç¨æ·éè¿æ°æ®åºç®¡çç³»ç»è®¿é®æ°æ®åºä¸çæ°æ®ã
æ°æ®åºè½¯ä»¶åºè¯¥ä¸ºæ°æ®åºç®¡çç³»ç»ï¼æ°æ®åºæ¯éè¿æ°æ®åºç®¡çç³»ç»å建åæä½çã
æ°æ®åºï¼åå¨ãç»´æ¤åç®¡çæ°æ®çéåã
1.2 å¸¸è§æ°æ®åºç®¡çç³»ç»
- Oracleï¼Oracleæ°æ®åºè¢«è®¤ä¸ºæ¯ä¸çç®åæ¯è¾æåçâ
âå ³ç³»åæ°æ®åºâ
â管çç³»ç»ãOracleæ°æ®åºå¯ä»¥è¿è¡å¨UNIXãWindowsçä¸»æµæä½ç³»ç»å¹³å°ï¼å®å ¨æ¯æææç工䏿 åï¼å¹¶è·å¾æé«çº§å«çISOæ åå®å ¨æ§
认è¯ã
-
MySQLï¼MySQLæ¯ä¸ä¸ªå ³ç³»åæ°æ®åºç®¡çç³»ç»ï¼ç±çå ¸MySQL AB å ¬å¸å¼åï¼ç®åå±äº Oracleæä¸äº§åãMySQL æ¯ææµè¡çå ³ç³»åæ°æ®åºç®¡çç³»ç»ä¹ä¸ï¼å¨ WEB åºç¨æ¹é¢ï¼MySQLæ¯æå¥½ç RDBMS
(Relational Database Management Systemï¼å ³ç³»æ°æ®åºç®¡çç³»ç») åºç¨è½¯ä»¶ã
- DB2ï¼DB2æ¯IBMå ¬å¸ç产åï¼DB2æ°æ®åºç³»ç»éç¨å¤è¿ç¨å¤çº¿ç´¢ä½ç³»ç»æï¼å ¶åè½è¶³ä»¥æ»¡è¶³å¤§ä¸å ¬å¸çéè¦ï¼å¹¶å¯çµæ´»å°æå¡äºä¸å°åçµååå¡è§£å³æ¹æ¡ã
- Microsoft SQL Serverï¼SQL Server æ¯Microsoft å ¬å¸æ¨åºçå ³ç³»åæ°æ®åºç®¡çç³»ç»ãå ·æä½¿ç¨æ¹ä¾¿å¯ä¼¸ç¼©æ§å¥½ä¸ç¸å ³è½¯ä»¶éæç¨åº¦é«çä¼ç¹ã
è¿æéå ³ç³»åæ°æ®åºï¼æ¯å¦Redisï¼è¿ä¸ªå¨å颿们ä¸é¨æ»ç»ãç®ååç»çæ°æ®åºå¦ä¹ 以mysql为主ã
1.3 ä¸å¤§èå¼ï¼è§èï¼
ä»ä¹æ¯ä¸å¤§èå¼ï¼
- 第ä¸èå¼ï¼â
âãå½å ³ç³»æ¨¡å¼Rçææå±æ§é½ä¸è½å¨å解为æ´åºæ¬çæ°æ®å使¶ï¼ç§°Ræ¯æ»¡è¶³ç¬¬ä¸èå¼çï¼ç®è®°ä¸º1NFãæ»¡è¶³ç¬¬ä¸è弿¯å ³ç³»æ¨¡å¼è§èåçæä½è¦æ±ï¼å¦åï¼å°æå¾å¤åºæ¬æä½å¨è¿æ ·çå ³ç³»æ¨¡å¼ä¸å®ç°ä¸äºãâæ éå¤çåâ
- 第äºèå¼ï¼â
â屿§å®å ¨ä¾èµäºä¸»é® [ æ¶é¤é¨åå彿°ä¾èµ ]â
âãå¦æå ³ç³»æ¨¡å¼R满足第ä¸èå¼ï¼å¹¶ä¸R徿æé䏻屿§é½å®å ¨ä¾èµäºRçæ¯ä¸ä¸ªåéå ³é®å±æ§ï¼ç§°R满足第äºèå¼ï¼ç®è®°ä¸º2NFã第äºèå¼ï¼2NFï¼æ¯å¨ç¬¬ä¸èå¼ï¼1NFï¼çåºç¡ä¸å»ºç«èµ·æ¥çï¼å³æ»¡è¶³ç¬¬äºèå¼ï¼2NFï¼å¿ é¡»å æ»¡è¶³ç¬¬ä¸èå¼ï¼1NFï¼ã第äºèå¼ï¼2NFï¼è¦æ±æ°æ®åºè¡¨ä¸çæ¯ä¸ªå®ä¾æè¡å¿ é¡»å¯ä»¥è¢«å¯ä¸å°åºåã为å®ç°åºåé常éè¦ä¸ºè¡¨å ä¸
ä¸ä¸ªåï¼ä»¥åå¨å个å®ä¾çå¯ä¸æ è¯ãè¿ä¸ªå¯ä¸å±æ§åè¢«ç§°ä¸ºä¸»å ³é®åæä¸»é®ã主ç ã
- 第ä¸èå¼ï¼â
â设Ræ¯ä¸ä¸ªæ»¡è¶³ç¬¬ä¸è弿¡ä»¶çå ³ç³»æ¨¡å¼ï¼X æ¯Rçä»»æå±æ§éï¼å¦æXéä¼ éä¾èµäºRçä»»æä¸ä¸ªåéå ³é®åï¼ç§°R满足第ä¸èå¼ï¼ç®è®°ä¸º3NF. 满足第ä¸èå¼ï¼3NFï¼å¿ é¡»å æ»¡è¶³ç¬¬äºèå¼ï¼2NFï¼ã第ä¸èå¼ï¼3NFï¼è¦æ±ä¸ä¸ªæ°æ®åºè¡¨ä¸ä¸å å«å·²å¨å ¶å®è¡¨ä¸å·²å å«çéä¸»å ³é®åä¿¡æ¯ãâ屿§ä¸ä¾èµäºå ¶å®é䏻屿§ [ æ¶é¤ä¼ éä¾èµ ]ãâ
注ï¼å ³ç³»å®è´¨ä¸æ¯ä¸å¼ äºç»´è¡¨ï¼å ¶ä¸æ¯ä¸è¡æ¯ä¸ä¸ªå ç»ï¼æ¯ä¸åæ¯ä¸ä¸ªå±æ§
â
â第äºèå¼ï¼2NFï¼å第ä¸èå¼ï¼3NFï¼çæ¦å¿µå¾å®¹ææ··æ·ï¼åºåå®ä»¬çå
³é®ç¹å¨äºï¼2NFï¼é主é®åæ¯å¦å®å
¨ä¾èµäºä¸»é®ï¼è¿æ¯ä¾èµäºä¸»é®çä¸é¨åï¼3NFï¼é主é®åæ¯ç´æ¥ä¾èµäºä¸»é®ï¼è¿æ¯ç´æ¥ä¾èµäºé主é®åãâ
â
1.4 MySQLå®è£ åå¸è½½
-
å®è£ åé ç½®æ¥éª¤(详è§ä¸åçèµæ)
ç®åææ°ç使ç¨çæ¬:MYSQL8.0.24ï¼ä¸è¬æä»¬ä¼è½åä¸è¬çæ¬ä½¿ç¨ã
1.4.1 windowsä¸å®è£
- æ¥éª¤1:访é®å°å:ââhttps://dev.mysql.com/downloads/mysql/ââ
-
æ¥éª¤2:ä¸è½½å缩å
for windowï¼

for macæè for ubuntu Linuxçï¼
没æè´¦æ·çç¹å»å·¦ä¸æ¹:No thanksã
ä¸è½½åè§£åï¼æ¾å¨éCçä¸ï¼æä»¶å¤¹æ¹åmysql
å°è§£åæä»¶å¤¹ä¸çbinè·¯å¾æ·»å å°åéå¼ä¸ï¼åå以 ; å¼å¤´ç»å°¾
-
æ¥éª¤3:å¨mysqlæä»¶å¤¹ä¸æ¾å°my.iniæmy-default.iniï¼å¦ææ²¡æ.iniç»å°¾çæä»¶,ç´æ¥å建该æä»¶ãæ°å¢
å 容为å¦ä¸ï¼æ³¨æbasedirådatadiræ¯æèªå·±çè·¯å¾ä½ç½®ï¼èªå®ä¹ãè®°å¾æ°å¢ä¸ä¸ªæä»¶Dataæä»¶å¤¹
[mysqld]
# 设置3306端å£
port=3306
# 设置mysqlçå®è£
ç®å½
basedir=D:\Program Files\mysql
# 设置mysqlæ°æ®åºçæ°æ®çåæ¾ç®å½
datadir=D:\Program Files\mysql\data
# å
许æå¤§è¿æ¥æ°
max_connections=200
# å
è®¸è¿æ¥å¤±è´¥ç次æ°ãè¿æ¯ä¸ºäºé²æ¢æäººä»è¯¥ä¸»æºè¯å¾æ»å»æ°æ®åºç³»ç»
max_connect_errors=10
# æå¡ç«¯ä½¿ç¨çå符éé»è®¤ä¸ºUTF8
character-set-server=utf8
# å建æ°è¡¨æ¶å°ä½¿ç¨çé»è®¤åå¨å¼æ default-storage-engine=INNODB
# é»è®¤ä½¿ç¨mysql_native_passwordæä»¶è®¤è¯default_authentication_plugin=mysql_native_password [mysql]
# 设置mysql客æ·ç«¯é»è®¤å符é
default-character-set=utf8 [client]
# 设置mysql客æ·ç«¯è¿æ¥æå¡ç«¯æ¶é»è®¤ä½¿ç¨ç端å£
port=3306
default-character-set=utf8
-
æ¥éª¤4:å®è£ mysql
å¨mysqlçå®è£ ç®å½ä¸ï¼æå¼binæä»¶å¤¹ï¼è¿è¡cmd.æ§è¡åå§åæ°æ®åºçæä»¤ï¼
mysqld --initialize --console
rootç¨æ·çåå§åå¯ç :
è¦æ¯ä½ ä¸å°å¿å ³æcmdï¼æè æ²¡è®°ä½ï¼é£ä¹æ²¡äºï¼å æåå§åç datadir ç®å½ï¼åæ§è¡ä¸éåå§åå½ä»¤ï¼åä¼éæ°çæçã
-
æ¥éª¤5:å®è£ æå¡
å¨MySQLå®è£ ç®å½ç bin ç®å½ä¸æ§è¡å½ä»¤ï¼
mysqld --install [æå¡å] è¿éçæå¡åé»è®¤æ¯mysqlï¼å¯ä»¥èªå®ä¹
妿æç¤ºä¸è¿°é误ï¼éè¦å ³écmd,éæ°æå¼ï¼ä½¿ç¨ç®¡çå身份æ§è¡
å®è£ 宿ä¹å
éè¿å½ä»¤net start mysql8å¯å¨MySQLçæå¡äºã
éè¿å½ä»¤net stop mysql8忢æå¡ã
注æ:å®è£ æ¶ï¼å¸è½½å ¶ä»çæ¬çmysqlæ°æ®åº
- æ¥éª¤6:龿¥æ°æ®åº
mysql -u root -p
ä¿®æ¹è´¦æ·å¯ç :
alter user 'root'@'localhost' identified with mysql_native_password BY 'æ°å¯ç ';
示ä¾:
alter user 'root'@'localhost' identified with mysql_native_password BY '123456';
ä¿®æ¹å¯ç ï¼æ³¨æå½ä»¤å°¾çåå·ä¸å®è¦æï¼è¿æ¯mysqlçè¯æ³
éåºæ°æ®åº:
quitæè
\q
1.4.2 å¸è½½
- æ¥éª¤1:使ç¨ç®¡çå身份è¿è¡cmd,å ³émysqlæå¡
- æ¥éª¤2:å é¤mysqlæå¡
å½ä»¤:sc delete mysql8 æè mysqld remove mysql8
- æ¥éª¤3:åªé¤mysqlDBç®å½æä»¶ï¼ å®è£mysqlæ¶my.iniæå®çç®å½ï¼
1.4.3 mac使ç¨HomeBrewå®è£
iTerm䏿§è¡å¦ä¸å½ä»¤å³å¯ï¼
brew install
å¯å¨mysqlæå¡ä½¿ç¨ï¼
mysql.server start
ç¬¬ä¸æ¬¡ç»éæ¶root没æå¯ç ï¼
mysql -uroot
å¯ä»¥ä½¿ç¨
man
æ¥è·å帮å©ä¿¡æ¯ï¼ubuntuçLinuxç³»ç»ä¹ç±»ä¼¼ã
第äºç« SQLè¯è¨
2.1 æ¦è¿°
SQLï¼Structure Query Languageï¼ç»æåæ¥è¯¢è¯è¨ï¼ï¼SQL被ç¾å½å½å®¶æ åå±ï¼ANSIï¼ç¡®å®ä¸ºå ³åæ°æ®åºè¯è¨çç¾å½æ åï¼åæ¥è¢«å½é åæ åç»ç»ï¼ISOï¼éçº³ä¸ºå ³ç³»æ°æ®åºè¯è¨çå½é æ åã
åæ°æ®åºåå齿¯æISOçSQLæ åï¼æ®éè¯
åæ°æ®åºåå卿 åçåºç¡ä¸åäºèªå·±çæ©å±ï¼æ¹è¨
SQL æ¯ä¸ç§æ ååçè¯è¨ï¼å®å è®¸ä½ å¨æ°æ®åºä¸æ§è¡æä½ï¼å¦å建项ç®ï¼æ¥è¯¢å å®¹ï¼æ´æ°å 容ï¼å¹¶å 餿¡ç®çæä½ã
Create, Read, Update, and Delete é常称为CRUDæä½ã
2.2 SQLè¯å¥åç±»
- DDLï¼Data Definition Languageï¼ï¼æ°æ®å®ä¹è¯è¨ï¼ç¨æ¥å®ä¹æ°æ®åºå¯¹è±¡ï¼åºã表ãåçã
- DMLï¼Data Manipulation Languageï¼ï¼æ°æ®æä½è¯è¨ï¼ç¨æ¥å®ä¹æ°æ®åºè®°å½ï¼æ°æ®ï¼å¢å æ¹ã
- DCLï¼Data Control Languageï¼ï¼æ°æ®æ§å¶è¯è¨ï¼ç¨æ¥å®ä¹è®¿é®æéåå®å ¨çº§å«ã
- DQLï¼Data Query Languageï¼ï¼æ°æ®æ¥è¯¢è¯è¨ï¼ç¨æ¥æ¥è¯¢è®°å½ï¼æ°æ®ï¼æ¥è¯¢ã
注æï¼sqlè¯å¥ä»¥;ç»å°¾
mysqlä¸çå ³é®åä¸åºå大å°å
2.3 DDLæä½æ°æ®åº
2.3.1 å建
CREATE DATABASEè¯å¥ç¨äºå建æ°çæ°æ®åºï¼
ç¼ç æ¹å¼:gb2312,utf-8,gbk,iso-8859-1
CREATE DATABASE db1;
忝å¦ï¼
//create database æ°æ®åºå
CREATE DATABASE mydb1;
//create database æ°æ®åºå character set ç¼ç æ¹å¼
CREATE DATABASE mydb2 character SET GBK;
//create database æ°æ®åºå set ç¼ç æ¹å¼ collate æåºè§å
CREATE DATABASE mydb3 character SET GBK COLLATE gbk_chinese_ci;
2.3.2 æ¥çæ°æ®åº
æ¥çå½åæ°æ®åºæå¡å¨ä¸çæææ°æ®åº
show databases;
æ¥çæä»¬åå»ºæ°æ®åºçå®ä¹ä¿¡æ¯ï¼
show CREATE DATABASE xxx;
2.3.3 ä¿®æ¹æ°æ®åº
alter database æ°æ®åºå character set
æ¥çæå¡å¨ä¸çæ°æ®åºï¼å¹¶ædb1çå符éä¿®æ¹ä¸ºutf8;
alter database db1 character set utf8;
2.3.4 å 餿°æ®åº
drop database
2.3.5 å ¶ä»è¯å¥
æ¥çå½å使ç¨çæ°æ®åº
Select database();
åæ¢æ°æ®åº: use æ°æ®åºå
USE mydb2;
2.4 DDLæä½è¡¨
2.4.1 æ¦è¿°
CREATE TABLEè¯å¥ç¨äºå建æ°è¡¨ã
è¯æ³ï¼
CREATE TABLE 表å(
åå1 æ°æ®ç±»å [约æ],
åå2 æ°æ®ç±»å [约æ],
åån æ°æ®ç±»å [约æ]
);
â
â说æ:表åï¼å忝èªå®ä¹ï¼å¤åä¹é´ä½¿ç¨éå·é´éï¼æåä¸åçéå·ä¸è½åâ
â
[约æ] è¡¨ç¤ºå¯æå¯æ
示ä¾ï¼
CREATE TABLE Employees(
id INT,
age INT,
first VARCHAR(255),
last VARCHAR(255)
);
å¸¸ç¨æ°æ®ç±»åï¼
intï¼æ´å
doubleï¼æµ®ç¹åï¼ä¾å¦double(5,2)表示æå¤5ä½ï¼å ¶ä¸å¿ é¡»æ2ä½å°æ°ï¼å³æå¤§å¼ä¸º
999.99ï¼é»è®¤æ¯æåèäºå ¥
charï¼åºå®é¿åº¦å符串类åï¼ char(10) 'aaa â å 10ä½
varcharï¼å¯åé¿åº¦å符串类åï¼ varchar(10) âaaaâ å 3ä½
textï¼å符串类åï¼æ¯å¦å°è¯´ä¿¡æ¯ï¼
blobï¼åèç±»åï¼ä¿åæä»¶ä¿¡æ¯(è§é¢ï¼é³é¢ï¼å¾ç)ï¼
dateï¼æ¥æç±»åï¼æ ¼å¼ä¸ºï¼yyyy-MM-ddï¼
timeï¼æ¶é´ç±»åï¼æ ¼å¼ä¸ºï¼hh:mm:ss
timestampï¼æ¶é´æ³ç±»å yyyy-MM-dd hh:mm:ss ä¼èªå¨èµå¼
datetime:æ¥ææ¶é´ç±»å yyyy-MM-dd hh:mm:ss
2.4.2 å ¶ä»è¡¨æä½
å é¤è¡¨ï¼
drop table 表å;
å½åæ°æ®åºä¸çææè¡¨
show tables;
æ¥ç表çåæ®µä¿¡æ¯
desc 表åï¼
å¢å å:å¨ä¸é¢å工表çåºæ¬ä¸å¢å ä¸ä¸ªimageåã
alter table 表å add æ°åå æ°çæ°æ®ç±»å
ä¿®æ¹jobåï¼ä½¿å ¶é¿åº¦ä¸º60ã
alter table 表å change æ§åå æ°åå æ°çæ°æ®ç±»å
åånameä¿®æ¹ä¸ºusername
å é¤imageå,䏿¬¡åªè½å ä¸åã
alter table 表å drop åå
ä¿®æ¹è¡¨å,è¡¨åæ¹ä¸ºuserã
alter table æ§è¡¨å rename æ°è¡¨å;
æ¥çè¡¨æ ¼çå建ç»è
show create table 表å;
ä¿®æ¹è¡¨çå符é为gbk
alter table 表å character set ç¼ç æ¹å¼
2.4.3 ç»ä¹
表å card(ä¼åå¡è¡¨)
åå æ°æ®ç±»å
cardid int
cardnum varchar(20)
regDate date
éæ±ï¼
(1)å建该表
(2)å°card表åä¿®æ¹ä¸ºCardInfo
(3)æ·»å delDate(æ³¨éæ¶é´) åå°è¡¨ä¸
(4)å°cardnumæ¹ä¸ºvarchar(30)
(5)å é¤regDateå
(6)å é¤cardInfo表
2.5 DMLæä½
DMLæ¯å¯¹è¡¨ä¸çæ°æ®è¿è¡å¢ãå ãæ¹çæä½ãä¸è¦ä¸DDLæ··æ·äºã
主è¦å æ¬ï¼INSERT ãUPDATEã DELETE
å°ç¥è¯ï¼
å¨mysqlä¸ï¼å符串类å忥æç±»åé½è¦ç¨åå¼å·æ¬èµ·æ¥ã
空å¼ï¼null
2.5.1 æå ¥æä½ï¼INSERT
insert into 表å(åå) values(æ°æ®å¼);
-
注æ:
1.å¤ååå¤ä¸ªåå¼ä¹é´ä½¿ç¨éå·éå¼
2.ååè¦ååå¼ä¸ä¸å¯¹åº
-
éæ°å¼çåå¼ä¸¤ä¾§éè¦å åå¼å·
常è§é误: Data too long for column âstusexâ at row 1
- æ·»å æ°æ®çæ¶åå¯ä»¥å°ååçç¥->å½ç»ææåæ·»å æ°æ®çæ¶å
- æ¤æ¶åå¼çé¡ºåºæç §æ°æ®è¡¨ä¸åçé¡ºåºæ§è¡
insert into student values('æå',12,'1111',189.98,'2000-1-1','ç·','2007-1-1');
ALTER TABLE user CHARACTER SET gbk;
insert into student(stuname,stuage,stusex,birthday) values('å¼ ä¸1',18,'a','2000- 1-1');
- åæ¶æ·»å å¤è¡
insert into 表å(åå) values(第ä¸è¡æ°æ®),(第äºè¡æ°æ®),(),();
insert into student(stuname,stuage,stusex,birthday) values('å¼ ä¸3',18,'a','2000-1-1'), ('å¼ ä¸4',18,'a','2000-1-1'), ('å¼ ä¸5',18,'a','2000-1-1'), ('å¼ ä¸6',18,'a','2000-1-1'), ('å¼ ä¸7',18,'a','2000-1-1'), ('å¼ ä¸8',18,'a','2000-1-1');
注æï¼
- ååä¸åå¼çç±»åã个æ°ã顺åºè¦ä¸ä¸å¯¹åºã
- åæ°å¼ä¸è¦è¶ åºåå®ä¹çé¿åº¦ã
- 妿æå ¥ç©ºå¼ï¼è¯·ä½¿ç¨null
- æå ¥çæ¥æååç¬¦ä¸æ ·ï¼é½ä½¿ç¨å¼å·æ¬èµ·æ¥ã
示ä¾ï¼
create table emp(
id int primary key,
name varchar(100) not null,
gender varchar(10) not null,
birthday date, salary float(10,2),
entry_date date, resume text
);
INSERT INTO emp(id,name,gender,birthday,salary,entry_date,resume)
VALUES(1,'zhangsan','female','1990-5-10',10000,'2015-5-5-','goodgirl');
INSERT INTO emp(id,name,gender,birthday,salary,entry_date,resume)
VALUES(2,'lisi','male','1995-5-10',10000,'2015-5-5','good boy');
INSERT INTO emp(id,name,gender,birthday,salary,entry_date,resume)
VALUES(3,'ä½ å¥½','male','1995-5-10',10000,'2015-5-5','good boy');
2.5.2 sqlä¸çè¿ç®ç¬¦
-
ï¼1ï¼ç®æ¯è¿ç®ç¬¦:+ï¼-ï¼*ï¼/(餿³),æ±ä½(%)
示ä¾ï¼
5/2
5%2
2/5
2%5
-ï¼2ï¼èµå¼è¿ç®ç¬¦:=
注ï¼èµå¼æ¹åï¼ä»å³å¾å·¦èµå¼
示ä¾ï¼ name=âå¼ ä¸â
-
(3) é»è¾è¿ç®ç¬¦ï¼
and(å¹¶ä¸),or(æè ),notï¼åéï¼
ä½ç¨:ç¨äºè¿æ¥å¤ä¸ªæ¡ä»¶æ¶ä½¿ç¨
- (4) å ³ç³»è¿ç®ç¬¦ï¼
>,<,>=,<=,!=(ä¸çäº),=(çäº),<>(ä¸çäº)
è¡¥å :æ¥è¯¢æææ°æ®:select * from 表å
2.5.3 ä¿®æ¹ï¼æ´æ°ï¼æä½ï¼UPDATE
è¯æ³ï¼UPDATE 表å SET åå1=åå¼1,åå2=åå¼2 ⦠WHERE åå=å¼
ç»ä¹ ï¼
å°ææåå·¥èªæ°´ä¿®æ¹ä¸º5000å ã å°å§å为zhangsançåå·¥èªæ°´ä¿®æ¹ä¸º3000å ã å°å§å为lisiçåå·¥èªæ°´ä¿®æ¹ä¸º4000å ,resumeæ¹ä¸ºnormalã å°ä½ 好çèªæ°´å¨åæåºç¡ä¸å¢å 1000å ã
update emp set salary=5000;
update emp set salary=3000 where name = 'zhangsan';
update emp set salary=4000,resume='normal' where name='lisi';
update emp set salary=salary+1000 where name='ä½ å¥½';
2.5.4 å 餿ä½ï¼DELETE
è¯æ³ ï¼ DELETE from 表å ãWHERE åå=å¼ã
ç»ä¹ ï¼
å é¤è¡¨ä¸å称为zhangsançè®°å½ã
å é¤è¡¨ä¸ææè®°å½ã
使ç¨truncateå é¤è¡¨ä¸è®°å½ã
TRUNCATE TABLE emp;
- DELETE å é¤è¡¨ä¸çæ°æ®ï¼è¡¨ç»æè¿å¨;å é¤åçæ°æ®å¯ä»¥æ¾å
- TRUNCATE å 餿¯æè¡¨ç´æ¥DROPæï¼ç¶ååå建ä¸ä¸ªåæ ·çæ°è¡¨ãå é¤çæ°æ®ä¸è½æ¾åãæ§è¡é度æ¯DELETEå¿«ã
delete from emp where name='lisi';
delete from emp;
truncate table emp;
2.5.5 ç»ä¹ é¢
Manager(管çå表)ï¼
mid ç¼å· int ï¼ä¸»é®ï¼
mname åå varchar(20)
age å¹´é¾ int
sex æ§å« char(2)
password å¯ç varchar(20)
address å°å varchar(20)
phone çµè¯ varchar(20)
æ°æ®ï¼
1 çå 18 ç· 123 å京 110
2 å ¬ä¸» 20 女 456 䏿µ· 220
3 太å 23 ç· 789 å京 330
éæ±ï¼
(1)å建表
(2)å°æ°æ®æå ¥å°è¡¨ä¸
(3)å°çåçå¹´é¾ä¿®æ¹ä¸º24
(4)å°å°åæ¯å京ç管çåæ¹ä¸ºå¤©æ´¥
(5)å°æ§å«æ¯å¥³,å¹¶ä¸å¹´é¾å¤§äº30çç¨æ·å¯ç æ¹ä¸º888888
(6)å°ææç¨æ·çå¯ç æ¢å¤æå设置111111
(7)å°åå·¥ççµè¯ä¸ä¸æ¯110ççµè¯å·ç æ¹ä¸º7654321
(8)å°çåç年龿¹ä¸º18ï¼å°åæ¹ä¸ºæ¿å¾·ï¼æ§å«æ¹ä¸ºå¥³
(9)å é¤çåçä¿¡æ¯
(10)å é¤å°åå¨å京并ä¸å¹´é¾å¤§äº60çå工信æ¯
(11)å é¤ä¸å¨å京çå工信æ¯
(12)å é¤å°åå¨å京æä¸æµ·çå工信æ¯
(13)å é¤çµè¯å·ç æ¯ç©ºçå工信æ¯
create table Manager(
mid int,
mname varchar(20),
age int,
sex char(2),
address varchar(20),
phone varchar(20)
);
insert into manager values (1, 'çå', 18, 'ç·', '123', 'å京', '110');
insert into manager values (2, 'å
¬ä¸»', 20, '女', '456', '䏿µ·', '220');
insert into manager values (3, '太å', 23, 'ç·', '789', 'å京', '330');
update manager age=24 where name='çå';
update manager set address='天津' where address='å京';
update manager set password='888888' where sex='女' and age>30;
update manager set password='111111';
update manager set phone='7654321' where phone!='110';
update manager set age=18,address='æ¿å¾·',sex='女' where mname='çå';
delete from manager where mname='çå';
delete from manager where address='å京' and age>60;
delete from manager where address!='å京';
delete from manager where address='å京' or address='䏿µ·';
delete from manager where phone is null;
2.5.6 å°ç»
ä¸ºç©ºçæ¡ä»¶ï¼åå is null or åå=ââ
注:两个åå¼å·è¡¨ç¤ºç©ºå符串
æ¥æç±»åå¼çåºå«:
dateï¼yyyy-MM-dd ï¼å¹´ææ¥ï¼
timeï¼hh:mm:ss (æ¶åç§)
datetime:yyyy-MM-dd hh:mm:ss (å¹´ææ¥æ¶åç§)
è·åå½åç³»ç»æ¶é´:now()
select now();
2.6 DCL
2.6.1 åå»ºç¨æ·
create user ç¨æ·å@æå®ip identified by å¯ç ;
create user test123@localhost IDENTIFIED by 'test123'
create user ç¨æ·å@客æ·ç«¯ip identified by å¯ç ; æå®IPæè½ç»é
create user [email protected] IDENTIFIED by 'test456'
2.6.2 ç¨æ·ææ
grant æé1,æé2,........,æén on æ°æ®åºå.* to ç¨æ·å@IP;
ç»æå®ç¨æ·æäºæå®æå®æ°æ®åºæå®æé
grant all on . to ç¨æ·å@IP
ç»æå®ç¨æ·æäºæææ°æ®åºæææé
2.6.3 ç¨æ·æéæ¥è¯¢
show grants for ç¨æ·å@IP;
2.6.4 æ¤éç¨æ·æé
revoke æé1,æé2,........,æén on æ°æ®åºå.* from ç¨æ·å@IP;
2.6.5 å é¤ç¨æ·
drop user ç¨æ·å@IP;
第ä¸ç« DQLæ°æ®æ¥è¯¢
3.1 DQLæ°æ®æ¥è¯¢è¯è¨
æ°æ®åºæ§è¡DQLè¯å¥ä¸ä¼å¯¹æ°æ®è¿è¡æ¹åï¼èæ¯è®©æ°æ®åºåéç»æéç»å®¢æ·ç«¯ã
æ¥è¯¢è¿åçç»æéæ¯ä¸å¼ èæè¡¨ã
æ¥è¯¢å ³é®åï¼SELECT
è¯æ³ï¼
SELECT åå FROM 表å ãWHERE --> BROUP BYâ>HAVINGâ> ORDER BYã
* 表示ææå
SELECT è¦æ¥è¯¢çååç§°
FROM 表åç§°
WHERE é宿¡ä»¶ /*è¡æ¡ä»¶*/
GROUP BY grouping_columns /*å¯¹ç»æåç»*/
HAVING condition /*åç»åçè¡æ¡ä»¶*/
ORDER BY sorting_columns /*å¯¹ç»æåç»*/
LIMIT offset_start, row_count /*ç»æéå®*/
æ¥ä¸æ¥å建ä¸å¼ 表ç¨äºåç»æ¥è¯¢ï¼
1>å建å¦çè¡¨å¹¶æ·»å æ°æ®
#å建表stu
CREATE TABLE stu (
sid CHAR(6),
sname VARCHAR(50),
age INT, gender VARCHAR(50)
);
#æ·»å æ°æ®
INSERT INTO stu VALUES('S_1001', 'liuYi', 35, 'male');
INSERT INTO stu VALUES('S_1002', 'chenEr', 15, 'female');
INSERT INTO stu VALUES('S_1003', 'zhangSan', 95, 'male');
INSERT INTO stu VALUES('S_1004', 'liSi', 65, 'female');
INSERT INTO stu VALUES('S_1005', 'wangWu', 55, 'male');
INSERT INTO stu VALUES('S_1006', 'zhaoLiu', 75, 'female');
INSERT INTO stu VALUES('S_1007', 'sunQi', 25, 'male');
INSERT INTO stu VALUES('S_1008', 'zhouBa', 45, 'female');
INSERT INTO stu VALUES('S_1009', 'wuJiu', 85, 'male');
INSERT INTO stu VALUES('S_1010', 'zhengShi', 5, 'female');
INSERT INTO stu VALUES('S_1011', 'xxx', NULL, NULL);
2>å建éåè¡¨å¹¶æ·»å æ°æ®
#å建éå表
CREATE TABLE emp2(
empno INT,
ename VARCHAR(50),
job VARCHAR(50),
mgr INT,
hiredate DATE,
sal DECIMAL(7,2),
comm decimal(7,2),
deptno INT
);
#æ·»å æ°æ®
INSERT INTO emp2 values(7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20);
INSERT INTO emp2 values(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30);
INSERT INTO emp2 values(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30);
INSERT INTO emp2 values(7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20);
INSERT INTO emp2 values(7654,'MARTIN','SALESMAN',7698,'1981-09- 28',1250,1400,30);
INSERT INTO emp2 values(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30);
INSERT INTO emp2 values(7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10);
INSERT INTO emp2 values(7788,'SCOTT','ANALYST',7566,'1987-04-19',3000,NULL,20);
INSERT INTO emp2 values(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10);
INSERT INTO emp2 values(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30);
INSERT INTO emp2 values(7876,'ADAMS','CLERK',7788,'1987-05-23',1100,NULL,20);
3>å建é¨é¨è¡¨å¹¶æ·»å æ°æ®
CREATE TABLE dept(
deptno INT,
dname varchar(14),
loc varchar(13)
);
#æ·»å æ°æ®
INSERT INTO dept values(10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO dept values(20, 'RESEARCH', 'DALLAS');
INSERT INTO dept values(30, 'SALES', 'CHICAGO');
INSERT INTO dept values(40, 'OPERATIONS', 'BOSTON');
3.2 ç®åæ¥è¯¢
æ¥è¯¢ææå
SELECT * FROM stu;
æ¥è¯¢æå®å
SELECT sid, sname, age FROM stu;
3.3 æ¡ä»¶æ¥è¯¢
æ¡ä»¶æ¥è¯¢å°±æ¯å¨æ¥è¯¢æ¶ç»åºWHEREåå¥ï¼å¨WHEREåå¥ä¸å¯ä»¥ä½¿ç¨å¦ä¸è¿ç®ç¬¦åå ³é®åï¼
=ã!=ã<>ã<ã<=ã>ã>=; BETWEENâ¦ANDï¼ IN(set)ï¼ IS NULLï¼ ANDï¼ORï¼ NOTï¼
- (1)æ¥è¯¢æ§å«ä¸ºå¥³ï¼å¹¶ä¸å¹´é¾50以å çè®°å½
SELECT * FROM stu WHERE gender='female' AND age<50;
- (2)æ¥è¯¢å¦å·ä¸ºS_1001ï¼æè å§å为liSiçè®°å½
SELECT * FROM stu WHERE sid ='S_1001' OR sname='liSi';
-
(3)æ¥è¯¢å¦å·ä¸ºS_1001ï¼S_1002ï¼S_1003çè®°å½
åå in (åå¼1,åå¼2)
SELECT * FROM stu WHERE sid IN ('S_1001','S_1002','S_1003');
- (4)æ¥è¯¢å¦å·ä¸æ¯S_1001ï¼S_1002ï¼S_1003çè®°å½
SELECT * FROM stu WHERE sid NOT IN('S1001','S1002','S_1003');
- (5)æ¥è¯¢å¹´é¾ä¸ºnullçè®°å½
SELECT * FROM stu WHERE age IS NULL;
- (6) æ¥è¯¢å¹´é¾å¨20å°40ä¹é´çå¦çè®°å½
SELECT * FROM stu WHERE age>=20 AND age<=40;
æè :åå between å¼å§å¼ and ç»æå¼ï¼//注æ:1.å¼å§å¼<ç»æå¼ 2.å å«ä¸´çå¼ç
SELECT * FROM stu WHERE age BETWEEN 20 AND 40;
- (7) æ¥è¯¢æ§å«éç·çå¦çè®°å½
SELECT * FROM stu WHERE gender!='male';
æè
SELECT * FROM stu WHERE gender<>'male';
æè
SELECT * FROM stu WHERE NOT gender='male';
- (8) æ¥è¯¢å§åä¸ä¸ºnullçå¦çè®°å½
SELECT * FROM stu WHERE NOT sname IS NULL;
æè
SELECT * FROM stu WHERE sname IS NOT NULL;
3.4 æ¨¡ç³æ¥è¯¢
彿³æ¥è¯¢å§åä¸å å«a忝çå¦çæ¶å°±éè¦ä½¿ç¨æ¨¡ç³æ¥è¯¢äºãæ¨¡ç³æ¥è¯¢éè¦ä½¿ç¨å ³é®åLIKEã
è¯æ³: åå like â表达å¼â //表达å¼å¿ é¡»æ¯å符串
éé 符:
_(ä¸å线): ä»»æä¸ä¸ªå符
%ï¼ä»»æ0~n个å符,âå¼ %â
- (1)æ¥è¯¢å§åç±3ä¸ªåææçå¦çè®°å½
SELECT * FROM stu WHERE sname LIKE '___';
æ¨¡ç³æ¥è¯¢å¿ 须使ç¨LIKEå ³é®åãå ¶ä¸"âå¹é ä»»æä¸ä¸ªåï¼3个â"表示3个任æåã
- (2)æ¥è¯¢å§åç±5ä¸ªåæ¯ææï¼å¹¶ä¸ç¬¬5ä¸ªåæ¯ä¸º"i"çå¦çè®°å½
SELECT * FROM stu WHERE sname LIKE '____i';
- (3)æ¥è¯¢å§å以"z"å¼å¤´çå¦çè®°å½
SELECT * FROM stu WHERE sname LIKE 'z%';
å ¶ä¸"%"å¹é 0~n个任ä½åæ¯ã
- (4)æ¥è¯¢å§åä¸ç¬¬2ä¸ªåæ¯ä¸º"i"çå¦çè®°å½
SELECT * FROM stu WHERE sname LIKE '_i%';
- (5)æ¥è¯¢å§åä¸å å«"a"忝çå¦çè®°å½
SELECT * FROM stu WHERE sname LIKE '%a%';
3.5 åæ®µæ§å¶æ¥è¯¢
-
(1)å»é¤éå¤è®°å½
å»é¤éå¤è®°å½ï¼ä¸¤è¡æä¸¤è¡ä»¥ä¸è®°å½ä¸ç³»åçä¸çæ°æ®é½ç¸åï¼ï¼ä¾å¦emp表ä¸salåæ®µå°±åå¨ç¸åçè®°å½ãå½åªæ¥è¯¢emp表çsalåæ®µæ¶ï¼é£ä¹ä¼åºç°éå¤è®°å½ï¼é£ä¹æ³å»é¤éå¤è®°å½ï¼éè¦ä½¿ç¨DISTINCTï¼
SELECT DISTINCT sal FROM emp2;
-
(2)æ¥çéåçæèªä¸ä½£éä¹å
å 为salåcomm两åçç±»å齿¯æ°å¼ç±»åï¼æä»¥å¯ä»¥åå è¿ç®ã妿salæcomm䏿ä¸ä¸ªåæ®µä¸æ¯æ°å¼ç±»åï¼é£ä¹ä¼åºéã
SELECT *,sal+comm FROM emp2;
commåæå¾å¤è®°å½çå¼ä¸ºNULLï¼å 为任ä½ä¸è¥¿ä¸NULLç¸å ç»æè¿æ¯NULLï¼æä»¥ç»ç®ç»æå¯è½ä¼åºç°NULLãä¸é¢ä½¿ç¨äºæNULLè½¬æ¢ææ°å¼0ç彿°IFNULLï¼
SELECT *,sal+IFNULL(comm,0) FROM emp2;
-
(3)ç»ååæ·»å å«å
å¨ä¸é¢æ¥è¯¢ä¸åºç°åå为sal+IFNULL(comm,0)ï¼è¿å¾ä¸ç¾è§ï¼ç°å¨æä»¬ç»è¿ä¸åç»åºä¸ä¸ªå«åï¼ä¸ºtotalï¼
SELECT *, sal+IFNULL(comm,0) AS total FROM emp2;
ç»åèµ·å«åæ¶ï¼æ¯å¯ä»¥çç¥ASå ³é®åçï¼
SELECT *,sal+IFNULL(comm,0) total FROM emp2;
3.6 æåº
è¯æ³ï¼ order by åå asc/desc
//asc ååº desc éåº é»è®¤ä¸åçè¯æ¯ååº
- (1) æ¥è¯¢ææå¦çè®°å½ï¼æå¹´é¾ååºæåº
SELECT * FROM stu ORDER BY age ASC;
æè
SELECT * FROM stu ORDER BY age;
- (2) æ¥è¯¢ææå¦çè®°å½ï¼æå¹´é¾éåºæåº
SELECT * FROM stu ORDER BY age DESC;
-
(3) æ¥è¯¢ææéåï¼ææèªéåºæåºï¼å¦ææèªç¸åæ¶ï¼æç¼å·ååºæåº
å¤åæåºï¼å½åé¢çåçå¼ç¸åçæ¶åï¼æä¼æç §åé¢çåå¼è¿è¡æåº
SELECT * FROM emp ORDER BY sal DESC,empno ASC;
3.7 èå彿°
èå彿°æ¯ç¨æ¥å纵åè¿ç®ç彿°ï¼
- COUNT(åå)ï¼ç»è®¡æå®åä¸ä¸ºNULLçè®°å½è¡æ°ï¼
- MAX(åå)ï¼è®¡ç®æå®åçæå¤§å¼ï¼å¦ææå®åæ¯å符串类åï¼é£ä¹ä½¿ç¨å符串æåºè¿ç®ï¼
- MIN(åå)ï¼è®¡ç®æå®åçæå°å¼ï¼å¦ææå®åæ¯å符串类åï¼é£ä¹ä½¿ç¨å符串æåºè¿ç®ï¼
- SUM(åå)ï¼è®¡ç®æå®åçæ°å¼åï¼å¦ææå®åç±»å䏿¯æ°å¼ç±»åï¼é£ä¹è®¡ç®ç»æä¸º0ï¼
- AVG(åå)ï¼è®¡ç®æå®åçå¹³åå¼ï¼å¦ææå®åç±»å䏿¯æ°å¼ç±»åï¼é£ä¹è®¡ç®ç»æä¸º0ï¼
3.7.1 COUNT
å½éè¦çºµåç»è®¡æ¶å¯ä»¥ä½¿ç¨COUNT()ã
æ¥è¯¢emp表ä¸è®°å½æ°ï¼
SELECT COUNT(*) AS cnt FROM emp;
æ¥è¯¢empè¡¨ä¸æä½£éç人æ°ï¼
SELECT COUNT(comm) cnt FROM emp;
注æï¼å 为count()彿°ä¸ç»åºçæ¯commåï¼é£ä¹åªç»è®¡commåéNULLçè¡æ°ã
æ¥è¯¢empè¡¨ä¸æèªå¤§äº2500ç人æ°ï¼
SELECT COUNT(*) FROM emp WHERE sal > 2500;
ç»è®¡æèªä¸ä½£éä¹å大äº2500å ç人æ°ï¼
SELECT COUNT(*) AS cnt FROM empWHERE sal+IFNULL(comm,0) > 2500;
æ¥è¯¢æä½£éç人æ°ï¼ä»¥åæé¢å¯¼ç人æ°ï¼
SELECT COUNT(comm), COUNT(mgr)FROM emp;
3.7.2 SUMåAVG
å½éè¦çºµåæ±åæ¶ä½¿ç¨sum()彿°ã
æ¥è¯¢ææéåæèªåï¼
SELECT SUM(sal) FROM emp2;
æ¥è¯¢ææéåæèªåï¼ä»¥åææéåä½£éåï¼
SELECT SUM(sal), SUM(comm) FROM emp2;
æ¥è¯¢ææéåæèª+ä½£éåï¼
SELECT SUM(sal+IFNULL(comm,0)) FROM emp2;
ç»è®¡ææå工平åå·¥èµï¼
SELECT AVG(sal) FROM emp2;
3.7.3 MAXåMIN
æ¥è¯¢æé«å·¥èµåæä½å·¥èµï¼
SELECT MAX(sal), MIN(sal) FROM emp;
3.8 åç»æ¥è¯¢
å½éè¦åç»æ¥è¯¢æ¶éè¦ä½¿ç¨GROUP BYåå¥ï¼ä¾å¦æ¥è¯¢æ¯ä¸ªé¨é¨çå·¥èµåï¼è¿è¯´æè¦ä½¿ç¨é¨åæ¥åç»ã
注æ:妿æ¥è¯¢è¯å¥ä¸æåç»æä½ï¼åselectåé¢è½æ·»å çåªè½æ¯èå彿°å被åç»çåå
3.8.1 åç»æ¥è¯¢
æ¥è¯¢æ¯ä¸ªé¨é¨çé¨é¨ç¼å·åæ¯ä¸ªé¨é¨çå·¥èµåï¼
SELECT deptno, SUM(sal) FROM emp2 GROUP BY deptno;
æ¥è¯¢æ¯ä¸ªé¨é¨çé¨é¨ç¼å·ä»¥åæ¯ä¸ªé¨é¨ç人æ°ï¼
SELECT deptno,COUNT(*) FROM emp2 GROUP BY deptno;
æ¥è¯¢æ¯ä¸ªé¨é¨çé¨é¨ç¼å·ä»¥åæ¯ä¸ªé¨é¨å·¥èµå¤§äº1500ç人æ°ï¼
SELECT deptno,COUNT(*) FROM emp2 WHERE sal>1500 GROUP BY deptno;
3.8.2 HAVINGåå¥
æ¥è¯¢å·¥èµæ»å大äº9000çé¨é¨ç¼å·ä»¥åå·¥èµåï¼
SELECT deptno, SUM(sal) FROM emp2 GROUP BY deptno HAVING SUM(sal) > 9000;
注ï¼havingä¸whereçåºå«:
- 1.havingæ¯å¨åç»åå¯¹æ°æ®è¿è¡è¿æ»¤,whereæ¯å¨åç»åå¯¹æ°æ®è¿è¡è¿æ»¤
-
2.havingåé¢å¯ä»¥ä½¿ç¨åç»å½æ°(ç»è®¡å½æ°)
whereåé¢ä¸å¯ä»¥ä½¿ç¨åç»å½æ°ã
WHEREæ¯å¯¹åç»åè®°å½çæ¡ä»¶ï¼å¦ææè¡è®°å½æ²¡ææ»¡è¶³WHEREåå¥çæ¡ä»¶ï¼é£ä¹è¿è¡è®°å½ä¸ä¼åå åç»ï¼èHAVINGæ¯å¯¹åç»åæ°æ®ç约æã
3.9 LIMIT
LIMITç¨æ¥é宿¥è¯¢ç»æçèµ·å§è¡ï¼ä»¥åæ»è¡æ°ã
limit å¼å§ä¸æ ,æ¾ç¤ºæ¡æ°ï¼//å¼å§ä¸æ ä»0å¼å§
limit æ¾ç¤ºæ¡æ°ï¼//表示é»è®¤ä»0å¼å§è·åæ°æ®
- 1.æ¥è¯¢5è¡è®°å½ï¼èµ·å§è¡ä»0å¼å§
SELECT * FROM emp2 LIMIT 0, 5;
注æï¼èµ·å§è¡ä»0å¼å§ï¼å³ç¬¬ä¸è¡å¼å§ï¼
- 2.æ¥è¯¢10è¡è®°å½ï¼èµ·å§è¡ä»3å¼å§
SELECT* FROM emp2 LIMIT 3, 10;
3.9.1 å页æ¥è¯¢
妿ä¸é¡µè®°å½ä¸º10æ¡ï¼å¸ææ¥ç第3页记å½åºè¯¥æä¹æ¥å¢ï¼
第ä¸é¡µè®°å½èµ·å§è¡ä¸º0ï¼ä¸å ±æ¥è¯¢10è¡ï¼ limit 0,10
第äºé¡µè®°å½èµ·å§è¡ä¸º10ï¼ä¸å ±æ¥è¯¢10è¡ï¼limit 10,10
第ä¸é¡µè®°å½èµ·å§è¡ä¸º20ï¼ä¸å ±æ¥è¯¢10è¡ï¼ limit 20,10
pageIndex 页ç å¼ pageSize æ¯é¡µæ¾ç¤ºæ¡æ°
limit (pageindex-1)*pagesize,pagesize;
æ¥è¯¢è¯å¥ä¹¦å顺åºï¼select from where groupby having order by limit
æ¥è¯¢è¯å¥æ§è¡é¡ºåºï¼from where group by having select order by limit
第åç« ä½¿ç¨å¼åå·¥å ·å®ç°æ°æ®åºæä½
4.1 åºäºNavicatå®ç°æ°æ®åºæä½
宿¹ä¸è½½å°åï¼
ââhttps://www.navicat.com.cn/download/navicat-premiumââ
ä¸è½½å®è£ åè¿è¡æ°æ®åºè¿æ¥å³å¯ï¼å¯ä»¥ä¿æå建çè¿æ¥ï¼ä¹åæå¼æ°æ®åºãè¡¨æ ¼çå³å¯ï¼å ¶å®çæä½åæ®éè½¯ä»¶ä¸æ ·:
ä½ å¯ä»¥å½æå¯è§åæä½æ°æ®åºçè½¯ä»¶ï¼æ¯æå¨å¨ç»ç«¯æä½æ°æ®åºè¦æ¹ä¾¿å¾å¤ï¼å½ç¶ä¸è¦å¿è®°å¸¸ç¨çç»ç«¯æä½ï¼å½ä½ å¦äºä¸äºèæ¬å¯ä»¥å°è¯åä¸äºèæ¬æ¥èªå¨åæä½æ°æ®åºã
Navicatæ¯æ¶è´¹è½¯ä»¶ï¼æä»¥å¨æäºæ¶åæä»¬ä¼æ¾ä¸äºfreeçæ¬æ¿ä»£ï¼æ¯å¦ä¸é¢çSQLyog社åºçã
4.2 åºäºSQLyogå®ç°æ°æ®åºæä½
社åºçä¸è½½å°åGitHub:
ââhttps://github.com/webyog/sqlyog-community/wiki/Downloadsââ
ä½å¾å¯æå®ç®åä¼¼ä¹è¿æ²¡æmacçæ¬ã
4.3 ç»ä¹
ä¸åç»ä¹ æä»¬ä½¿ç¨navicatæ¥è¿è¡ç»ä¹ 以æ¤çæå·¥å ·æä½åæ°æ®åºæä½ã
ç»ä¹ 1:
Manager(管çå表)ï¼
mid ç¼å· int ï¼ä¸»é®ï¼
mname åå varchar(20)
age å¹´é¾ int
sex æ§å« char(2)
password å¯ç varchar(20)
address å°å varchar(20)
phone çµè¯ varchar(20)
æ°æ®ï¼
1 çå 18 ç· 123 å京 110
2 å ¬ä¸» 20 女 456 䏿µ· 220
3 太å 23 ç· 789 å京 330
(14)æ¥è¯¢å ¬ä¸»çææä¿¡æ¯
(15)æ¥è¯¢å¹´é¾å¨18-30ä¹é´ç管çåå§å
(16)æ¥è¯¢è¡¨ä¸ææçç¨æ·ååçµè¯
(17)æ¥è¯¢æ§å«æ¯ç·ï¼å忝çåç个人信æ¯
(18)æ¥è¯¢åºå°åå¨å京å䏿µ·çå工信æ¯
SELECT * FROM Manager WHERE mname = 'å
¬ä¸»';
SELECT * FROM Manager WHERE age > 18 and age < 30;
SELECT mname,phone FROM Manager;
SELECT * FROM Manager WHERE sex = 'ç·' and mname = 'çå';
SELECT * FROM Manager WHERE address='䏿µ·' OR address='å京';
ç»ä¹ 2ï¼
scores
stuid int å¦çid
java int javaæç»©
mysql int mysqlæç»©
stuname varchar(20) å¦çå§å
æ°æ®ï¼
1 67 78 å¼ ä¸
2 87 55 æå
3 66 90 çäº
4 98 78 èµµå
5 80 88 ç°ä¸
éæ±ï¼
(1)对javaæç»©è¿è¡éåºæåº
(2)å¾å°mysqlæç»©åä¸å
(3)å¾å°javaå¦ç䏿åä¸åçå¦çä¿¡æ¯
(4)æ¥è¯¢åºä¸¤é¨æç»©é½ä¼ç§(>=80)çå¦çå§å
(5)æ¥è¯¢åºæç»©å¨90å以ä¸(>=90)çå¦çä¿¡æ¯
(6)æ¥è¯¢åºæ¯åå¦åçjava,mysql,æ»æç»©
(7)æ¾ç¤ºåºæ¯åå¦ççæ»å以åå§å
SELECT * FROM scores ORDER BY java DESC;
SELECT * FROM scores ORDER BY mysql DESC LIMIT 0,3;
SELECT * FROM scores ORDER BY java LIMIT 0,1;
SELECT stuname FROM scores WHERE mysql >= 80 AND java >= 80;
SELECT * FROM scores WHERE mysql >= 90 OR java >= 90;
SELECT java,mysql,java+mysql FROM scores;
SELECT stuname,mysql+java AS total_scores FROM scores;
ç»ä¹ 3ï¼
æµè¯æ°æ®ï¼
鿬æ 1371234567 å京 java S1101 89 1979-04-05
å¼ ä¸ä¸° 1372839201 䏿µ· æ°æ®åº S1102 67 1967-09-07
èµµæ 1387839201 å±±ä¸ mysql S1103 99 1987-09-07
Student2
stuname å§å varchar(20)
telphone çµè¯ varchar(20)
address ä½å varchar(20)
subject ç§ç® varchar(20)
stuNo å¦å· varchar(20)
score æç»© int
birthday åºçæ¥æ date
1.è¦æ¥è¯¢å 2.æ¡ä»¶
a.æ¥è¯¢ä½å为"å±±ä¸"çå¦çå§åãçµè¯ãä½å
b.æ¥è¯¢åç§°ä¸å«æ"æ°æ®åº"åæ ·ç§ç®ä¿¡æ¯
c.æ¥è¯¢çµè¯ä¸ä»¥"1387"å¼å¤´çå¦çä¿¡æ¯
d.æ¥è¯¢å§å§çï¼ä¸ä¸ªåçå¦çä¿¡æ¯
e.æ¥è¯¢å¦å·ä¸ºS1101çæå®java,mysqlç§ç®èè¯æç»©
f.æ¥è¯¢åº80åå¦åä¿¡æ¯
g.æ¥è¯¢åºå®¶åºä½åå¨åä¸å¹¿çå¦çåå
h.æ¾ç¤ºæç»©å¨ç¬¬5-10åçå¦çåååçµè¯
i.æ¥è¯¢åæ°å¨80-90ä¹é´å¹¶ä¸å¨å京çå¦ç
SELECT stuname,telphone,address from Student2 WHERE address = 'å±±ä¸';
SELECT subject FROM Student2 WHERE `subject` like '%æ°æ®åº%';
SELECT * FROM Student2 WHERE telphone LIKE '1387%';
SELECT * FROM Student2 WHERE stuname LIKE 'å§__';
SELECT score FROM Student2 WHERE stuNo = "S1101" AND `subject` = 'mysql' OR `subject` = 'java';
SELECT * FROM Student2 WHERE birthday like '198%';
SELECT stuname FROM Student2 WHERE address = 'å京' OR address = '䏿µ·' OR address = '广å·';
SELECT stuname,telphone FROM Student2 ORDER BY score DESC limit 4,5;
SELECT * FROM Student2 WHERE address = 'å京' AND score BETWEEN 80 AND 90;
ç»ä¹ 4:èå彿°ç»ä¹
表ï¼scores2
年级 grade varchar(10)
å¦å· stuno varchar(20)
èè¯æ¶é´ examDate date
ç§ç® subject varchar(20)
æç»© score int
妿 xueqi int
æ°æ®:
S1 S1101 2015-02-03 C 89 1
S2 S1103 2015-03-03 JAVA 90 2
S3 S1102 2015-07-03 C 100 1
1.æ¥è¯¢å¦çæ»äººæ°
2.å¦å·ä¸ºS1101çå¦ç第ä¸å¦æèè¯æ»æç»©,å¹³åå
3.æ¥è¯¢2013å¹´3æ22æ¥ç§ç®"C"çæé«åãæä½åãå¹³åå
4.æ¥è¯¢2013å¹´3æ22æ¥ç§ç®"C"åæ ¼å¦ççå¹³åå
5.æ¥è¯¢ææåå "C"ç§ç®èè¯çå¹³åå
6.æ¥çèjavaç人æ°
SELECT COUNT(*) FROM scores2;
SELECT SUM(score),AVG(score) FROM scores2 WHERE stuNo = 's1101' and xueqi = 1;
SELECT MAX(score),MIN(score),AVG(score) FROM scores2 WHERE examDate='2013-03-22' AND `subject` = "C";
SELECT AVG(score) FROM scores2 WHERE examDate='2013-03-22' AND `subject` = "C" AND score >= 60;
SELECT AVG(score) FROM scores2 WHERE `subject` = "C";
SELECT COUNT(*) FROM scores2 WHERE subject = "JAVA";
ç»ä¹ 5:åç»ç»ä¹
表åï¼student
年级(grade) varchar(10)
å¦çå§å(name) varchar(10)
妿¶(xueshi) int --æ¯äººåä¸ªå¦æ¶
åå èè¯(isexam) char(1) æ¯/å¦ã
课ç¨(subject) varchar(10)
åæ°(score) int
æ°æ®ï¼
1 å¼ ä¸ 10 æ¯ java 99
1 æå 10 å¦ java 0
2 çäº 20 æ¯ mysql 88
2 èµµå 20 æ¯ mysql 77
2 çäº 20 æ¯ java 99
2 èµµå 20 å¦ java 0
1 å¼ ä¸ 10 æ¯ mysql 88
ç»ä¹ ï¼
a:æ¥è¯¢æ¯ä¸ªå¹´çº§çæ»å¦æ¶æ°ï¼å¹¶æç §ååºæå
b:æ¥è¯¢æ¯ä¸ªåå èè¯çå¦åçå¹³åå
c:æ¥è¯¢æ¯é¨è¯¾ç¨çå¹³ååï¼å¹¶æç §éåºæå
SELECT SUM(xueshi) FROM student GROUP BY grade;
SELECT AVG(score) FROM student GROUP BY name;
SELECT AVG(score) AS avgscore FROM student GROUP BY subject ORDER BY avgscore DESC;
ç»ä¹ 6:综åç»ä¹
Student
ç§ç®åç§° subjectName varchar(20)
å¦çå§å stuname varchar(20)
å¦çå°å address varchar(20)
å¦çæ§å« sex char(2)
çµåé®ä»¶ email varchar(30)
年级 grade varchar(10)
åºçæ¥æ birthday date
èè¯æ¥æ examDate date
æç»© scores int
æ°æ®ï¼
JAVA å¼ ä¸ å京 ç· [email protected] S1 1990-03-04 2013-5-6 89
html æå 䏿µ· ç· S2 1993-08-04 2014-5-6 87
html çäº å京 ç· [email protected] S2 1990-03-04 2015-4-6 90
1.æ¥è¯¢S2çç§ç®åç§°
2.æ¥è¯¢S2ç·åå¦çå§ååä½å
3.æ¥è¯¢æ çµåé®ä»¶çå¦çå§åå年级信æ¯
4.æ¥è¯¢åºçæ¥æå¨1993å¹´ä¹åçS2çå¦çå§åå年级信æ¯
5.æ¥è¯¢åå äºæ¥æä¸º2014å¹´5æ6æ¥ç"HTML"ç§ç®èè¯çæç»©ä¿¡æ¯
SELECT `subjectName` FROM Student WHERE grade = "S2";
SELECT stuname,address FROM Student WHERE grade = "S2" AND sex = 'ç·';
SELECT stuname,grade FROM Student WHERE email = '';
SELECT stuname,grade FROM Student WHERE YEAR(birthday) < 1993 AND grade = 's2';
SELECT scores FROM Student WHERE DATE(examDate) = '2014-05-06' AND subjectName = 'html';
ç»ä¹ 7:
æ°å ¥èçç¨åºåå¯å¸ è¢«å ¬å¸å®æå»è·ä¸ä¸ªå¦ç管çç³»ç»ç项ç®ï¼é¡¹ç®ç»é¿å®æä»å»ä¸»è¦è´è´£æ°æ®åºé¨å
çæææä½ï¼æ¥å¸¸æ°æ®çç»´æ¤åæ ¹æ®éæ±è¿è¡æ°æ®æ¥è¯¢ãå¯å¯å¸ ä¹åå¹¶æ²¡ææ¥è§¦è¿æ°æ®åºï¼é£å°±æç´§æ¶é´å¦
ä¹ ä¸ä¸æ°æ®åºï¼æç»é¿å®æç sql è¡¥å ä¸ä¸å§ï¼
- æ°æ®è¡¨: 年级表(grade):年级 id(主é®-gradeid),年级åç§°(gname)
- æç»©è¡¨(score):id(主é®-scoreid),å¦åç¼å·(stuno)ï¼ç§ç® id(subjectid),åæ°(score)ï¼èè¯æ¶é´(examtime)
- å¦ç表(student):å¦çç¼å·(主é®-stuid)ï¼å¦çå§(stuname)ï¼ç»å½å¯ç (password)ï¼æ§å«(sex)ï¼å¹´çº§ id(gid),çµè¯(telphone)ï¼å°å(address)ï¼åºçæ¥æ(birthday)ï¼é®ç®±(email)
- ç§ç®è¡¨(subject):ç§ç® id(主é®-subjectid),ç§ç®åç§°(subjectname)ï¼å¦æ¶(studycount)ï¼å¹´çº§ id(gradeid)
DROP TABLE IF EXISTS `grade`;
CREATE TABLE `grade` (
`gradeid` int DEFAULT NULL,
`gname` varchar(255) DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (
`scoreid` int DEFAULT NULL,
`stuno` varchar(20) DEFAULT NULL,
`subjectid` int DEFAULT NULL,
`score` int DEFAULT NULL,
`examtime` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`stuid` int DEFAULT NULL,
`stuname` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`sex` varchar(255) DEFAULT NULL,
`gid` int DEFAULT NULL,
`telphone` varchar(255) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
`birthday` date DEFAULT NULL,
`email` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
DROP TABLE IF EXISTS `subject`;
CREATE TABLE `subject` (
`subjectid` int DEFAULT NULL,
`subjectname` varchar(255) DEFAULT NULL,
`studycount` int DEFAULT NULL,
`gradeid` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
éæ±:
1.grade 表å¢å ä¸ä¸ªé¶æ®µï¼â就䏿â
2.å°ç¬¬ä¸é¶æ®µçå¦çç gradeid æ¹ä¸ºå°±ä¸æç id
3.æ¥è¯¢ææå¾äº 100 åçå¦å·
4.æ¥è¯¢ææ 1989 å¹´åºççå¦çï¼1989-1-1~1990-1-1ï¼
5.æ¥è¯¢å¦çå§å为"éè¶"çå ¨é¨ä¿¡æ¯
6.æ¥è¯¢ subjectid 为 8 çç§ç®èè¯æªåæ ¼ï¼60 åï¼çå¦å·åæç»©
7.æ¥è¯¢ç¬¬ 3 é¶æ®µè¯¾æ¶å¤§äº 50 ç课ç¨å ¨é¨ä¿¡æ¯
8.æ¥è¯¢ S1101001 å¦ççèè¯ä¿¡æ¯
9.æ¥è¯¢ææç¬¬äºé¶æ®µç女çä¿¡æ¯
10."åºäº.NET å¹³å°ç软件系ç»åå±å¼å"éè¦å¤å°è¯¾æ¶
11.æ¥è¯¢"设计 MySchool æ°æ®åº"å"é¢å对象ç¨åºè®¾è®¡"ç课æ¶(ä½¿ç¨ in)
12 æ¥è¯¢ææå°åå¨å±±ä¸çå¦çä¿¡æ¯
13 æ¥è¯¢ææå§åçåååå¦
14.æ¥è¯¢ gradeid 为 1 çå¦çä¿¡æ¯ï¼æåºçæ¥æååºæåº
15.æ¥è¯¢ subjectid 为 3 çèè¯çæç»©ä¿¡æ¯ï¼ç¨éåºæåº
16.æ¥è¯¢ gradeid 为 2 ç课ç¨ä¸è¯¾æ¶æå¤ç课ç¨ä¿¡æ¯
17.æ¥è¯¢å京çå¦çæå¤å°ä¸ª
18.æ¥è¯¢æå¤å°ä¸ªç§ç®å¦æ¶å°äº 50
19.æ¥è¯¢ gradeid 为 2 çé¶æ®µæ»è¯¾æ¶æ¯å¤å°
20.æ¥è¯¢ subjectid 为 8 ç课ç¨å¦çå¹³åå
21.æ¥è¯¢ gradeid 为 3 ç课ç¨ä¸æå¤ç妿¶åæå°ç妿¶
22.æ¥è¯¢æ¯ä¸ªç§ç®æå¤å°äººæ¬¡èè¯
23.æ¯ä¸ªé¶æ®µè¯¾ç¨çå¹³å课æ¶
24.æ¥è¯¢æ¯ä¸ªé¶æ®µçç·çå女ç个æ°ï¼group by 两åï¼
use test_db;
-- 1. grade 表å¢å ä¸ä¸ªé¶æ®µï¼â就䏿â
insert into grade(gname) values('就䏿');
-- 2.å°ç¬¬ä¸é¶æ®µçå¦çç gradeid æ¹ä¸ºå°±ä¸æç id
update student set gid = (select gradeid from grade where gname="就䏿") where gid = (select gradeid from grade where gname="第ä¸é¶æ®µ");
-- 3.æ¥è¯¢ææå¾äº 100 åçå¦å·
select stuno from score where score = 100;
-- 4.æ¥è¯¢ææ 1989 å¹´åºççå¦çï¼1989-1-1~1990-1-1ï¼
select * from student where YEAR(birthday)=1989;
-- 5.æ¥è¯¢å¦çå§å为âéè¶âçå
¨é¨ä¿¡æ¯
select * from student where stuname = "éè¶";
-- 6.æ¥è¯¢ subjectid 为 8 çç§ç®èè¯æªåæ ¼ï¼60 åï¼çå¦å·åæç»©
SELECT * from score where score>60 and subjectid=8;
-- 7.æ¥è¯¢ç¬¬ 3 é¶æ®µè¯¾æ¶å¤§äº 50 ç课ç¨å
¨é¨ä¿¡æ¯
SELECT * from subject where studycount>50 and gradeid=(select gradeid from grade where gname = "第ä¸é¶æ®µ");
-- 8.æ¥è¯¢ S1101001 å¦ççèè¯ä¿¡æ¯
select * from score where stuno="S1101001";
-- 9.æ¥è¯¢ææç¬¬äºé¶æ®µç女çä¿¡æ¯
select * from student where sex = "女" and gid=(select gradeid from grade where gname = "第äºé¶æ®µ");
-- 10.âåºäº.NET å¹³å°ç软件系ç»åå±å¼åâéè¦å¤å°è¯¾æ¶
select sum(studycount) from subject where subjectname="åºäº.NET å¹³å°ç软件系ç»åå±å¼å";
-- 11.æ¥è¯¢â设计 MySchool æ°æ®åºâåâé¢å对象ç¨åºè®¾è®¡âç课æ¶(ä½¿ç¨ in)
select subjectname,sum(studycount) from subject where subjectname IN ('设计 MySchool æ°æ®åº','é¢å对象ç¨åºè®¾è®¡') GROUP BY subjectname;
-- 12 æ¥è¯¢ææå°åå¨å±±ä¸çå¦çä¿¡æ¯
select * from student where address ="å±±ä¸";
-- 13 æ¥è¯¢ææå§åçåååå¦
select * from student where stuname like "å_";
-- 14.æ¥è¯¢ gradeid 为 1 çå¦çä¿¡æ¯ï¼æåºçæ¥æååºæåº
select * from student where gid = 1 order by birthday;
-- 15.æ¥è¯¢ subjectid 为 3 çèè¯çæç»©ä¿¡æ¯ï¼ç¨éåºæåº
select * from score WHERE subjectid = 3 ORDER BY score DESC;
-- 16.æ¥è¯¢ gradeid 为 2 ç课ç¨ä¸è¯¾æ¶æå¤ç课ç¨ä¿¡æ¯
select * from subject where gradeid = 2 and studycount=(select max(studycount) from subject where gradeid = 2);
-- 17.æ¥è¯¢å京çå¦çæå¤å°ä¸ª
select count(stuname) from student where address = "å京";
-- 18.æ¥è¯¢æå¤å°ä¸ªç§ç®å¦æ¶å°äº 50
select count(*) from subject WHERE studycount <= 50;
-- 19.æ¥è¯¢ gradeid 为 2 çé¶æ®µæ»è¯¾æ¶æ¯å¤å°
SELECT sum(studycount) from subject WHERE gradeid = 2;
-- 20.æ¥è¯¢ subjectid 为 8 ç课ç¨å¦çå¹³åå
select avg(score) from score where subjectid = 8;
-- 21.æ¥è¯¢ gradeid 为 3 ç课ç¨ä¸æå¤ç妿¶åæå°ç妿¶
select max(studycount),min(studycount) from subject WHERE gradeid = 3;
-- 22.æ¥è¯¢æ¯ä¸ªç§ç®æå¤å°äººæ¬¡èè¯
select subjectid,count(*) from score GROUP BY subjectid;
-- 23.æ¯ä¸ªé¶æ®µè¯¾ç¨çå¹³å课æ¶
select gradeid,avg(studycount) from subject GROUP BY gradeid;
-- 24.æ¥è¯¢æ¯ä¸ªé¶æ®µçç·çå女ç个æ°ï¼group by两å)
select gid,sex,count(*) from student GROUP BY gid,sex;
mysql> source $path/xxx.sql