数据库操作详细


目录

1.商品供应及顾客订单

2.已知进销存数据库Jxcxt

3.已知选课管理系统Xkglxt

4.已知选课管理系统Xkglxt包含如下数据表

5.已知选课管理系统Xkglxt包含如下数据表和自定义函数

6.已知产品销售数据库cpxs

7.已知进销存数据库Jxcxt包含如下数据表

8.已知选课管理系统Xkglxt包含如下数据表

9.有一个关于商品供应及顾客订单的数据库

10.已知选课管理系统Xkglxt包含如下数据表和自定义函数

11.已知选课管理系统Xkglxt包含如下数据表

12.已知进销存数据库Jxcxt包含如下数据表 


1.商品供应及顾客订单


有一个关于商品供应及顾客订单的数据库。其中包括四个表,表中信息如下: 供应表apply(id、name、sid、price) 说明:id 供应厂家编号,name 供应厂家名称,sid 商品编号,price 商品价格。 顾客表customers(gid、name、address、balance) 说明:gid 顾客编号,address 地址,balance 余额。 订单表orders(sid、gid、date) 说明:sid 商品编号,gid 顾客编号,date 订单日期。 商品表goods(sid、name、count) 说明:sid 商品编号,name 商品名称,count 商品数量 写出SQL完成如下操作的SQL语句:
1)查询出2008-8-8这一天顾客的订单信息,要求包括顾客姓名、商品名称及订单日期.
2)将商品表中商品编号为’204’的商品名称更改为百事可乐
3)将顾客表上余额不足1000元的,将其订单日期延后10天
4) 删除订单表中商品编号为102的订单记录 5)将商品表中没有顾客订购的商品信息删除
学生答案:

1.select from customers where customers.gid=orders.gid and date“2008-8-8”;
2.update goods set sid=’百事可乐’where sid=‘204’;
3.select balance DATE_ADD(NOW(),INTERVAL10day)from customer swhere balance<1000;
4.delete from orders where sid=’102’;


1.select from customers where customers.gid=orders.gid and date“2008-8-8”;
2.update goods set sid=’百事可乐’where sid=‘204’;
3.select balance DATE_ADD(NOW(),INTERVAL10day)from customer swhere balance<1000;
4.delete from orders where sid=’102’;
————————————————


2.已知进销存数据库Jxcxt

包含如下数据表: 1)商品表:商品id(自增1), 商品名称, 单位, 单价, 商品状态 2)库存表:库存id(自增1), 商品id, 库存数量  请完成如下操作的SQL语句,表名和列名必须和上面的一致: 
1、创建以上两个表的SQL语句; 
2、在商品表上创建一个触发器(名字自定),当删除商品时自动删除该商品在库存表中的记录。 
学生答案: 

  CREATE TABLE 商品表(商品id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,商品名称 VARCHAR(20) NOT NULL,单位 VARCHAR(10),单价 DOUBLE,商品状态 VARCHAR(10));
       CREATE TABLE 库存表(库存id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,商品id INT NOT NULL,库存数量INT,FOREIGN KEY(商品id)REFERENCES 商品表(商品id));
2。  CREATET RIGGER delChain BEFORE DELETE ON 商品表 FOR EACH ROW DELETE FROM 库存表 WHERE 商品id=old.商品id;


1。  CREATE TABLE 商品表(商品id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,商品名称 VARCHAR(20) NOT NULL,单位 VARCHAR(10),单价 DOUBLE,商品状态 VARCHAR(10));
       CREATE TABLE 库存表(库存id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,商品id INT NOT NULL,库存数量INT,FOREIGN KEY(商品id)REFERENCES 商品表(商品id));
2。  CREATET RIGGER delChain BEFORE DELETE ON 商品表 FOR EACH ROW DELETE FROM 库存表 WHERE 商品id=old.商品id;
————————————————


3.已知选课管理系统Xkglxt

包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分   3)选课表: 选课id, 学生id, 课程id, 成绩  请完成如下操作的SQL语句,表名和列名必须和上面的一致: 
1、创建以上三个表的SQL语句; 
2、创建视图 V_选课,其中包含这些字段: 选课id, 学号, 姓名, 课程名, 成绩;
 3、查询张三的数据开发技术课程的成绩。 
