赞
踩
有一个关于商品供应及顾客订单的数据库。其中包括四个表,表中信息如下: 供应表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 customers.name, goods.name, orders.date
FROM orders
INNER JOIN customers ON orders.gid = customers.gid
INNER JOIN goods ON orders.sid = goods.sid
WHERE orders.date = '2008-8-8';
2) UPDATE goods SET NAME = '百事可乐' WHERE sid = '204';
3) UPDATE orders SET DATE = DATE_ADD(DATE, INTERVAL 10 DAY)
WHERE gid IN (SELECT gid FROM customers WHERE balance < 1000);
4) DELETE FROM orders WHERE sid = '102';
5) DELETE FROM goods WHERE sid NOT IN (SELECT sid FROM orders);10
已知进销存数据库Jxcxt包含如下数据表: 1)商品表:商品id(自增1), 商品名称, 单位, 单价, 商品状态 2)库存表:库存id(自增1), 商品id, 库存数量 请完成如下操作的SQL语句,表名和列名必须和上面的一致:
1、创建以上两个表的SQL语句;
2、在商品表上创建一个触发器(名字自定),当删除商品时自动删除该商品在库存表中的记录。
1、创建以上两个表的SQL语句:
-- 商品表
CREATE TABLE 商品表 (
商品id INT AUTO_INCREMENT PRIMARY KEY,
商品名称 VARCHAR(50),
单位 VARCHAR(20),
单价 DECIMAL(10,2),
商品状态 VARCHAR(10)
);
-- 库存表
CREATE TABLE 库存表 (
库存id INT AUTO_INCREMENT PRIMARY KEY,
商品id INT,
库存数量 INT,
FOREIGN KEY (商品id) REFERENCES 商品表(商品id)
);
2、在商品表上创建一个触发器(名字自定),当删除商品时自动删除该商品在库存表中的记录。
CREATE TRIGGER 删除商品触发器
BEFORE DELETE ON 商品表
FOR EACH ROW
BEGIN
DELETE FROM 库存表 WHERE 商品id = OLD.商品id;
END;
10
已知选课管理系统Xkglxt包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分 3)选课表: 选课id, 学生id, 课程id, 成绩 请完成如下操作的SQL语句,表名和列名必须和上面的一致:
1、创建以上三个表的SQL语句;
2、创建视图 V_选课,其中包含这些字段: 选课id, 学号, 姓名, 课程名, 成绩;
3、查询张三的数据开发技术课程的成绩。
-- 学生表
CREATE TABLE 学生表 (
学生id INT PRIMARY KEY,
学号 VARCHAR(20),
姓名 VARCHAR(20),
专业 VARCHAR(20),
年级 VARCHAR(20),
姓名拼音缩写 VARCHAR(20)
);
-- 课程表
CREATE TABLE 课程表 (
课程id INT PRIMARY KEY,
课程名称 VARCHAR(20),
学分 INT
);
-- 选课表
CREATE TABLE 选课表 (
选课id INT PRIMARY KEY,
学生id INT,
课程id INT,
成绩 INT,
FOREIGN KEY (学生id) REFERENCES 学生表(学生id),
FOREIGN KEY (课程id) REFERENCES 课程表(课程id)
);
CREATE VIEW V_选课 AS
SELECT 选课表.选课id, 学生表.学号, 学生表.姓名, 课程表.课程名称, 选课表.成绩
FROM 选课表
INNER JOIN 学生表 ON 选课表.学生id = 学生表.学生id
INNER JOIN 课程表 ON 选课表.课程id = 课程表.课程id;
SELECT 成绩
FROM V_选课
WHERE 姓名 = '张三' AND 课程名称 = '数据开发技术';
10
已知选课管理系统Xkglxt包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分 3)选课表: 选课id, 学生id, 课程id, 成绩 系统已建有getstrpy(p_name VARCHAR(100))用户自定义函数。 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上三个表的SQL语句; 2、创建一个存储过程(名字自定),实现学生表的插入,姓名拼音缩写需要调用getstrpy函数实现。
1、创建表的SQL语句如下:
-- 学生表
CREATE TABLE student (
id INT PRIMARY KEY AUTO_INCREMENT,
student_number VARCHAR(20) NOT NULL,
NAME VARCHAR(50) NOT NULL,
major VARCHAR(50) NOT NULL,
grade VARCHAR(20) NOT NULL,
name_pinyin VARCHAR(100) NOT NULL
);
-- 课程表
CREATE TABLE course (
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(50) NOT NULL,
credit INT NOT NULL
);
-- 选课表
CREATE TABLE course_selection (
id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT NOT NULL,
course_id INT NOT NULL,
score INT
);
2、创建存储过程的SQL语句如下:
DELIMITER //
CREATE PROCEDURE insert_student(
IN p_student_number VARCHAR(20),
IN p_name VARCHAR(50),
IN p_major VARCHAR(50),
IN p_grade VARCHAR(20)
)
BEGIN
DECLARE p_name_pinyin VARCHAR(100);
SET p_name_pinyin = getstrpy(p_name);
INSERT INTO student (student_number, NAME, major, grade, name_pinyin)
VALUES (p_student_number, p_name, p_major, p_grade, p_name_pinyin);
END //
DELIMITER ;7
已知选课管理系统Xkglxt包含如下数据表和自定义函数(函数已定义好可直接使用): 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)自定义函数拼音缩写查询: pysx('中文字符串') 返回 该中文字符串的拼音缩写 请完成如下操作的SQL语句,表名和列名必须和上面的一致:
1、创建选课管理系统数据库以及学生表的SQL语句;
2、在学生表上创建一个触发器(名字自定),当新增学生时自动处理姓名拼音缩写。
CREATE DATABASE Xkglxt;
USE Xkglxt;
CREATE TABLE 学生表 (
学生id INT PRIMARY KEY AUTO_INCREMENT,
学号 VARCHAR(20) NOT NULL,
姓名 VARCHAR(20) NOT NULL,
专业 VARCHAR(20) NOT NULL,
年级 VARCHAR(10) NOT NULL,
姓名拼音缩写 VARCHAR(50)
);
2、在学生表上创建一个触发器(名字自定),当新增学生时自动处理姓名拼音缩写。
DELIMITER $$
CREATE TRIGGER trg_pinyin AFTER INSERT ON 学生表
FOR EACH ROW
BEGIN
UPDATE 学生表 SET 姓名拼音缩写 = pysx(NEW.姓名) WHERE 学生id = NEW.学生id;
END$$
DELIMITER ;
其中,pysx为自定义函数,需要提前定义好。
10
已知产品销售数据库cpxs包含如下数据表: 1)产品表:产品编号,产品名称,价格,库存量。 2)销售商表:客户编号,客户名称,地区,负责人,电话。 3)产品销售表:销售日期,产品编号,客户编号,数量,销售额。 写出SQL完成如下操作的SQL语句:
1.写出产品表的建表语句
2.向产品表中插入如下记录: 0001 空调 3000 200 0002 冰箱 2500 300
3.将产品表中每种商品价格打八折后进行显示
4.查找价格在2000到2900之间的产品名称。 5.在产品销售表上创建“冰箱”产品表的视图bxcp
学生答案:
1.产品表的建表语句:
CREATE TABLE 产品表 (
产品编号 VARCHAR(10) PRIMARY KEY,
产品名称 VARCHAR(50) NOT NULL,
价格 DECIMAL(10,2) NOT NULL,
库存量 INT NOT NULL
);
2.向产品表中插入如下记录:
INSERT INTO 产品表 (产品编号, 产品名称, 价格, 库存量) VALUES
('0001', '空调', 3000, 200),
('0002', '冰箱', 2500, 300);
3.将产品表中每种商品价格打八折后进行显示:
SELECT 产品编号, 产品名称, 价格*0.8 AS 折扣价, 库存量 FROM 产品表;
4.查找价格在2000到2900之间的产品名称:
SELECT 产品名称 FROM 产品表 WHERE 价格 BETWEEN 2000 AND 2900;
5.在产品销售表上创建“冰箱”产品表的视图bxcp:
CREATE VIEW bxcp AS
SELECT * FROM 产品销售表 WHERE 产品编号 = '0002' AND 产品名称 = '冰箱';
10
已知进销存数据库Jxcxt包含如下数据表: 1)商品表:商品id, 商品名称, 单位, 单价, 商品状态 2)库存表:库存id, 商品id, 库存数量 请完成如下操作的SQL语句,表名和列名必须和上面的一致:
1、创建以上两个表的SQL语句;
2、创建一个存储过程(名字自定),实现商品表的的插入,需要判断当前商品名称是否存在。
学生答案:
1、创建以上两个表的SQL语句:
创建商品表:
CREATE TABLE 商品表 (
商品id INT PRIMARY KEY,
商品名称 VARCHAR(50) NOT NULL,
单位 VARCHAR(10) NOT NULL,
单价 DECIMAL(10,2) NOT NULL,
商品状态 VARCHAR(10) NOT NULL
);
创建库存表:
CREATE TABLE 库存表 (
库存id INT PRIMARY KEY,
商品id INT NOT NULL,
库存数量 INT NOT NULL,
FOREIGN KEY (商品id) REFERENCES 商品表(商品id)
);
2、创建一个存储过程(名字自定),实现商品表的的插入,需要判断当前商品名称是否存在。
CREATE PROCEDURE insert_goods (
IN p_name VARCHAR(50),
IN p_unit VARCHAR(10),
IN p_price DECIMAL(10,2),
IN p_status VARCHAR(10)
)
BEGIN
DECLARE v_count INT;
SELECT COUNT(*) INTO v_count FROM 商品表 WHERE 商品名称 = p_name;
IF v_count > 0 THEN
SELECT '商品名称已存在' AS result;
ELSE
INSERT INTO 商品表 (商品id, 商品名称, 单位, 单价, 商品状态) VALUES ((SELECT MAX(商品id) FROM 商品表) + 1, p_name, p_unit, p_price, p_status);
SELECT '商品插入成功' AS result;
END IF;
END;
10
已知选课管理系统Xkglxt包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分 3)选课表: 选课id, 学生id, 课程id, 成绩 请完成如下操作的SQL语句,表名和列名必须和上面的一致:
1、创建以上三个表的SQL语句;
2、创建一个存储过程(名字自定),实现选课表的插入,需要判断当前课程id和学生id是否存在。
学生答案:
1、创建表的SQL语句如下:
-- 学生表
CREATE TABLE 学生表 (
学生id INT PRIMARY KEY,
学号 VARCHAR(20) NOT NULL,
姓名 VARCHAR(20) NOT NULL,
专业 VARCHAR(20) NOT NULL,
年级 INT NOT NULL,
姓名拼音缩写 VARCHAR(20) NOT NULL
);
-- 课程表
CREATE TABLE 课程表 (
课程id INT PRIMARY KEY,
课程名称 VARCHAR(50) NOT NULL,
学分 INT NOT NULL
);
-- 选课表
CREATE TABLE 选课表 (
选课id INT PRIMARY KEY,
学生id INT NOT NULL,
课程id INT NOT NULL,
成绩 INT,
FOREIGN KEY (学生id) REFERENCES 学生表(学生id),
FOREIGN KEY (课程id) REFERENCES 课程表(课程id)
);
2、创建存储过程的SQL语句如下:
CREATE PROCEDURE insert_选课表 (
IN 学生id_input INT,
IN 课程id_input INT,
IN 成绩_input INT
)
BEGIN
DECLARE 学生id_exist INT;
DECLARE 课程id_exist INT;
-- 判断学生id是否存在
SELECT 学生id INTO 学生id_exist FROM 学生表 WHERE 学生id = 学生id_input;
IF 学生id_exist IS NULL THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '学生id不存在';
END IF;
-- 判断课程id是否存在
SELECT 课程id INTO 课程id_exist FROM 课程表 WHERE 课程id = 课程id_input;
IF 课程id_exist IS NULL THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '课程id不存在';
END IF;
-- 插入选课表
INSERT INTO 选课表 (学生id, 课程id, 成绩) VALUES (学生id_input, 课程id_input, 成绩_input);
END;
有一个关于商品供应及顾客订单的数据库。其中包括四个表,表中信息如下: 供应表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 id, NAME FROM apply;
2) SELECT gid, NAME, balance FROM customers WHERE 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 (sid, NAME, COUNT) VALUES (204, '可口可乐', 900);
6) SELECT MAX(COUNT) AS max_count, MIN(COUNT) AS min_count, SUM(COUNT) AS total_count FROM goods;
已知选课管理系统Xkglxt包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分 3)选课表: 选课id, 学生id, 课程id, 成绩 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上三个表的SQL语句; 2、创建一个存储过程(名字自定),实现课程表的插入,需要判断当前课程名称的课程是否存在。
学生答案:
1、创建以上三个表的SQL语句:
学生表:
CREATE TABLE 学生表 (
学生id INT PRIMARY KEY,
学号 VARCHAR(20) NOT NULL,
姓名 VARCHAR(20) NOT NULL,
专业 VARCHAR(20) NOT NULL,
年级 INT NOT NULL,
姓名拼音缩写 VARCHAR(20) NOT NULL
);
课程表:
CREATE TABLE 课程表 (
课程id INT PRIMARY KEY,
课程名称 VARCHAR(50) NOT NULL,
学分 INT NOT NULL
);
选课表:
CREATE TABLE 选课表 (
选课id INT PRIMARY KEY,
学生id INT NOT NULL,
课程id INT NOT NULL,
成绩 INT,
FOREIGN KEY (学生id) REFERENCES 学生表(学生id),
FOREIGN KEY (课程id) REFERENCES 课程表(课程id)
);
2、创建一个存储过程(名字自定),实现课程表的插入,需要判断当前课程名称的课程是否存在。
CREATE PROCEDURE insert_course(IN course_name VARCHAR(50), IN credit INT)
BEGIN
DECLARE course_id INT;
SELECT 课程id INTO course_id FROM 课程表 WHERE 课程名称 = course_name;
IF course_id IS NULL THEN
INSERT INTO 课程表 (课程名称, 学分) VALUES (course_name, credit);
ELSE
SELECT '该课程已存在!';
END IF;
END;
已知选课管理系统Xkglxt包含如下数据表和自定义函数(函数已定义好可直接使用): 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)自定义函数拼音缩写查询: pysx('中文字符串') 返回 该中文字符串的拼音缩写 请完成如下操作的SQL语句,表名和列名必须和上面的一致:
1、创建选课管理系统数据库以及学生表的SQL语句;
2、在学生表上创建一个触发器(名字自定),当修改学生表的姓名时自动处理姓名拼音缩写
学生答案:
1、创建选课管理系统数据库以及学生表的SQL语句:
CREATE DATABASE Xkglxt;
USE Xkglxt;
CREATE TABLE 学生表 (
学生id INT PRIMARY KEY,
学号 VARCHAR(20),
姓名 VARCHAR(20),
专业 VARCHAR(20),
年级 VARCHAR(10),
姓名拼音缩写 VARCHAR(20)
);
2、在学生表上创建一个触发器(名字自定),当修改学生表的姓名时自动处理姓名拼音缩写的SQL语句:
CREATE TRIGGER update_pinyin AFTER UPDATE ON 学生表 FOR EACH ROW
BEGIN
UPDATE 学生表 SET 姓名拼音缩写 = pysx(NEW.姓名) WHERE 学生id = NEW.学生id;
END;
已知选课管理系统Xkglxt包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分 3)选课表: 选课id, 学生id, 课程id, 成绩 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上三个表的SQL语句; 2、在课程表上创建一个触发器(名字自定)。,当删除课程信息时自动删除该课程的选课信息。:
1、创建表的SQL语句:
-- 学生表
CREATE TABLE 学生表 (
学生id INT PRIMARY KEY,
学号 VARCHAR(20) NOT NULL,
姓名 VARCHAR(20) NOT NULL,
专业 VARCHAR(20) NOT NULL,
年级 INT NOT NULL,
姓名拼音缩写 VARCHAR(20) NOT NULL
);
-- 课程表
CREATE TABLE 课程表 (
课程id INT PRIMARY KEY,
课程名称 VARCHAR(50) NOT NULL,
学分 INT NOT NULL
);
-- 选课表
CREATE TABLE 选课表 (
选课id INT PRIMARY KEY,
学生id INT NOT NULL,
课程id INT NOT NULL,
成绩 INT,
FOREIGN KEY (学生id) REFERENCES 学生表(学生id),
FOREIGN KEY (课程id) REFERENCES 课程表(课程id)
);
2、在课程表上创建一个触发器:
CREATE TRIGGER 删除课程触发器
AFTER DELETE ON 课程表
FOR EACH ROW
BEGIN
DELETE FROM 选课表 WHERE 课程id = OLD.课程id;
END;
已知进销存数据库Jxcxt包含如下数据表:
1)商品表:商品id(自增1), 商品名称, 单位, 单价, 商品状态
2)库存表:库存id(自增1), 商品id, 库存数量
请完成如下操作的SQL语句,表名和列名必须和上面的一致:
1、创建以上两个表的SQL语句;
2、在商品表上创建一个触发器(名字自定),当新增商品时自动在库存表中插入该商品的库存信息(库存数量为0)。
学生答案:
1)
1、创建以上两个表的SQL语句:
创建商品表:
CREATE TABLE 商品表 (
商品id INT AUTO_INCREMENT PRIMARY KEY,
商品名称 VARCHAR(50),
单位 VARCHAR(10),
单价 DECIMAL(10,2),
商品状态 VARCHAR(10)
);
创建库存表:
CREATE TABLE 库存表 (
库存id INT AUTO_INCREMENT PRIMARY KEY,
商品id INT,
库存数量 INT,
FOREIGN KEY (商品id) REFERENCES 商品表(商品id)
);
2、在商品表上创建一个触发器(名字自定),当新增商品时自动在库存表中插入该商品的库存信息(库存数量为0)。
CREATE TRIGGER 新增商品触发器
AFTER INSERT ON 商品表
FOR EACH ROW
BEGIN
INSERT INTO 库存表 (商品id, 库存数量) VALUES (NEW.商品id, 0);
END;
已知选课管理系统Xkglxt包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分 3)选课表: 选课id, 学生id, 课程id, 成绩 请完成如下操作的SQL语句,表名和列名必须和上面的一致:
1、创建以上三个表的SQL语句;
2、创建一个存储过程(名字自定),实现学生表的插入,需要判断当前学号的学生是否存在。
1、创建以上三个表的SQL语句:
学生表:
CREATE TABLE 学生表 (
学生id INT PRIMARY KEY,
学号 VARCHAR(20) UNIQUE,
姓名 VARCHAR(20),
专业 VARCHAR(20),
年级 INT,
姓名拼音缩写 VARCHAR(20)
);
课程表:
CREATE TABLE 课程表 (
课程id INT PRIMARY KEY,
课程名称 VARCHAR(20),
学分 INT
);
选课表:
CREATE TABLE 选课表 (
选课id INT PRIMARY KEY,
学生id INT,
课程id INT,
成绩 INT,
FOREIGN KEY (学生id) REFERENCES 学生表(学生id),
FOREIGN KEY (课程id) REFERENCES 课程表(课程id)
);
2、创建一个存储过程(名字自定),实现学生表的插入,需要判断当前学号的学生是否存在。
CREATE PROCEDURE insert_student(
IN in_学号 VARCHAR(20),
IN in_姓名 VARCHAR(20),
IN in_专业 VARCHAR(20),
IN in_年级 INT,
IN in_姓名拼音缩写 VARCHAR(20)
)
BEGIN
DECLARE student_count INT;
SELECT COUNT(*) INTO student_count FROM 学生表 WHERE 学号 = in_学号;
IF student_count > 0 THEN
SELECT '该学号已存在' AS result;
ELSE
INSERT INTO 学生表 (学号, 姓名, 专业, 年级, 姓名拼音缩写) VALUES (in_学号, in_姓名, in_专业, in_年级, in_姓名拼音缩写);
SELECT '插入成功' AS result;
END IF;
END;
四、计算题
1、按照要求,完成以下操作。
(1)、建立一个通信录数据库,要求需要有以下三个表:
lxrenb(联系人表)其字段为(联系人编号、姓名、联系电话、家庭地址),
thjlb(通话记录表)其字段为(通话记录编号、联系人编号、通话开始时间、通知结束时间、通话类别、通话状态),
dxjlb(短信记录表)其字段为(短信记录编号、联系人编号、接发时间、短信内容、短信类别)。
请在SQL SERVER 下建立这个数据库,数据库名为:TXLSJK。字段名以及字段数据类型可自拟。
(2)、在联系人表中插入以下5条记录:
(1,朱红敏,15857455696,河南洛阳市中学路1号)
(2,张丽花,18953991767,河南洛阳市武汉路2号)
(3,梁宝莉,13752317719,河南洛阳市大学路3号)
(4,王君志,13057676112,河南洛阳市大学路4号)
(5,李保江,13752309239,河南洛阳市大学路5号)
(3)、在短信记录表中插入以下一条记录
(1,1,当前系统时间,你的书已到请速来领取,1)
(4)、更新联系人编号为4的联系人电话为13938801001
(5)、依据联系人表和通话记录表建立视图:v_lxren_thjlb(联系人编号、姓名、通话类别、通话状态)
(1)建立数据库TXLSJK:
CREATE DATABASE TXLSJK;
(2)创建联系人表lxrenb:
CREATE TABLE lxrenb (
lxrenbh INT PRIMARY KEY,
xm VARCHAR(20),
lxdh VARCHAR(20),
jtdz VARCHAR(50)
);
(3)创建通话记录表thjlb:
CREATE TABLE thjlb (
thjlbh INT PRIMARY KEY,
lxrenbh INT,
thksj DATETIME,
thjsj DATETIME,
thlb VARCHAR(10),
thzt VARCHAR(10)
);
(4)创建短信记录表dxjlb:
CREATE TABLE dxjlb (
dxjlbh INT PRIMARY KEY,
lxrenbh INT,
jfsj DATETIME,
dxnr VARCHAR(100),
dxlb VARCHAR(10)
);
(5)在联系人表中插入5条记录:
INSERT INTO lxrenb VALUES (1, '朱红敏', '15857455696', '河南洛阳市中学路1号');
INSERT INTO lxrenb VALUES (2, '张丽花', '18953991767', '河南洛阳市武汉路2号');
INSERT INTO lxrenb VALUES (3, '梁宝莉', '13752317719', '河南洛阳市大学路3号');
INSERT INTO lxrenb VALUES (4, '王君志', '13057676112', '河南洛阳市大学路4号');
INSERT INTO lxrenb VALUES (5, '李保江', '13752309239', '河南洛阳市大学路5号');
(6)在短信记录表中插入1条记录:
INSERT INTO dxjlb VALUES (1, 1, GETDATE(), '你的书已到请速来领取', 1);
(7)更新联系人编号为4的联系人电话为13938801001:
UPDATE lxrenb SET lxdh = '13938801001' WHERE lxrenbh = 4;
(8)创建视图v_lxren_thjlb:
CREATE VIEW v_lxren_thjlb AS
SELECT lxrenb.lxrenbh, lxrenb.xm, thjlb.thlb, thjlb.thzt
FROM lxrenb
INNER JOIN thjlb ON lxrenb.lxrenbh = thjlb.lxrenbh;
2、学生选课系统,主要表有:学生基本信息表steudents(学号sid、姓名sname、性别ssex、专业spro、出生年月sbirthday等),选课表courses_selection(学号sid、课程号cid、分数score),课程表courses(课程号cid、课程名cname、所属专业professional、学分credits)要求:
写出SQL语句。
1) 查询所有选SQL课程的学生学号,姓名和专业。
2) 删除所有选择数学的同学的选课记录。
3) 查询有哪些课程没有被任何同学报选。
1) SELECT students.sid, students.sname, students.spro
FROM students
INNER JOIN courses_selection ON students.sid = courses_selection.sid
INNER JOIN courses ON courses_selection.cid = courses.cid
WHERE courses.cname = 'SQL';
2) DELETE FROM courses_selection
WHERE cid IN (SELECT cid FROM courses WHERE cname = '数学');
3) SELECT courses.cid, courses.cname, courses.professional, courses.credits
FROM courses
LEFT JOIN courses_selection ON courses.cid = courses_selection.cid
WHERE courses_selection.cid IS NULL;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。