MySQL在Python中的实现

一、SQL 基础

---------------------------------------------------------------------------
 SHOW DATABASES
 CREATE DATABASE IF NOT EXISTS dataset;
 DROP DATABASE IF EXISTS dataset;
---------------------------------------------------------------------------
 CREATE TABLE product (x1 CHAR(3) NOT NULL, 
                       x2 CHAR(5) NOT NULL DEFAULT '521NN', 
                       x3 CHAR(2) NOT NULL, 
                       x4 INT NOT NULL,
                       CHECK (x4>50 AND x4<100),
                       PRIMARY KEY (x1), UNIQUE (x2), 
                       FOREIGN KEY (x3) REFERENCES vendor(x3))
                       ON UPDATE/DELETE CASCADE
                       ON UPDATE/DELETE SET NULL
                       ON UPDATE/DELETE SET DEFAULT;
 DROP TABLE product;
 ALTER TABLE product ADD (x CHAR(3));
 ALTER TABLE product DROP (x);
 ALTER TABLE product ADD CONSTRAINT fkresidesin FOREIGN KEY (x) REFERENCES vendor(x);
 ALTER TABLE product DROP CONSTRAINT fkresidesin;
 ALTER TABLE product MODIFY (fkproid NOT NULL);
---------------------------------------------------------------------------
 INSERT INTO vendor VALUES ('PG','Pacifica Gear');
 INSERT INTO vendor SELECT ...;
 UPDATE	vendor SET price = 10 WHERE	id = '328';
 DELETE FROM vendor WHERE id = '012';
---------------------------------------------------------------------------
 CREATE VIEW pr AS SELECT ...;
 DROP VIEW pr;
---------------------------------------------------------------------------
 SELECT          productid,
                 *,
                 price*2 AS p2, 
 DISTINCT        name,
                 NT(name),
                 DISTRINCT dpt)
                 AVG(price)
 FROM            pr
 ON              apt.id = corp.id
 WHERE           price <> 100 AND
                 cat = 'FW' AND
                 LIKE '%BA%' AND
                 IS NULL AND
                 price <= (SELECT AVG(price) FROM pr) AND
                 productid IN (SELECT productid FROM soldvia GROUP BY productid HAVING SUM(numofitems) > 3)
                 AND
                 NOT EXISTS (SELECT * FROM bld WHERE bld.vid = vendor.id)
 GROUP BY        name
 HAVING          COUNT(*)>10
 ORDER BY        name
 UNION/INTERSECT/MINUS
 SELECT          c.name Client, v.name Recommender
 FROM            vendor c LEFT/RIGHT OUTER JOIN vendor
 ON              c.id = v.id
---------------------------------------------------------------------------
 CREATE ASSERTION vr CHECK ((SELECT ...) < 11);
---------------------------------------------------------------------------
 CREATE TRIGGER trigr BEFORE/AFTER INSERT/UPDATE/DELETE ON product
 REFERENCING NEW/OLD ROW AS nrow
 FOR EACH ROW
 WHEN (nrow.timeid NOT IN (SELECT ...))
 BEGIN 
     ROLLBACK
 BEGIN ATOMIC
     SET nrow.price = NULL;
     UPDATE product SET nrow.price = NULL WHERE nrow.id = '012';
     DECLARE totaladvised INT DEFAULT 0;
     SELECT COUNT(*) INTO totaladvised FROM student WHERE advisorid = nrow.advisorid
     IF (totaladvised >= 10) THEN 
         SET nrow.Advisorid = NULL; 
     END IF;
 END;
---------------------------------------------------------------------------
 CREATE INDEX custname_index ON customer(custname);
 DROP INDEX custname_index ON customer(custname);
---------------------------------------------------------------------------

二、MySQL in Python

import mysql.connector    #导入模块
db = mysql.connector.connect(host="localhost", user="root", passwd="********")    #连接数据库
db.cursor().execute("show databases")    #输入一行SQL命令
db.cursor().executemany("insert into products values (%s, %s)", params)    #输入批量SQL命令 
db.cursor().fetchall()    #获取输出结果
db.close()    #切断连接

猜你喜欢

转载自blog.csdn.net/weixin_43269174/article/details/88081961