学生答案: 

1.  学生表:CREATE TABLE student(xsid INT PRIMARY KEY,xh VARCHAR(13),xm VARCHAR(5),zy VARCHAR(10),nj CHAR(2),xmpysx VARCHAR(5))CHARSET=utf8;
     课程表:CREATE TABLE course(kcid INT PRIMARY KEY,kcmc VARCHAR(9),xfS MALLINT)CHARSET=utf8;
     选课表:CREATE TABL Esc(xkid INTPRIMARY KEY,xsid INT,kcid INT,grade DOUBLE(3,2),FOREIGN KEY(xsid)REFERENCES student(xsid),FOREIGN KEY(kcid)REFERENCES course(kcid))CHARSET=utf8;
2.CREATE VIEW v_选课 AS SELECT s.xkid, st.xh, st.xm, c.kcmc, s.grade FROM scs INNER JOIN studentst ON s.xsid=st.xsid INNER JOIN coursec ON c.kcid=s.kcid;
3.select grade from v_选课 where xm="张三" and kcmc='数据开发技术';


1.  学生表:CREATE TABLE student(xsid INT PRIMARY KEY,xh VARCHAR(13),xm VARCHAR(5),zy VARCHAR(10),nj CHAR(2),xmpysx VARCHAR(5))CHARSET=utf8;
     课程表:CREATE TABLE course(kcid INT PRIMARY KEY,kcmc VARCHAR(9),xfS MALLINT)CHARSET=utf8;
     选课表:CREATE TABL Esc(xkid INTPRIMARY KEY,xsid INT,kcid INT,grade DOUBLE(3,2),FOREIGN KEY(xsid)REFERENCES student(xsid),FOREIGN KEY(kcid)REFERENCES course(kcid))CHARSET=utf8;
2.CREATE VIEW v_选课 AS SELECT s.xkid, st.xh, st.xm, c.kcmc, s.grade FROM scs INNER JOIN studentst ON s.xsid=st.xsid INNER JOIN coursec ON c.kcid=s.kcid;
3.select grade from v_选课 where xm="张三" and kcmc='数据开发技术';
————————————————


4.已知选课管理系统Xkglxt包含如下数据表

1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分   3)选课表: 选课id, 学生id, 课程id, 成绩 系统已建有getstrpy(p_name VARCHAR(100))用户自定义函数。
 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上三个表的SQL语句; 2、创建一个存储过程(名字自定),实现学生表的插入,姓名拼音缩写需要调用getstrpy函数实现。
学生答案:

1. CREATE DATABASE Exkglxt;CREATE TABLE 学生表(学生id CHAR(4) PRIMARY KEY,学号 CHAR(4),姓名 CHAR(4),专业 CHAR(4),年级 CHAR(4),姓名拼音缩写 CHAR(8))CHARSET=utf8;
CREATE TABLE 课程表(课程id CHAR(4) PRIMARY KEY,课程名称 CHAR(10),学分 CHAR(4))CHARSET=utf8;
CREATE TABLE 选课表(选课id CHAR(4) PRIMARY KEY,学生id CHAR(4),课程id CHAR(4),成绩 INT,FOREIGN KEY(学生id)REFERENCES 学生表(学生id),FOREIGN KEY(课程id)REFERENCES 课程表(课程id))CHARSET=utf8;

2.DELIMITER $$

CREATE
    
    PROCEDURE `exkglxt`.`insert_学生表`(id CHAR(4),xh CHAR(4),xm CHAR(4),zy CHAR(4),nj CHAR(4))
   
    BEGIN
       INSERT INTO 学生表(学生id,学号,姓名,专业,年级,姓名拼音缩写)VALUES(id,xh,xm,zy,nj,getstrpy(xm));
       
    END$$

DELIMITER ;
函数:DELIMITER $$

CREATE
  
    FUNCTION `exkglxt`.`getstrpy`(zw CHAR(4)) RETURNS CHAR(8) CHARSET utf8mb4
    READS SQL DATA
