mysql中pi是什么意思_MySQL基础知识与常⽤命令
MySQL
MySQL是⼀种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使⽤最常⽤的数据库管理语⾔--结构化查询语⾔(SQL)进⾏数据库管理。
MySQL在过去由于性能⾼、成本低、可靠性好,已经成为最流⾏的开源数据库,因此被⼴泛地应⽤在Internet上的中⼩型⽹站中。
SQL(Structured Query Language)
事务的四个特性ACID
ACID,是指数据库管理系统(DBMS)在写⼊/更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具有的四个特性:原⼦性(atomicity,或称不可分割性)、⼀致性(consistency)、隔离性(isolation,⼜称独⽴性)、持久性(durability)。
范式
常⽤(第⼀范式-->BC范式)
对指定列的结果集进⾏排序。
SELECTcolumn_name, aggregate_function(column_name)FROMtable_nameWHEREcolumn_name operator valueGROUP BY column_name
聚合函数(Aggregate Functions)
Average: avg
Minimum: min
Maximum: max
Total: sum
Count: count
聚合函数会忽略空值。
DDL和DML
嵌套⼦查询(Nested Subqueries)
in, all, exists, some, any (可以相互转换)。
数据库连接池是什么意思?
像打开关闭数据库连接这种和数据库的交互可能是很费时的,尤其是当客户端数量增加的时候,会消
耗⼤量的资源,成本是⾮常⾼的。可以在应⽤服务器启动的时候建⽴很多个数据库连接并维护在⼀个池中。连接请求由池中的连接提供。在连接使⽤完毕以后,把连接归还到池中,以⽤于满⾜将来更多的请求。
MySQL
mysql 使⽤的数据类型分为三类: 数值类型,⽇期和时间类型,字符类型。
adventureSoftware
installation (on raspbian as an example)
小学英语歌曲
sudo apt-get install mysql-rver
login with password prompt
mysql -u root -p
show databa; # list databas
u db-name; # u a databa
show tables; # list table for current databa being ud
Basic CRUD
CREATE DATABASE demo; # create a databa named demo;
# 创建⼀个表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表
regretfullyDROP DATABASE demo; # drop数据库demo
例⼦
在 db_SPJ 中创建以下四个关系(表)
供应商表 S(SNO,SNAME,STATUS,CITY)
零件表P(PNO,PNAME,COLOR,WEIGHT)
⼯程项⽬表 J(JNO,JNAME,CITY)
供应情况表 SPJ(SNO,PNO,JNO,QTY)
每⼀张表都必须有主键。
需要使⽤外键的表必须使⽤外键。
根据需要适当采⽤唯⼀值、检查、⾮空和默认值约束。要求这四种约束在 S、P 和 J 表这三张表中⾄少使⽤⼀次。
根据主键、外键、唯⼀值、检查、⾮空和默认值六种约束的特性,设计适 当的⽅案对 S、P 和 J 表中的这六种约束进⾏检验。⽅案⾃定。⼀种约束进⾏检验⼀次即可
使⽤ `SHOW CREATE DATABASE db_SPJ;`来查看更多信息(类似地,可以⽤它来查看创建表的信息)
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) referenc
es 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
实现以下查询(Transact-SQL):
[1] 找出所有供应商的姓名和所在城市。
[2] 找出所有零件的名称、颜⾊和重量。
[3] 找出使⽤了供应商 S1 所供应的零件的⼯程号码。
[4] 找出⼯程 J2 使⽤的各种零件的名称和数量。
[5] 找出上海供应商供应的所有零件的零件号码。
[6] 找出使⽤了上海供应商供应的零件的⼯程名称。
[7] 找出供应⼯程 J1 零件的供应商号 SNO。
[8] 找出供应⼯程 J1 零件 P1 的供应商号 SNO。
[9] 找出供应⼯程 J1 红⾊零件的供应商号 SNO。
[10] 找出没有使⽤天津供应商⽣产的红⾊零件的⼯程号 JNO。
[11] 求所有有关 project 的信息。
[12] 求在北京的所有 project 的信息。
[13] 求为 project(⼯程)J1 提供 part(零件)的 supplier(供应商)的号 码。
[14] 求数量在 300 到 750 之间的发货。
[15] 求所有的零件颜⾊ / 城市对。注意:这⾥及以后所说的“所有”特指 在数据库中。 [16] 求所有的 supplier-number / part-number / project-number 对。其中所 指的供应商和⼯程在同⼀个城市。
[17] 求所有的 supplier-number / part-number / project-number 对。其中所 指的供应商和⼯程不在同⼀个城市。
[18] 求由北京供应商提供的零件的信息。
刀子的英语
[19] 求由北京供应商为北京⼯程供应的零件号。
[20] 求满⾜下⾯要求的城市对,要求在第⼀个城市的供应商为第⼆个城 市的⼯程供应零件。
[21] 求供应商为⼯程供应的零件的号码,要求供应商和⼯程在同⼀城市。
paul sturgess[22] 求⾄少被⼀个不在同⼀城市的供应商供应零件的⼯程号。
[23] 求由同⼀个供应商供应的零件号的对。
[24] 求所有由供应商 S1 供应的⼯程号。
pinnacle[25] 求供应商 S1 供应的零件 P1 的总量。
[26] 对每个供应给⼯程的零件,求零件号、⼯程号和相应的总量。
[27] 求为单个⼯程供应的零件数量超过 350 的零件号。
[28] 求由 S1 供应的⼯程名称。
[29] 求由 S1 供应的零件颜⾊。
[30] 求供应给北京⼯程的零件号。
[31] 求使⽤了 S1 供应的零件的⼯程号。
[32] 求 status ⽐ S1 低的供应商号码。
[33] 求所在城市按字母排序为第⼀的⼯程号。
[34] 求被供应零件P1 的平均数量⼤于供应给⼯程J1 的任意零件的最⼤ 数量的⼯程号。 [35] 求满⾜下⾯要求的供应商号码,该供应商供应给某个⼯程零件 P1 的 数量⼤于这个⼯程被供应的零件 P1 的平均数量。
[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#列进⾏交叉联接,把结果追加到 spj1 表中(如果只考虑下⾯表格中的原始数据,应该在 spj1 表中追加多 少条记录?你是如何计算记录条数的?)。
[48] 向 spj 表追加(s6,p1,j6,1000)本操作能正确执⾏吗?为什么?如果 追加(s4,p1,j6,-10) ⾏吗?如果现在想强制追加这两条记录该怎么
办?
[49] 把 s1 供应商供应的零件为 p1 的所有项⽬对应的数量 qty改为 500。
[50] 把 qty值⼤于等于 1000 的所有供应商城市更改为‘北京’ 。
[51] 把 j1 更改成 j7,本操作能正确执⾏吗?为什么?如果改成 j0 呢?spj 表中记录有何变化?为什么?
[52] 把零件重量低于 15 的增加 3,⾼于 15 的增加 2。
格莱美获奖歌曲[53] 删除为 j7 ⼯程供应零件的所有供应商信息(如果建⽴外键时没有带 级联删除选项,本操作能正确执⾏吗?为什么?)
[54] 删除 p1 表中所有记录。
[55] 删除供应商和⼯程在同⼀个城市的供应商信息。
# DML on spj databa
USEdb_spj;
#[1]
SELECT sname,city FROMs;
#[2]