mysql中pi是什么意思_MySQL 基础知识与常用命令
MySQL
MySQL是一種開放源代碼的關系型數(shù)據庫管理系統(tǒng)(RDBMS),MySQL數(shù)據庫系統(tǒng)使用最常用的數(shù)據庫管理語言--結構化查詢語言(SQL)進行數(shù)據庫管理。
MySQL在過去由于性能高、成本低、可靠性好,已經成為最流行的開源數(shù)據庫,因此被廣泛地應用在Internet上的中小型網站中。
SQL(Structured Query Language)
事務的四個特性ACID
ACID,是指數(shù)據庫管理系統(tǒng)(DBMS)在寫入/更新資料的過程中,為保證事務(transaction)是正確可靠的,所必須具有的四個特性:原子性(atomicity,或稱不可分割性)、一致性(consistency)、隔離性(isolation,又稱獨立性)、持久性(durability)。
范式
常用(第一范式-->BC范式)
對指定列的結果集進行排序。
SELECTcolumn_name, aggregate_function(column_name)FROMtable_nameWHEREcolumn_name operator valueGROUP BY column_name
聚合函數(shù)(Aggregate Functions)
Average: avg
Minimum: min
Maximum: max
Total: sum
Count: count
聚合函數(shù)會忽略空值。
DDL和DML
嵌套子查詢(Nested Subqueries)
in, all, exists, some, any (可以相互轉換)。
數(shù)據庫連接池是什么意思?
像打開關閉數(shù)據庫連接這種和數(shù)據庫的交互可能是很費時的,尤其是當客戶端數(shù)量增加的時候,會消耗大量的資源,成本是非常高的。可以在應用服務器啟動的時候建立很多個數(shù)據庫連接并維護在一個池中。連接請求由池中的連接提供。在連接使用完畢以后,把連接歸還到池中,以用于滿足將來更多的請求。
MySQL
mysql 使用的數(shù)據類型分為三類: 數(shù)值類型,日期和時間類型,字符類型。
Software
installation (on raspbian as an example)
sudo apt-get install mysql-server
login with password prompt
mysql -u root -p
show database; # list databases
use db-name; # use a database
show tables; # list table for current database being used
Basic CRUD
CREATE DATABASE demo; # create a database named demo;
# 創(chuàng)建一個表tutorials_tbl
CREATE TABLE demo.tutorials_tbl(
tutorial_id INT NOT NULL AUTO_INCREMENT,
tutorial_title VARCHAR(100) NOT NULL,
tutorial_author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY ( tutorial_id )
);
# 查詢
SELECT tutorial_id, tutorial_title, tutorial_author FROM tutorials_tbl;
# 更新
UPDATE tutorials_tbl SET tutorial_title="Learning JAVA" WHERE tutorial_id=3;
# 刪除
DELETE FROM tutorials_tbl WHERE tutorial_id=3;
# 刪除表
DELETE FROM tutorials_tbl;
DROP TABLE tutorials_tbl; # drop表
DROP DATABASE demo; # drop數(shù)據庫demo
例子
在 db_SPJ 中創(chuàng)建以下四個關系(表)
供應商表 S(SNO,SNAME,STATUS,CITY)
零件表P(PNO,PNAME,COLOR,WEIGHT)
工程項目表 J(JNO,JNAME,CITY)
供應情況表 SPJ(SNO,PNO,JNO,QTY)
? 每一張表都必須有主鍵。
? 需要使用外鍵的表必須使用外鍵。
? 根據需要適當采用唯一值、檢查、非空和默認值約束。要求這四種約束在 S、P 和 J 表這三張表中至少使用一次。
? 根據主鍵、外鍵、唯一值、檢查、非空和默認值六種約束的特性,設計適 當?shù)姆桨笇?S、P 和 J 表中的這六種約束進行檢驗。方案自定。一種約束進行檢驗一次即可
使用 `SHOW CREATE DATABASE db_SPJ;`來查看更多信息(類似地,可以用它來查看創(chuàng)建表的信息)
DDL:
1 USEdb_SPJ;2
3 CREATE TABLE S(SNO char(10) ,SNAME char(10) not null,STATUS int check(STATUS >0),CITY char(30) not null, primary key(SNO)) ;4 CREATE TABLE P(PNO char(10) UNIQUE,PNAME char(20) not null,COLOR char(10) default '白',WEIGHT int CHECK(WEIGHT >0), primary key(PNO));5 CREATE TABLE J(JNO char(10) UNIQUE,JNAME char(20) not null,CITY char(30) not null, primary key(JNO));6 CREATE TABLE SPJ(SNO char(10),PNO char(10),JNO char(10),QTY int, primary key(SNO,PNO,JNO));7 ALTER TABLE SPJ ADD CONSTRAINT FK_SNO foreign key(SNO) references S(SNO) ON DELETE CASCADE;8 ALTER TABLE SPJ ADD CONSTRAINT FK_PNO foreign key(PNO) references P(PNO) ON DELETE CASCADE;9 ALTER TABLE SPJ ADD CONSTRAINT FK_JNO foreign key(JNO) references J(JNO) ON DELETE CASCADE;
View Code
插入記錄:
1 INSERT INTO S VALUES
2 ('S1','精益',20,'天津'),3 ('S2','盛錫',10,'北京'),4 ('S3','東方紅',30,'北京'),5 ('S4','豐泰',20,'天津'),6 ('S5','為民',30,'上海');7
8 INSERT INTO P VALUES
9 ('P1','螺母','紅',12),10 ('P2','螺栓','綠',17),11 ('P3','螺絲刀','藍',14),12 ('P4','螺絲刀','紅',14),13 ('P5','凸輪','藍',40),14 ('P6','齒輪','紅',30);15
16 INSERT INTO J VALUES
17 ('J1','三建','北京'),18 ('J2','一汽','長春'),19 ('J3','彈簧廠','天津'),20 ('J4','造船廠','天津'),21 ('J5','機車廠','唐山'),22 ('J6','無線電廠','常州'),23 ('J7','半導體廠','南京');24
25 INSERT INTO SPJ VALUES
26 ('S1','P1','J1',200),27 ('S1','P1','J3',100),28 ('S1','P1','J4',700),29 ('S1','P2','J2',100),30 ('S2','P3','J1',400),31 ('S2','P3','J2',200),32 ('S2','P3','J4',500),33 ('S2','P3','J5',400),34 ('S2','P5','J1',400),35 ('S2','P5','J2',100),36 ('S3','P1','J1',200),37 ('S3','P3','J1',100),38 ('S4','P5','J1',100),39 ('S4','P6','J1',100),40 ('S4','P6','J4',100),41 ('S5','P2','J4',100),42 ('S5','P3','J1',200),43 ('S5','P6','J2',200),44 ('S5','P6','J4',500);
View Code
實現(xiàn)以下查詢(Transact-SQL):
[1] 找出所有供應商的姓名和所在城市。
[2] 找出所有零件的名稱、顏色和重量。
[3] 找出使用了供應商 S1 所供應的零件的工程號碼。
[4] 找出工程 J2 使用的各種零件的名稱和數(shù)量。
[5] 找出上海供應商供應的所有零件的零件號碼。
[6] 找出使用了上海供應商供應的零件的工程名稱。
[7] 找出供應工程 J1 零件的供應商號 SNO。
[8] 找出供應工程 J1 零件 P1 的供應商號 SNO。
[9] 找出供應工程 J1 紅色零件的供應商號 SNO。
[10] 找出沒有使用天津供應商生產的紅色零件的工程號 JNO。
[11] 求所有有關 project 的信息。
[12] 求在北京的所有 project 的信息。
[13] 求為 project(工程)J1 提供 part(零件)的 supplier(供應商)的號 碼。
[14] 求數(shù)量在 300 到 750 之間的發(fā)貨。
[15] 求所有的零件顏色 / 城市對。注意:這里及以后所說的“所有”特指 在數(shù)據庫中。 [16] 求所有的 supplier-number / part-number / project-number 對。其中所 指的供應商和工程在同一個城市。
[17] 求所有的 supplier-number / part-number / project-number 對。其中所 指的供應商和工程不在同一個城市。
[18] 求由北京供應商提供的零件的信息。
[19] 求由北京供應商為北京工程供應的零件號。
[20] 求滿足下面要求的城市對,要求在第一個城市的供應商為第二個城 市的工程供應零件。
[21] 求供應商為工程供應的零件的號碼,要求供應商和工程在同一城市。
[22] 求至少被一個不在同一城市的供應商供應零件的工程號。
[23] 求由同一個供應商供應的零件號的對。
[24] 求所有由供應商 S1 供應的工程號。
[25] 求供應商 S1 供應的零件 P1 的總量。
[26] 對每個供應給工程的零件,求零件號、工程號和相應的總量。
[27] 求為單個工程供應的零件數(shù)量超過 350 的零件號。
[28] 求由 S1 供應的工程名稱。
[29] 求由 S1 供應的零件顏色。
[30] 求供應給北京工程的零件號。
[31] 求使用了 S1 供應的零件的工程號。
[32] 求 status 比 S1 低的供應商號碼。
[33] 求所在城市按字母排序為第一的工程號。
[34] 求被供應零件P1 的平均數(shù)量大于供應給工程J1 的任意零件的最大 數(shù)量的工程號。 [35] 求滿足下面要求的供應商號碼,該供應商供應給某個工程零件 P1 的 數(shù)量大于這個工程被供應的零件 P1 的平均數(shù)量。
[36] 求沒有被北京供應商供應過紅色零件的工程號碼。
[37] 求所用零件全被 S1 供應的工程號碼。
[38] 求所有北京工程都使用的零件號碼。
[39] 求對所有工程都提供了同一零件的供應商號碼。
[40] 求使用了 S1 提供的所有零件的工程號碼。
[41] 求至少有一個供應商、零件或工程所在的城市。
[42] 求被北京供應商供應或被北京工程使用的零件號碼。
[43] 求所有 supplier-number / part-number 對,其中指定的供應商不供應 指定的零件。
[44] 向 p 表追加如下記錄(P0,PN0,藍)。
[45] 把零件重量在 15 到 20 之間的零件信息追加到新的表 p1 中。
[46] 向 s 表追加記錄(s1, n2, ’上?!?能成功嗎?為什么?
[47] 把 s、p、j 三個表中的 s#,p#,j#列進行交叉聯(lián)接,把結果追加到 spj1 表中(如果只考慮下面表格中的原始數(shù)據,應該在 spj1 表中追加多 少條記錄?你是如何計算記錄條數(shù)的?)。
[48] 向 spj 表追加(s6,p1,j6,1000)本操作能正確執(zhí)行嗎?為什么?如果 追加(s4,p1,j6,-10) 行嗎?如果現(xiàn)在想強制追加這兩條記錄該怎么
辦?
[49] 把 s1 供應商供應的零件為 p1 的所有項目對應的數(shù)量 qty改為 500。
[50] 把 qty值大于等于 1000 的所有供應商城市更改為‘北京’ 。
[51] 把 j1 更改成 j7,本操作能正確執(zhí)行嗎?為什么?如果改成 j0 呢?spj 表中記錄有何變化?為什么?
[52] 把零件重量低于 15 的增加 3,高于 15 的增加 2。
[53] 刪除為 j7 工程供應零件的所有供應商信息(如果建立外鍵時沒有帶 級聯(lián)刪除選項,本操作能正確執(zhí)行嗎?為什么?)
[54] 刪除 p1 表中所有記錄。
[55] 刪除供應商和工程在同一個城市的供應商信息。
# DML on spj database
USEdb_spj;
#[1]
SELECT sname,city FROMs;
#[2]
SELECT pname,color,weight FROMp;
#[3]
SELECT jno FROMspjWHERE sno = 'S1';
#[4]
SELECT p.pname, spj.qty FROMspjLEFT JOIN p ON (spj.pno =p.pno)WHERE spj.jno = 'J2';
#[5]
SELECT DISTINCT spj.pno FROMspjWHERE spj.sno IN (SELECT sno FROM s WHERE s.city='上海');
#[6]nested querySELECT DISTINCT j.jname FROMjRIGHT JOIN spj ON(j.jnoin (SELECT jno FROM spj WHERE spj.sno IN (SELECT sno FROM s WHERE s.city='上海')));
#[7]
SELECT DISTINCT sno FROMspjWHERE spj.jno='J1';
#[8]
SELECT sno FROMspjWHERE jno='J1' AND pno='P1';
#[9]
SELECT DISTINCT sno FROMpINNER JOIN spj ON p.pno=spj.pnoWHERE p.color='紅';
#[10]
SELECT DISTINCT spj.jno FROMspjWHERE spj.sno NOT IN (SELECT sno FROM s WHERE s.city='天津')OR spj.pno NOT IN (SELECT pno FROM p WHERE p.color='紅');
#[11]
SELECT SPJ.JNO,JNAME,CITY,SNO,PNO,QTY FROMJinner join SPJ on J.JNO=SPJ.JNOORDER BYSPJ.JNO;
#[12]
SELECT SPJ.JNO,JNAME,CITY,SNO,PNO,QTY FROMJinner join SPJ on J.JNO=SPJ.JNO WHERE CITY='北京'
ORDER BYSPJ.JNO;
#[13]
SELECT sno FROMspjWHERE spj.jno = 'j1';
#[14]
SELECT SNO,PNO,JNO FROM SPJ WHERE QTY BETWEEN 300 AND 750;
#[15]
SELECT DISTINCTp.color, s.cityFROM (p INNER JOIN spj ON p.pno=spj.pno)INNER JOIN s ON s.sno =spj.snoORDER BY color ASC;
#[16]
select distinct spj.sno,spj.jno,spj.pno froms,spjright join j on spj.jno=j.jnowhere s.sno=spj.sno and s.city=j.city;
#[17]
select distinct spj.sno,spj.jno,spj.pno froms,spjright join j on spj.jno=j.jnowhere s.sno=spj.sno and s.city!=j.city;
#[18]
select * frompwhere p.pno in(select spj.pno from spj where spj.sno in(select s.sno from s where s.city='北京')
);
#[19]
select distinct spj.pno froms,spjright join j on spj.jno=j.jnowhere s.sno=spj.sno and s.city='北京' and s.city=j.city;
#[20]
select distinct s.city, j.city froms,spjright join j on spj.jno=j.jnowhere s.sno=spj.sno;
#[55]
DELETE FROM S WHERES.SNOIN (SELECT SPJ.SNO FROM (SPJ INNER JOIN S ON SPJ.SNO=S.SNO) INNER JOIN J ON SPJ.JNO=J.JNOWHERE S.CITY=J.CITY) ;
View Code
Reference
http://blog.webfsd.com/article-7.html
總結
以上是生活随笔為你收集整理的mysql中pi是什么意思_MySQL 基础知识与常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (分治法)归并排序
- 下一篇: java ssm框架登录代码,求一个SS