BEGIN
    SET @pysx='';
    SET @l=CHAR_LENGTH(zw);
    SET @i=1;
    WHILE(@i<=l) DO
     SELECT jp INTO @jp FROM hzpyb WHERE hz=SUBSTR(zw,@i,1);
     SET @pysx=CONCAT(@pysx,@jp);
     SET @i=@i+1;
     END WHILE;
     RETURN @pysx;
    END$$
 
DELIMITER ;


1. CREATE DATABASE Exkglxt;CREATE TABLE 学生表(学生id CHAR(4) PRIMARY KEY,学号 CHAR(4),姓名 CHAR(4),专业 CHAR(4),年级 CHAR(4),姓名拼音缩写 CHAR(8))CHARSET=utf8;
CREATE TABLE 课程表(课程id CHAR(4) PRIMARY KEY,课程名称 CHAR(10),学分 CHAR(4))CHARSET=utf8;
CREATE TABLE 选课表(选课id CHAR(4) PRIMARY KEY,学生id CHAR(4),课程id CHAR(4),成绩 INT,FOREIGN KEY(学生id)REFERENCES 学生表(学生id),FOREIGN KEY(课程id)REFERENCES 课程表(课程id))CHARSET=utf8;

2.DELIMITER $$

CREATE
    
    PROCEDURE `exkglxt`.`insert_学生表`(id CHAR(4),xh CHAR(4),xm CHAR(4),zy CHAR(4),nj CHAR(4))
   
    BEGIN
       INSERT INTO 学生表(学生id,学号,姓名,专业,年级,姓名拼音缩写)VALUES(id,xh,xm,zy,nj,getstrpy(xm));
       
    END$$

DELIMITER ;
函数:DELIMITER $$

CREATE
  
    FUNCTION `exkglxt`.`getstrpy`(zw CHAR(4)) RETURNS CHAR(8) CHARSET utf8mb4
    READS SQL DATA
BEGIN
    SET @pysx='';
    SET @l=CHAR_LENGTH(zw);
    SET @i=1;
    WHILE(@i<=l) DO
     SELECT jp INTO @jp FROM hzpyb WHERE hz=SUBSTR(zw,@i,1);
     SET @pysx=CONCAT(@pysx,@jp);
     SET @i=@i+1;
     END WHILE;
     RETURN @pysx;
    END$$
 
DELIMITER ;

————————————————

5.已知选课管理系统Xkglxt包含如下数据表和自定义函数

(函数已定义好可直接使用): 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)自定义函数拼音缩写查询: pysx('中文字符串') 返回 该中文字符串的拼音缩写   请完成如下操作的SQL语句,表名和列名必须和上面的一致:
 1、创建选课管理系统数据库以及学生表的SQL语句;
 2、在学生表上创建一个触发器(名字自定),当新增学生时自动处理姓名拼音缩写。 
学生答案: 

1、CREATE DATABASE Xkglxt CHARSET utf8;CREATE TABLE 学生(学生id INT PRIMARY KEY,学号 INT,专业 VARCHAR(30),年纪 INT,姓名 VARCHAR(30),姓名拼音缩写 VARCHAR(30));
创建函数:
CREATE DEFINER=`root`@`localhost` FUNCTION `PysxCx`(zw VARCHAR(50)) RETURNS VARCHAR(10) CHARSET utf8mb4
    READS SQL DATA
BEGIN
    SET @pysx='';
    SET @l=CHAR_LENGTH(zw);
    SET @i=1;
    WHILE(@i<=l) DO
     SELECT jp INTO @jp FROM hzpyb WHERE hz=SUBSTR(zw,@i,1);
     SET @pysx=CONCAT(@pysx,@jp);
     SET @i=@i+1;
     END WHILE;
     RETURN @pysx;
    END$$
 
DELIMITER ;

2 ,创建触发器
DELIMITER $$ CREATETRIGGER mytrigger AFTER INSERT ON 学生 FOR EACH ROW BEGIN INSERT INTO 学生(姓名拼音缩写)VALUES (pysx(new.姓名)); END$$ DELIMITER;


1、CREATE DATABASE Xkglxt CHARSET utf8;CREATE TABLE 学生(学生id INT PRIMARY KEY,学号 INT,专业 VARCHAR(30),年纪 INT,姓名 VARCHAR(30),姓名拼音缩写 VARCHAR(30));
创建函数:
CREATE DEFINER=`root`@`localhost` FUNCTION `PysxCx`(zw VARCHAR(50)) RETURNS VARCHAR(10) CHARSET utf8mb4
    READS SQL DATA
BEGIN
    SET @pysx='';
    SET @l=CHAR_LENGTH(zw);
    SET @i=1;
    WHILE(@i<=l) DO
     SELECT jp INTO @jp FROM hzpyb WHERE hz=SUBSTR(zw,@i,1);
     SET @pysx=CONCAT(@pysx,@jp);
     SET @i=@i+1;
     END WHILE;
     RETURN @pysx;
    END$$
 
DELIMITER ;

2 ,创建触发器
DELIMITER $$ CREATETRIGGER mytrigger AFTER INSERT ON 学生 FOR EACH ROW BEGIN INSERT INTO 学生(姓名拼音缩写)VALUES (pysx(new.姓名)); END$$ DELIMITER;

————————————————


6.已知产品销售数据库cpxs

包含如下数据表: 1)产品表:产品编号,产品名称,价格,库存量。 2)销售商表:客户编号,客户名称,地区,负责人,电话。 3)产品销售表:销售日期,产品编号,客户编号,数量,销售额。 写出SQL完成如下操作的SQL语句: 
1.写出产品表的建表语句 
2.向产品表中插入如下记录: 0001  空调  3000  200 0002  冰箱  2500  300 
3.将产品表中每种商品价格打八折后进行显示 
4.查找价格在2000到2900之间的产品名称。 5.在产品销售表上创建“冰箱”产品表的视图bxcp
学生答案: 

1、CREATETABLE 产品表(产品编号 char(4) PRIMARY KEY,产品名称 VARCHAR(20) NOT NULL,价格 float(7,2),库存量 int(5));
CREATE TABLE 销售商表(客户编号 char(5 )PRIMARY KEY,客户名称 VARCHAR(20) NOT NULL,地区 VARCHAR(10),负责人 VARCHAR(10),电话 VARCHAR(11));
CREATE TABLE 产品销售表(销售日期 date,产品编号 char(4),客户编号 char(5),数量 int,销售额 float(8,2));
2、insert into 产品表 values(’0001’,’空调’,3000,200);insert into 产品表 values(’0002’,’冰箱’,2500,300);
3、update 产品表 set 价格=价格*0.8;
4、select 产品名称 from 产品表 where 价格 between 2000 and 2900;
5、create view bxcp as select*from 产品表 where 产品名称=冰箱 withcheckoption;


1、CREATETABLE 产品表(产品编号 char(4) PRIMARY KEY,产品名称 VARCHAR(20) NOT NULL,价格 float(7,2),库存量 int(5));
CREATE TABLE 销售商表(客户编号 char(5 )PRIMARY KEY,客户名称 VARCHAR(20) NOT NULL,地区 VARCHAR(10),负责人 VARCHAR(10),电话 VARCHAR(11));
CREATE TABLE 产品销售表(销售日期 date,产品编号 char(4),客户编号 char(5),数量 int,销售额 float(8,2));
2、insert into 产品表 values(’0001’,’空调’,3000,200);insert into 产品表 values(’0002’,’冰箱’,2500,300);
3、update 产品表 set 价格=价格*0.8;
4、select 产品名称 from 产品表 where 价格 between 2000 and 2900;
5、create view bxcp as select*from 产品表 where 产品名称=冰箱 withcheckoption;

————————————————


7.已知进销存数据库Jxcxt包含如下数据表

 1)商品表:商品id, 商品名称, 单位, 单价, 商品状态 2)库存表:库存id, 商品id, 库存数量  请完成如下操作的SQL语句,表名和列名必须和上面的一致: 
1、创建以上两个表的SQL语句;
 2、创建一个存储过程(名字自定),实现商品表的的插入,需要判断当前商品名称是否存在。 
学生答案:

1. CREATE DATABASE Jxcxt;CREATE TABLE 商品表(商品id INT PRIMARY KEY AUTO_INCREMENT,商品名称 CHAR(4),单位 CHAR(4),单价 INT,商品状态 CHAR(4))CHARSET=utf8;
CREATE TABLE 库存表(库存id INT PRIMARY KEY AUTO_INCREMENT,商品id CHAR(4),库存数量 INT,FOREIGN KEY(商品id) REFERENCES 商品表(商品id))CHARSET=utf8;
2.    DELIMITER $$
CREATE
    PROCEDURE `jxcxt`.`insert_商品表`(mc CHAR(4),dw CHAR(4),dj INT,zt CHAR(4))
    BEGIN
        DECLARE result INT DEFAULT 0;
        SELECT COUNT(*) INTO result FROM 商品表 WHERE 商品表.商品名称=mc;
        IF result=0 THEN
          INSERT INTO 商品表(商品名称 ,单位 ,单价 ,商品状态)VALUES(mc,dw,dj,zt);
          SELECT '插入成功';
        ELSE
          SELECT '名称已存在';
        END IF;
    END$$
DELIMITER ;


1. CREATE DATABASE Jxcxt;CREATE TABLE 商品表(商品id INT PRIMARY KEY AUTO_INCREMENT,商品名称 CHAR(4),单位 CHAR(4),单价 INT,商品状态 CHAR(4))CHARSET=utf8;
CREATE TABLE 库存表(库存id INT PRIMARY KEY AUTO_INCREMENT,商品id CHAR(4),库存数量 INT,FOREIGN KEY(商品id) REFERENCES 商品表(商品id))CHARSET=utf8;
2.    DELIMITER $$
CREATE
    PROCEDURE `jxcxt`.`insert_商品表`(mc CHAR(4),dw CHAR(4),dj INT,zt CHAR(4))
    BEGIN
        DECLARE result INT DEFAULT 0;
        SELECT COUNT(*) INTO result FROM 商品表 WHERE 商品表.商品名称=mc;
        IF result=0 THEN
          INSERT INTO 商品表(商品名称 ,单位 ,单价 ,商品状态)VALUES(mc,dw,dj,zt);
          SELECT '插入成功';
        ELSE
          SELECT '名称已存在';
        END IF;
    END$$
DELIMITER ;


————————————————


8.已知选课管理系统Xkglxt包含如下数据表

 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分   3)选课表: 选课id, 学生id, 课程id, 成绩  请完成如下操作的SQL语句,表名和列名必须和上面的一致: 
1、创建以上三个表的SQL语句;
2、创建一个存储过程(名字自定),实现选课表的插入,需要判断当前课程id和学生id是否存在。 
学生答案:

1.CREATE DATABASE xkglxt;CREATE TABLE 学生表(学生id CHAR(4) PRIMARY KEY,学号 CHAR(4),姓名 CHAR(4),专业 CHAR(4),年级 CHAR(4),姓名拼音缩写 CHAR(8))CHARSET=utf8;
CREATE TABLE 课程表(课程id CHAR(4) PRIMARY KEY,课程名称 CHAR(10),学分 CHAR(4))CHARSET=utf8;
CREATE TABLE 选课表(选课id CHAR(4) PRIMARY KEY,学生id CHAR(4),课程id CHAR(4),成绩 INT,FOREIGN KEY(学生id) REFERENCES 学生表(学生id),FOREIGN KEY(课程id) REFERENCES 课程表(课程id))CHARSET=utf8;
2.
DELIMITER $$
CREATE
    PROCEDURE `exkglxt`.`insert_选课表`(id CHAR(4),学生id CHAR(4),课程id CHAR(4),成绩 INT)
    BEGIN
       DECLARE result INT DEFAULT 0;
       DECLARE result1 INT DEFAULT 0;
        SELECT COUNT(*) INTO result FROM 选课表 WHERE 选课表.`学生id`=学生id ;
         SELECT COUNT(*) INTO result1 FROM 选课表 WHERE 选课表.`课程id`=课程id;
        IF result=0 AND result1=0 THEN
           INSERT INTO 学生表(学生id)VALUES(学生id);
           INSERT INTO 课程表(课程id)VALUES(课程id);
          INSERT INTO 选课表(选课id,学生id,课程id,成绩)VALUES(id,学生id,课程id,成绩);
          SELECT '插入成功';
        ELSE
          SELECT '学生id,课程id已存在';
        END IF;
    END$$

DELIMITER ;


1.CREATE DATABASE xkglxt;CREATE TABLE 学生表(学生id CHAR(4) PRIMARY KEY,学号 CHAR(4),姓名 CHAR(4),专业 CHAR(4),年级 CHAR(4),姓名拼音缩写 CHAR(8))CHARSET=utf8;
CREATE TABLE 课程表(课程id CHAR(4) PRIMARY KEY,课程名称 CHAR(10),学分 CHAR(4))CHARSET=utf8;
CREATE TABLE 选课表(选课id CHAR(4) PRIMARY KEY,学生id CHAR(4),课程id CHAR(4),成绩 INT,FOREIGN KEY(学生id) REFERENCES 学生表(学生id),FOREIGN KEY(课程id) REFERENCES 课程表(课程id))CHARSET=utf8;
2.
DELIMITER $$
CREATE
    PROCEDURE `exkglxt`.`insert_选课表`(id CHAR(4),学生id CHAR(4),课程id CHAR(4),成绩 INT)
    BEGIN
       DECLARE result INT DEFAULT 0;
       DECLARE result1 INT DEFAULT 0;
        SELECT COUNT(*) INTO result FROM 选课表 WHERE 选课表.`学生id`=学生id ;
         SELECT COUNT(*) INTO result1 FROM 选课表 WHERE 选课表.`课程id`=课程id;
        IF result=0 AND result1=0 THEN
           INSERT INTO 学生表(学生id)VALUES(学生id);
           INSERT INTO 课程表(课程id)VALUES(课程id);
          INSERT INTO 选课表(选课id,学生id,课程id,成绩)VALUES(id,学生id,课程id,成绩);
          SELECT '插入成功';
        ELSE
          SELECT '学生id,课程id已存在';
        END IF;
    END$$

DELIMITER ;


————————————————


9.有一个关于商品供应及顾客订单的数据库

其中包括四个表,表中信息如下: 供应表apply(id、name、sid、price) 说明:id 供应厂家编号,name 供应厂家名称,sid 商品编号,price 商品价格。 顾客表customers(gid、name、address、balance) 说明:gid 顾客编号,address 地址,balance 余额。 订单表orders(sid、gid、date) 说明:sid 商品编号,gid 顾客编号,date 订单日期。 商品表goods(sid、name、count) 说明:sid 商品编号,name 商品名称,count 商品数量
 1)从供应表中查询全体供应厂商的基本信息 
2)从顾客表中查询地址在"长春"的顾客的顾客编号、顾客姓名及余额. 
3)从商品表中查询以"可乐"两个字结尾的商品名称及数量,并按商品数量降序排序 
4)从订单表中查询购买商品编号为"101"商品的顾客编号及订单日期. 
5)向商品表中追加一条纪录(204,可口可乐,900)
 6)从商品表中查询最多商品数量、最少商品数量及商品总数量的记录信息
学生答案: 

1、select * from apply;
2、select gid,name,balance from customer swhere address="长春";
3、select name,count from goods where name like"%可乐"order by count desc;
4、select gid,date from orders where sid=101;
5、insert into goods values(204,"可口可乐",900);
6、select max(count),min(count),sum(count) from goods;


1、select * from apply;
2、select gid,name,balance from customer swhere address="长春";
3、select name,count from goods where name like"%可乐"order by count desc;
4、select gid,date from orders where sid=101;
5、insert into goods values(204,"可口可乐",900);
6、select max(count),min(count),sum(count) from goods;


————————————————


10.已知选课管理系统Xkglxt包含如下数据表和自定义函数

(函数已定义好可直接使用): 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)自定义函数拼音缩写查询: pysx('中文字符串') 返回 该中文字符串的拼音缩写   请完成如下操作的SQL语句,表名和列名必须和上面的一致: 
1、创建选课管理系统数据库以及学生表的SQL语句; 
2、在学生表上创建一个触发器(名字自定),当修改学生表的姓名时自动处理姓名拼音缩写 
学生答案: 

1、CREATE DATABAS EXkglxt CHARSETutf8;CREATE TABLE 学生(学生id INT PRIMARY KEY,学号 INT,专业 VARCHAR(30),年纪 INT,姓名 VARCHAR(30),姓名拼音缩写 VARCHAR(30));
2`  DELIMITER $$ CREATE TRIGGER mytrigger AFTER INSERT ON 学生 FOR EACH ROW BEGIN INSERT INTO 学生(姓名拼音缩写 )VALUES (pysx(new.姓名));END$$DELIMITER;


1、CREATE DATABAS EXkglxt CHARSETutf8;CREATE TABLE 学生(学生id INT PRIMARY KEY,学号 INT,专业 VARCHAR(30),年纪 INT,姓名 VARCHAR(30),姓名拼音缩写 VARCHAR(30));
2`  DELIMITER $$ CREATE TRIGGER mytrigger AFTER INSERT ON 学生 FOR EACH ROW BEGIN INSERT INTO 学生(姓名拼音缩写 )VALUES (pysx(new.姓名));END$$DELIMITER;

————————————————

11.已知选课管理系统Xkglxt包含如下数据表

: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分   3)选课表: 选课id, 学生id, 课程id, 成绩  请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上三个表的SQL语句; 2、在课程表上创建一个触发器(名字自定)。,当删除课程信息时自动删除该课程的选课信息。
学生答案: 

1、CREATE TABLE 学生(学生id INT PRIMARY KEY,学号 INT,姓名 VARCHAR(30),专业 VARCHAR(30),年纪 INT,姓名拼音缩写 VARCHAR(10))CHARSETutf8;
CREATE TABLE 课程(课程id INT PRIMARY KEY,课程名称 VARCHAR(30),学分 INT)CHARSETutf8;
CREATE TABLE 选课(选课id INT PRIMARY KEY,学生id INT,课程id INT,成绩 INT)CHARSETutf8;
2、DELIMITER $$ CREATE TRIGGER mytrigger AFTER DELETE ON 课程 FOR EACH ROW BEGIN DELETE FROM 选课 WHERE 选课.课程id=old.课程id;END$$ DELIMITER;


1、CREATE TABLE 学生(学生id INT PRIMARY KEY,学号 INT,姓名 VARCHAR(30),专业 VARCHAR(30),年纪 INT,姓名拼音缩写 VARCHAR(10))CHARSETutf8;
CREATE TABLE 课程(课程id INT PRIMARY KEY,课程名称 VARCHAR(30),学分 INT)CHARSETutf8;
CREATE TABLE 选课(选课id INT PRIMARY KEY,学生id INT,课程id INT,成绩 INT)CHARSETutf8;
2、DELIMITER $$ CREATE TRIGGER mytrigger AFTER DELETE ON 课程 FOR EACH ROW BEGIN DELETE FROM 选课 WHERE 选课.课程id=old.课程id;END$$ DELIMITER;

————————————————


12.已知进销存数据库Jxcxt包含如下数据表 


1)商品表:商品id(自增1), 商品名称, 单位, 单价, 商品状态 
2)库存表:库存id(自增1), 商品id, 库存数量  
请完成如下操作的SQL语句,表名和列名必须和上面的一致: 
1、创建以上两个表的SQL语句; 
2、在商品表上创建一个触发器(名字自定),当新增商品时自动在库存表中插入该商品的库存信息(库存数量为0)。 
学生答案: 

1)
create table 商品表(商品 id int not null auto_increment,商品名称 varchar(255),单位 varchar(10),单价 int,商品状态 varchar(10),primary key(商品id))charsetutf8;
create table 库存表(库存id int not null auto_increment,商品id int,库存数量 int,foreign key(商品id)references 商品表(商品id),primary key(库存id))charsetutf8;
2)delimiter$$create trigger 增商品触库存 after insert on 商品表 for each row begin insert into 库存表 values(null,new.商品id,0);end$$


1)
create table 商品表(商品 id int not null auto_increment,商品名称 varchar(255),单位 varchar(10),单价 int,商品状态 varchar(10),primary key(商品id))charsetutf8;
create table 库存表(库存id int not null auto_increment,商品id int,库存数量 int,foreign key(商品id)references 商品表(商品id),primary key(库存id))charsetutf8;
2)delimiter$$create trigger 增商品触库存 after insert on 商品表 for each row begin insert into 库存表 values(null,new.商品id,0);end$$


————————————————
 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值