当前位置:文档之家› SQL92标准语句Mycat支持测试_wangjinjian_20150422

SQL92标准语句Mycat支持测试_wangjinjian_20150422

SQL92标准语句Mycat支持测试_wangjinjian_20150422
SQL92标准语句Mycat支持测试_wangjinjian_20150422

SQL92标准语句Mycat支持测试

(基于Oracle和MySQL数据库)

王金剑

2015-04-22

测试环境

操作系统:CentOS release 5.10 (Final) CPU信息:Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz

Oracle版本:10.2.0

MySQL版本:5.5.27,InnoDB 1.1.8

Mycat 版本信息:BuildTime 2015-03-18

MavenVersion 1.4-dev

目录

一、数据定义命令测试 (6)

1、CREATE TABLE 创建一个数据库表 (6)

(1)Oracle环境测试 (6)

(2)MySQL环境测试 (7)

2、DROP TABLE 从数据库中删除表 (8)

(1)Oracle环境测试 (8)

(2)MySQL环境测试 (9)

3、ALTER TABLE 修改数据库表结构 (10)

(1)Oracle环境测试 (11)

(2)MySQL环境测试 (13)

4、CREATE VIEW 创建一个视图 (14)

(1)Oracle环境测试 (14)

(2)MySQL环境测试 (15)

5、DROP VIEW 从数据库中删除视图 (16)

(1)Oracle环境测试 (16)

(2)MySQL环境测试 (17)

6、CREATE INDEX 为数据库表创建一个索引 (17)

(1)Oracle环境测试 (18)

(2)MySQL环境测试 (18)

7、DROP INDEX 从数据库中删除索引 (20)

(1)Oracle环境测试 (21)

(2)MySQL环境测试 (22)

8、CREATE PROCEDURE 创建一个存储过程 (23)

(1)Oracle环境测试 (23)

(2)MySQL环境测试 (24)

二、数据操作命令测试 (24)

1、SELECT 从数据库表中检索数据行和列 (24)

(1)Oracle环境测试 (25)

(2)MySQL环境测试 (25)

2、INSERT 向数据库表添加新数据行 (26)

(1)Oracle环境测试 (26)

(2)MySQL环境测试 (27)

3、DELETE 从数据库表中删除数据行 (28)

(1)Oracle环境测试 (28)

(2)MySQL环境测试 (28)

4、UPDATE 更新数据库表中的数据 (29)

(1)Oracle 环境测试 (29)

(2)MySQL环境测试 (30)

5、TRUNCATE 删除表中所有行,仍保持表的完整性 (31)

(1)Oracle环境测试 (32)

(2)MySQL环境测试 (32)

6、SELECT 查询条件关键字 (33)

(1)Oracle环境测试 (34)

(2)MySQL环境测试 (37)

7、SELECT子查询与表连接查询 (40)

(1)Oracle环境测试 (41)

(2)MySQL环境测试 (42)

8、FUNCTION 统计函数 (44)

(1)Oracle环境测试 (44)

(2)MySQL环境测试 (46)

9、FUNCTION 字符串函数 (48)

(1)Oracle环境测试 (49)

(2)MySQL环境测试 (53)

10、FUNCTION 日期函数 (58)

(1)Oracle环境测试 (59)

(2)MySQL环境测试 (60)

三、SQL92测试总结 (62)

1、测试问题汇总 (62)

(1)DROP TABLE 从数据库中删除表 (62)

(2)ALTER TABLE 修改数据库表结构 (62)

(3)CREATE VIEW 创建一个视图 (63)

(4)DROP VIEW 从数据库中删除视图 (64)

(5)DROP INDEX 从数据库中删除索引(MySQL也不支持) (64)

(6)CREATE PROCEDURE 创建一个存储过程(MySQL也不支持) (64)

(7)DELETE 从数据库表中删除数据行 (64)

(8)SELECT子查询与表连接查询 (64)

(9)FUNCTION 字符串函数 (65)

(10)FUNCTION 日期函数 (65)

2、测试结论 (65)

一、数据定义命令测试

1、CREATE TABLE 创建一个数据库表

测试语句:

create table employee (id int not null primary key,name varchar(100),sharding_id int not null);

explain create table company(id int not null primary key,name varchar(100));

测试结果:支持该语句

测试过程:

(1)Oracle环境测试

1)操作employee表

mysql> explain create table employee (id int not null primary key,name varchar(100),sharding_id int not null);

+-----------+-----------------------------------------------------------------+ |DATA_NODE|SQL | +-----------+-----------------------------------------------------------------+ | dn1 | create table employee (id int not null primary key,name varchar(100),sharding_id int not null) |

| dn2 | create table employee (id int not null primary key,name varchar(100),sharding_id int not null) |

+-----------+-----------------------------------------------------------------+ 2 rows in set (0.00 sec)

mysql> create table employee (id int not null primary key,name

varchar(100),sharding_id int not null);

Query OK, 0 rows affected (0.09 sec)

OK!

2)操作company表

mysql> explain create table company(id int not null primary key,name varchar(100));

+-----------+-----------------------------------------------------------------+ |DATA_NODE|SQL | +-----------+-----------------------------------------------------------------+ | dn1 | create table company(id int not null primary key,name varchar(100)) | dn2 | create table company(id int not null primary key,name varchar(100)) +-----------+-----------------------------------------------------------------+ 2 rows in set (0.00 sec)

mysql> create table company(id int not null primary key,name varchar(100)); Query OK, 0 rows affected (0.30 sec)

OK!

(2)MySQL环境测试

1)操作employee表

mysql> explain create table employee (id int not null primary key,name varchar(100),sharding_id int not null);

+-----------+-----------------------------------------------------------------+ |DATA_NODE|SQL | +-----------+-----------------------------------------------------------------+ | dn1 | create table employee (id int not null primary key,name varchar(100),sharding_id int not null) |

| dn2 | create table employee (id int not null primary key,name varchar(100),sharding_id int not null) |

+-----------+-----------------------------------------------------------------+ 2 rows in set (0.00 sec)

mysql> create table employee (id int not null primary key,name varchar(100),sharding_id int not null);

Query OK, 0 rows affected (0.17 sec)

2)操作company表

mysql> explain create table company(id int not null primary key,name varchar(100)); +-----------+-----------------------------------------------------------------+ |DATA_NODE|SQL | +-----------+-----------------------------------------------------------------+ | dn1 | create table company(id int not null primary key,name varchar(100)) | dn2 | create table company(id int not null primary key,name varchar(100)) | dn3 | create table company(id int not null primary key,name varchar(100)) +-----------+-----------------------------------------------------------------+ 3 rows in set (0.00 sec)

mysql> create table company(id int not null primary key,name varchar(100));

Query OK, 0 rows affected (0.32 sec) 2、DROP TABLE 从数据库中删除表测试语句:explain drop table company; 测试结果:支持该语句

测试过程:

(1)Oracle环境测试

1)操作employee表

mysql> explain drop table employee; +-----------+---------------------+ | DATA_NODE | SQL | +-----------+---------------------+ | dn1 | drop table employee | | dn2 | drop table employee | +-----------+---------------------+ 2 rows in set (0.00 sec)

mysql> drop table employee;

Query OK, 0 rows affected (0.17 sec) OK!

2)操作company表

mysql> explain drop table company;

+-----------+--------------------+

| DATA_NODE | SQL |

+-----------+--------------------+

| dn1 | drop table company |

| dn2 | drop table company |

+-----------+--------------------+

2 rows in set (0.02 sec)

mysql> drop table company;

Query OK, 0 rows affected (3.95 sec) OK!

注意:如果只有一个节点dn1有表company,另一个节点dn2没有(可能意外删除),执行该语句报错,但实际已经删除dn1上的company表。

(2)MySQL环境测试

1)操作employee表

mysql> explain drop table employee;

+-----------+---------------------+

| DATA_NODE | SQL |

+-----------+---------------------+

| dn1 | drop table employee |

| dn2 | drop table employee |

+-----------+---------------------+

2 rows in set (0.06 sec)

mysql> drop table employee;

Query OK, 0 rows affected (0.11 sec)

2)操作company表

mysql> explain drop table company;

+-----------+--------------------+

| DATA_NODE | SQL |

+-----------+--------------------+

| dn1 | drop table company |

| dn2 | drop table company |

| dn3 | drop table company |

+-----------+--------------------+

3 rows in set (0.02 sec)

mysql> drop table company;

Query OK, 0 rows affected (0.36 sec)

3、ALTER TABLE 修改数据库表结构

测试语句:

--添加索引

explain alter table employee add index IDX_EMP_NAME (name);

create index IDX_EMP_NAME on employee(name);

--删除索引

explain alter table employee drop index IDX_EMP_NAME;

drop index IDX_EMP_NAME;

--添加唯一约束

explain alter table employee add unique EMP_NAME(name);(MySQL写法)explain alter table employee add constraint EMP_UNIQUE unique(name);(Oracle 写法)

--添加字段

explain alter table employee add age int;

--修改列名

explain alter table employee change name newname varchar(100);(MySQL写法)explain alter table employee change name newname varchar2(100);

explain alter table employee rename column name to newname;(Oracle写法)explain alter table employee rename name to newname;

--删除字段

explain alter table employee drop age;

--添加非空约束

explain alter table employee modify name constraint NAME_NOT_NULL not null; (Oracle写法)

explain alter table employee add constraint name check(name is not null); (MySQL 语法)

explain alter table employee modify name varchar(2) not null; (MySQL语法)

测试结果:

MySQL支持以上功能,Oracle只支持少部分功能,不支持添加唯一约,不支持修改列名,不支持删除字段

测试过程:

(1)Oracle环境测试

mysql> alter table employee add index IDX_EMP_NAME (name);

ERROR 1105 (HY000): ORA-00904: invalid identifier

mysql> create index IDX_EMP_NAME on employee(name);

Query OK, 0 rows affected (0.09 sec)

OK!

mysql> alter table employee add unique EMP_NAME(name);

ERROR 1105 (HY000): ORA-00906: missing left parenthesis

mysql> explain alter table employee add constraint EMP_UNIQUE unique(name); ERROR 1064 (HY000): com.alibaba.druid.sql.parser.ParserException: TODO UNIQUE unique

mysql> explain alter table employee add age int;

+-----------+----------------------------------+

| DATA_NODE | SQL |

+-----------+----------------------------------+

| dn1 | alter table employee add age int |

| dn2 | alter table employee add age int |

+-----------+----------------------------------+

2 rows in set (0.00 sec)

mysql> alter table employee add age int;

Query OK, 0 rows affected (0.01 sec)

OK!

mysql> alter table employee change name newname varchar2(100);

ERROR 1105 (HY000): ORA-01735: invalid ALTER TABLE option

mysql> alter table employee change name newname varchar(100);

ERROR 1105 (HY000): ORA-01735: invalid ALTER TABLE option

mysql> alter table employee rename column name to newname;

ERROR 1064 (HY000): com.alibaba.druid.sql.parser.ParserException: error COLUMN

mysql> alter table employee rename name to newname;

ERROR 14155 (HY000): ORA-14155: missing PARTITION or SUBPARTITION keyword

mysql> alter table employee drop age;

RROR 1105 (HY000): ORA-00905: missing keyword

mysql> explain alter table employee modify name constraint NAME_NOT_NULL not null; ERROR 1064 (HY000): com.alibaba.druid.sql.parser.ParserException: error CONSTRAINT

mysql> explain alter table employee add constraint name check(name is not null); ERROR 1064 (HY000): com.alibaba.druid.sql.parser.ParserException: TODO CHECK check

mysql> explain alter table employee modify name varchar(2) not null;

+-----------+------------------------------------------------------+

| DATA_NODE | SQL |

+-----------+------------------------------------------------------+

| dn1 | alter table employee modify name varchar(2) not null |

| dn2 | alter table employee modify name varchar(2) not null |

+-----------+------------------------------------------------------+

2 rows in set (0.00 sec)

mysql> alter table employee modify name varchar(2) not null;

Query OK, 0 rows affected (0.03 sec)

OK!

(2)MySQL环境测试

mysql> alter table employee add index IDX_EMP_NAME (name);

Query OK, 0 rows affected (0.31 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> create index IDX_EMP_NAME3 on employee(name);

Query OK, 0 rows affected (0.26 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table employee drop index IDX_EMP_NAME;

Query OK, 0 rows affected (0.23 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> drop index IDX_EMPLOYEE_NAME;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

mysql> alter table employee add unique EMP_NAME(name);

Query OK, 0 rows affected (0.23 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> explain alter table employee add constraint EMP_UNIQUE unique(name); ERROR 1064 (HY000): com.alibaba.druid.sql.parser.ParserException: TODO UNIQUE unique

mysql> alter table employee add age int;

Query OK, 1 row affected (0.46 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table employee change name newname varchar(100);

Query OK, 1 row affected (0.39 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> alter table employee drop age;

Query OK, 1 row affected (0.42 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> explain alter table employee modify name constraint NAME_NOT_NULL not null;

ERROR 1064 (HY000): com.alibaba.druid.sql.parser.ParserException: error CONSTRAINT

mysql> alter table employee modify name varchar(2) not null;

Query OK, 1 row affected (0.59 sec)

Records: 0 Duplicates: 0 Warnings: 0

4、CREATE VIEW 创建一个视图

测试语句:

explain create view v_comp as select * from company;

explain create view v_emp as select * from employee;

测试结果:支持该语句, 但须在schema.xml添加该视图(使用table标签)

测试过程:

(1)Oracle环境测试

mysql> explain create view v_comp as select * from company;

+-----------------+-----------------------------------------------------------+ | DATA_NODE | SQL |

+-----------------+-----------------------------------------------------------+ | dn1 | create view v_comp as select * from company |

| dn2 | create view v_comp as select * from company |

+-----------------+-----------------------------------------------------------+ 2rows in set (0.00 sec)

(2)MySQL环境测试

在schema.xml中添加标签

mysql> explain create view v_comp as select * from company;

+-----------+---------------------------------------------+

| DATA_NODE | SQL |

+-----------+---------------------------------------------+

| dn1 | create view v_comp as select * from company |

| dn2 | create view v_comp as select * from company |

| dn3 | create view v_comp as select * from company |

+-----------+---------------------------------------------+

3 rows in set (0.01 sec)

mysql> create view v_comp as select * from company;

Query OK, 0 rows affected (0.14 sec)

若不加标签,也可以执行成功,但打开视图时报错,如下图所示:

5、DROP VIEW 从数据库中删除视图

测试语句:

explain drop view v_comp;

测试结果:支持该语句,但须在schema.xml添加该视图(使用table标签),方法见下文测试过程:

(1)Oracle环境测试

在schema.xml中添加以下语句:

mysql> explain drop view v_comp;

+-----------------+--------------------------+

| DATA_NODE | SQL |

+-----------------+--------------------------+

| dn1 | drop view v_comp |

| dn2 | drop view v_comp |

+-----------------+--------------------------+

2 rows in set (0.00 sec)

(2)MySQL环境测试

在schema.xml中添加以下语句:

mysql> explain drop view v_comp;

+-----------+------------------+

| DATA_NODE | SQL |

+-----------+------------------+

| dn1 | drop view v_comp |

| dn2 | drop view v_comp |

| dn3 | drop view v_comp |

+-----------+------------------+

3 rows in set (0.17 sec)

mysql> drop view v_comp;

Query OK, 0 rows affected (0.01 sec)

6、CREATE INDEX 为数据库表创建一个索引

测试语句:

explain create index IDX_COMPANY_NAME on company(name); explain create index IDX_EMPLOYEE_NAME on employee(name);

测试结果:支持该语句

测试过程:

(1)Oracle环境测试

1)操作employee表

mysql> explain create index IDX_EMPLOYEE_NAME on employee(name); +-----------+--------------------------------------------------+ | DATA_NODE | SQL | +-----------+--------------------------------------------------+ | dn1 | create index IDX_EMPLOYEE_NAME on employee(name) | | dn2 | create index IDX_EMPLOYEE_NAME on employee(name) | +-----------+--------------------------------------------------+ 2 rows in set (0.00 sec)

mysql> create index IDX_EMPLOYEE_NAME on employee(name);

Query OK, 0 rows affected (0.06 sec)

OK!

2)操作company表

mysql> explain create index IDX_COMPANY_NAME on company(name); +-----------+------------------------------------------------+ | DATA_NODE | SQL | +-----------+------------------------------------------------+ | dn1 | create index IDX_COMPANY_NAME on company(name) | | dn2 | create index IDX_COMPANY_NAME on company(name) | +-----------+------------------------------------------------+

2 rows in set (0.00 sec)

mysql> create index IDX_COMPANY_NAME on company(name);

Query OK, 0 rows affected (0.05 sec)

OK!

(2)MySQL环境测试

1)操作employee表

mysql> explain create index IDX_EMPLOYEE_NAME on employee(name); +-----------+--------------------------------------------------+ | DATA_NODE | SQL | +-----------+--------------------------------------------------+

| dn1 | create index IDX_EMPLOYEE_NAME on employee(name) | | dn2 | create index IDX_EMPLOYEE_NAME on employee(name) | +-----------+--------------------------------------------------+ 2 rows in set (0.00 sec)

mysql> create index IDX_EMPLOYEE_NAME on employee(name);

Query OK, 0 rows affected (0.30 sec)

Records: 0 Duplicates: 0 Warnings: 0

2)操作company表

mysql> explain create index IDX_COMPANY_NAME on company(name); +-----------+------------------------------------------------+ | DATA_NODE | SQL | +-----------+------------------------------------------------+ | dn1 | create index IDX_COMPANY_NAME on company(name) | | dn2 | create index IDX_COMPANY_NAME on company(name) | | dn3 | create index IDX_COMPANY_NAME on company(name) | +-----------+------------------------------------------------+

3 rows in set (0.00 sec)

mysql> create index IDX_COMPANY_NAME on company(name);

Query OK, 0 rows affected (0.41 sec)

Records: 0 Duplicates: 0 Warnings: 0

7、DROP INDEX 从数据库中删除索引

测试语句:

explain drop index IDX_COMPANY_NAME;

explain drop index IDX_EMPLOYEE_NAME;

测试结果:存在异常,无法在全部节点同时执行删除,执行计划不确定。第一次执行命令在一个节点执行了删除索引,再次执行命令在另一个节点执行。Oracle和MySQL都存在该问题。

测试过程:

sql语句练习题及答案

一在数据库 school 中建立student , sc, course 表。 学生表、课程表、选课表属于数据库School ,其各自的数据结构如下:学生Student (Sno,Sname,Ssex,Sage,Sdept) 课程表course(Cno,Cname,Cpno,Ccredit) 学生选课SC(Sno,Cno,Grade) 二设定主码 1 Student表的主码:sno 2 Course表的主码:cno 3 Sc表的主码:sno,cno 1写出使用 Create Table 语句创建表 student , sc, course 的SQL语句2 3 删除student表中的元组 4在数据库school中删除关系student 5在student表添加属性sbirthdate 类型datetime

Delete 1 删除所有JSJ 系的男生delete from Student where Sdept=’JSJ’ and Ssex=’男’; 2 删除“数据库原理”的课的选课纪录 delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’); Update 1 修改0001 学生的系科为: JSJ 2 把陈小明的年龄加1岁,性别改为女。 2 修改李文庆的1001课程的成绩为9 3 分 3 把“数据库原理”课的成绩减去1分 Select 查询语句 一单表 1查询年龄在19至21岁之间的女生的学号,姓名,年龄,按年龄从大到小排列。 2查询姓名中第2个字为“明”字的学生学号、性别。 3查询 1001课程没有成绩的学生学号、课程号 4查询JSJ 、SX、WL 系的年龄大于25岁的学生学号,姓名,结果按系排列 5按10分制查询学生的sno,cno,10分制成绩 (1-10分为1 ,11-20分为2 ,30-39分为3,。。。90-100为10) 6查询 student 表中的学生共分布在那几个系中。(distinct) 7查询0001号学生1001,1002课程的成绩。 二统计 1查询姓名中有“明”字的学生人数。 2计算‘JSJ’系的平均年龄及最大年龄。 3查询学生中姓名为张明、赵英的人数 4计算每一门课的总分、平均分,最高分、最低分,按平均分由高到低排列 5 计算 1001,1002 课程的平均分。 6 查询平均分大于80分的学生学号及平均分 7 统计选修课程超过 2 门的学生学号 8 统计有10位成绩大于85分以上的课程号。 9 统计平均分不及格的学生学号 10 统计有大于两门课不及格的学生学号 三连接 1查询 JSJ 系的学生选修的课程号 2查询选修1002 课程的学生的学生姓名 (不用嵌套及嵌套2种方法) 3查询数据库原理不及格的学生学号及成绩 4查询选修“数据库原理”课且成绩 80 以上的学生姓名(不用嵌套及嵌套2种方法) 5查询平均分不及格的学生的学号,姓名,平均分。 6查询女学生平均分高于75分的学生姓名。 7查询男学生学号、姓名、课程号、成绩。(一门课程也没有选修的男学生也要列出,不能

SQL语句练习题(精品文档)

S Q L语言 一、选择题 1.S Q L语言是()的语言,容易学习。 A.过程化 B.非过程化 C.格式化 D.导航式 2. S Q L语言的数据操纵语句包括S E L E C T、I N S E R T、U P D A T E、 D E L E T E等。其中最重要的,也是使用最频繁的语句是()。 A.S E L E C T B.I N S E R T C.U P D A T E D.D E L E T E 3.在视图上不能完成的操作是()。 A.更新视图 B.查询 C.在视图上定义新的表 D.在视图上定义新的视图 4.S Q L语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,C R E A T E、D R O P、A L T E R语句是实现哪种功能()。 A.数据查询 B.数据操纵 C.数据定义 D.数据控制 5.S Q L语言中,删除一个视图的命令是()。 A.D E L E T E B.D R O P C.C L E A R D.R E M O V E 6.在S Q L语言中的视图V I E W是数据库的()。 A.外模式 B.模式 C.内模式 D.存储模式 7.下列的S Q L语句中,()不是数据定义语句。 A.C R E A T E T A B L E B.D R O P V I E W C.C R E A T E V I E W D.G R A N T 8.若要撤销数据库中已经存在的表S,可用()。 A.D E L E T E T A B L E S B.D E L E T E S C.D R O P T A B L E S D.D R O P S

sql语句模拟测试题

SQL语句真题模拟测试 姓名__________分数___________ 有如下四个表: 查询测试: 1、查询出在2号仓库工作的所有员工的工资,并且去掉重复值 2、查询出工资在1230到1250之间的所有员工信息 3、查询出供应商名中所有包含“子”字的供应商信息 4、找出工资为1250元的职工号和城市

5、查询出wh1仓库中共有多有个员工 6、计算出每个仓库的人数,总工资和最高工资,字段分别显示为仓库号,人数,总工资和最高工资 7、在订购单表中查询出还没有完成订单的订单信息 8、找出和职工E4挣同样工资的职工号和工资 9、找出还没有员工的仓库信息 10、查询出工资大于或等于2号仓库中其中一名职工工资的的员工信息 11、显示工资最高的30% 的员工信息 操作测试: 1、用SQL语句在职工表中插入记录(“WH4”,”E8”,1111) 2、把所有面积小于500的仓库,面积在原来的基础之上扩大20% 3、删除所有还没有完成订单的记录 定义功能: 1、在数据库中创建表的CREATE TABLE命令中定义主索引、实现实体完整性规则的短语是( )。

A) FOREIGN KEY B) DEFAULT C) PRIMARY KEY D) CHECK 2、在Visual FoxPro中,下列关于SQL表定义语句(CREATE TABLE)的说法中错误的是( )。 A) 可以定义一个新的基本表结构 B) 可以定义表中的主关键字 C) 可以定义表的域完整性、字段有效性规则等 D) 对自由表,同样可以实现其完整性、有效性规则等信息的设置 3、"教师表"中有"职工号"、"姓名"和"工龄"等字段,其中"职工号"为主关键字,建立"教师表"的SQL命令是( )。 A) CREATE TABLE 教师表(职工号 C(10)PRIMARY,姓名 C(20),工龄I) B) CREATE TABLE 教师表(职工号 C(10)FOREIGN,姓名 C(20),工龄I) C) CREATE TABLE 教师表(职工号 C(10)FOREIGN KEY,姓名 C(20),工龄I) D) CREATE TABLE 教师表(职工号 C(10)PRIMARY KEY,姓名 C(20),工龄I) 4、表名为Employee的表结构是(职工号,姓名,工资),建立表Employee的SQL命令是 A) CREATE TABLE Employee(职工号 C(10),姓名 C(20), 工资 Y) B) CREATE Employee TABLE(职工号 C(10),姓名 C(20), 工资 Y) C) CREATE DATABASE Employee(职工号 C(10),姓名 C(20), 工资 Y) D) CREATE Employee DATABASE(职工号 C(10),姓名 C(20), 工资 Y 5、从产品表中删除生产日期为2013年1月1日之前(含)的记录,正确的SQL语句是 A) DROP FROM 产品 WHERE 生产日期<={^2013-1-1} B) DROP FROM 产品 FOR 生产日期<={^2013-1-1} C) DELETE FROM 产品 WHERE 生产日期<={^2013-1-1} D) DELETE FROM 产品 FOR 生产日期<={^2013-1-1} 6、为"评分"表的"分数"字段添加有效性规则:"分数必须大于等于0并且小于等于10",正确的SQL语句是( )。 A) CHANGE TABLE 评分ALTER 分数 SET CHECK 分数>=0 AND 分数<=10 B) ALTER TABLE 评分 ALTER 分数 SET CHECK 分数>=0 AND 分数<=10 C) ALTER TABLE 评分 ALTER 分数 CHECK 分数>=0 AND 分数<=10 D) CHANGE TABLE 评分 ALTER 分数 SET CHECK 分数>=0 OR 分数<=10 7、有表名为Employee的表结构(职工号,姓名,工资),为表Employee增加字段"住址"的SQL命令是 A) ALTER DBF Employee ADD 住址 C(30) B) CHANGE DBF Employee ADD 住址 C(30) C) CHANGE TABLE Employee ADD 住址 C(30) D) ALTER TABLE Employee ADD 住址 C(30) 8、在Visual FoxPro中,如果要将学生表S(学号,姓名,性别,年龄)中"年龄"属性删除,正确的SQL命令是( )。 A) ALTER TABLE S DROP COLUMN 年龄 B) DELETE 年龄 FROM S C) ALTER TABLE S DELETE COLUMN 年龄 D) ALTER TABLE S DELETE 年龄

vfp6SQL练习题

SQL综合练习题一 一、单项选择题 1.下列说法正确的是()。 A)SQL 语言不能直接以命令方式交互使用,而只能嵌入到程序设计语言中以程序方式使用 B)SQL 语言只能直接以命令方式交互使用,而不能嵌入到程序设计语言中以程序方式使用 C)SQL 语言不可以直接以命令方式交互使用,也不可以嵌入到程序设计语言中以程序方式使用,是在一种特殊的环境下使用的语言D)SQL 语言既可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用 2.SQL 语言具有()的功能。 A)关系规范化,数据操纵,数据控制 B)数据定义,数据操纵,数据控制 C)数据定义,关系规范化,数据控制 D)关系规范化,数据操纵,数据查询 3.SQL 语言中使用最多的功能是()。 A)数据查询 B)数据修改 C)数据定义 D)数据控制 4.SQL 语句中,Select 命令的分组操作配套使用的条件短语应使用()引导。 A)Where B)like C)Having D)In 5.Sql 语句中删除表中记录的语句是()。 A)Drop B)Erase C)Cancle D)Delete 6.用SQL 语句建立表时为属性定义主索引,应在SQL 语句中使用短语()。 A)Default B)Primary Key C)Check D)Unique 7.SQL 语句的where短语中可以使用通配符是()。 A)* B)? C)% D)— 8.SQL 语句中条件短语的关键字是()。 A)Where B)For C)While D)as 9.SQL 中可以使用的通配符有()。 A)* B)% C)_ D)B 项和c 项 10.SQL 的数据操纵语句不包括()。 A)Insert B)Delete C)Update D)Change 11.字符串匹配运算符是()。 A)Like B)And C)In D)= 12.将查询结果放在数组中应使用()短语。 A)Into Cursor B)To Array C)Into Table D)Into Array 13.SQL 实现分组查询的短语是()。 A)Order By B)Group By C)Having D)Asc 14.用Sql 语句建立表时为属性定义有效性规则,应使用短语是()。 A)Default B)Primary Key C)Check D)Unique 15.书写SQL 语句,若语句要占用多行,在行的末尾要加续行符()。 A): B); C), D)” 16.用于更新表中数据的SQL 语句是()。

sql语句练习50题

sql语句练习50题 Student(Sid,Sname,Sage,Ssex) 学生表 Course(Cid,Cname,Tid) 课程表 SC(Sid,Cid,score) 成绩表 Teacher(Tid,Tname) 教师表 练习内容: 1.查询“某1”课程比“某2”课程成绩高的所有学生的学号; SELECT a.sid FROM (SELECT sid,score FROM SC WHERE cid=1) a,(SELECT sid,score FROM SC WHERE cid=3) b WHERE a.score>b.score AND a.sid=b.sid; 此题知识点,嵌套查询和给查出来的表起别名 2.查询平均成绩大于60分的同学的学号和平均成绩; SELECT sid,avg(score) FROM sc GROUP BY sid having avg(score) >60; 此题知识点,GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。group by后面不能接where,having代替了where 3.查询所有同学的学号、姓名、选课数、总成绩 SELECT Student.sid,Student.Sname,count(SC.cid),sum(score)FROM Student left Outer JOIN SC on Student.sid=SC.cid GROUP BY Student.sid,Sname 4.查询姓“李”的老师的个数; select count(teacher.tid)from teacher where teacher.tname like'李%' 5.查询没学过“叶平”老师课的同学的学号、姓名; SELECT Student.sid,Student.Sname FROM Student WHERE sid not in (SELECT distinct( SC.sid) FROM SC,Course,Teacher WHERE SC.cid=Course.cid AND Teacher.id=Course.tid AND Teacher.Tname='叶平'); 此题知识点,distinct是去重的作用 6.查询学过“```”并且也学过编号“```”课程的同学的学号、姓名; select a.SID,a.SNAME from (select student.SNAME,student.SID from student,course,sc where cname='c++'and sc.sid=student.sid and sc.cid=course.cid) a, (select student.SNAME,student.SID from student,course,sc where cname='english'and sc.sid=student.sid and sc.cid=course.cid) b where a.sid=b.sid; 标准答案(但是好像不好使)SELECT Student.S#,Student.Sname FROM Student,SC WHERE Student.S#=SC.S# AND SC.C#='001'and exists( SELECT * FROM SC as SC_2 WHERE SC_2.S#=SC.S# AND SC_2.C#='002'); 此题知识点,exists是在集合里找数据,as就是起别名 7.查询学过“叶平”老师所教的所有课的同学的学号、姓名; select a.sid,a.sname from (select student.sid,student.sname from student,teacher,course,sc where teacher.TNAME='杨巍巍' and teacher.tid=course.tid and course.cid=sc.cid and student.sid=sc.sid) a 标准答案:SELECT sid,Sname FROM Student WHERE sid in (SELECT sid FROM SC ,Course ,Teacher WHERE SC.cid=Course.cid AND Teacher.tid=Course.tid AND Teacher.Tname='杨巍巍' GROUP BY sid having count(SC.cid)=(SELECT count(cid) FROM Course,Teacher WHERE Teacher.tid=Course.tid AND Tname='杨巍巍')) 8.查询课程编号“”的成绩比课程编号“”课程低的所有同学的学号、姓名;

SQL 测试题

SQL考试题 一、选择题 1.SELECT语句中与HAVING子句通常同时使用的是(C)子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 2.以下聚合函数求数据总和的是(B) A.MAX B.SUM C.COUNT D.AVG 3.SELECT语句的完整语法较复杂,但至少包括的部分是( B ) A.仅SELECT B.SELECT,FROM C.SELECT,GROUP D.SELECT,INTO 4.SQL语句中的条件用以下哪一项来表达( C ) A.THEN B.WHILE C.WHERE D.IF 5.查找表结构用以下哪一项( B ) A.FIND B.SELETE C.ALTER D.DESC 6.向数据表中插入一条记录用以下哪一项( B ) A.CREATE B.INSERT C.SAVE D.UPDATE 7.SQL语言中,删除一个表的命令是( D ) A.REMOVE B.CLEAR C.DELETE D.DROP 8.修改数据库表结构用以下哪一项( D ) A.UPDATE B.CREATE C.UPDATED D.ALTER 9.下列( D )不属于连接种类 A.左外连接B.内连接C.中间连接D.交叉连接10.SQL是一种( C )语言。 A.函数型B.高级算法C.关系数据库D.人工智能11.下列的SQL语句中,( B )不是数据定义语句。

A.CREATE TABLE B.GRANT C.CREATE VIEW D.DROP VIEW 12.以下聚合函数求平均数的是( C ) A.COUNT B.MAX C.AVG D.SUM 13.用来插入数据的命令是( A ),用于更新的命令是( ) A.INSERT,UPDATE B.CREATE,INSERT INTO C.DELETE,UPDATE D.UPDATE,INSERT 14.以下哪项用于左连接( C ) A.JOIN B.RIGHT JOIN C.LEFT JOIN D.INNER JOIN 15.一张表的主键个数为( C ) A.至多3个B.没有限制C.至多1个D.至多2个 二、填空题 1.select 9/3;的结果为___true_。 2.补全语句:select vend_id,count(*) as num_prods from products group by __vend__; 3.用SELECT进行模糊查询时,可以使用匹配符,但要在条件值中使用__下划线__或%等通配符来配合查询。 4.如果MySQL服务名为MySQL5,则在Windows的命令窗口中,启动MySQL 服务的指令是__net start MYSQL5__。 5.MySQL是一种___多用户___(多用户、单用户)的数据库管理系统。 6.创建数据表的命令语句是____create table 表名();_____。 7._order by___语句可以修改表中各列的先后顺序。 8.当某字段要使用AUTO_INCREMENT的属性时,该字段必须是_整数___类型的数据。 三、解答题 1.表名:购物信息 购物人商品名称数量 A 甲 2 B 乙 4 C 丙 1 A 丁 2 B 丙 5 …… (其他用户实验的记录大家可自行插入)

Sql语句习题

+ 写了完成下列操作的关系代数式: 1.查看各教研室的教师数。 2.查看每位教师的职称情况。 3.查看每个班级的人数及班长姓名。 4.查看每位学生的生日及籍贯。 5.查看每门课程的学分数。 6.查看每门课程的上课地点。 7.查看每门课程的学时数。 8.查看讲授“软件工程”课程的教师。 9.查看在10101教室上课的课程名。 10.查看5学分的课程名。 11.查看籍贯为“上海”的学生情况。 12.查看88年5月前出生的女同学。 13.查看信息安全专业的班级情况。 14.查看0601班学生数据库原理课程的成绩。 15.查看10101教研室的男教师情况。 16.查看A101系教师的职称情况。 17.查看060101同学的每门课程的分数,按成绩多少排序。 18.查看男同学的生日及籍贯。 19.按学分多少查看课程名。 20.查看10101教研室教师所开的课程。 21.查看课程名为软件工程的成绩。 22.查看软件工程课程的最高分数。 23.查看软件工程课程的平均成绩。 24.统计软件工程系的女教师人数。 25.统计软件学院的教师人数。 25.查看选修数据库原理的学生。 26.查看选修01-01、01-03的学生。

27.查看A101系同学的生日及籍贯。 28.查看A101系职称是教授的教师的情况。 29.查看学生选修课程的情况。 30.查看各系每个教研室教师人数。 31.查看A101系每个教研室教师人数。 32.查看A101系以外其他各系的教研室情况。 33.查询每个学生所学课程的名称、学分、成绩。 34.查询每个学生所在的班级和系。 35.查看应用数学系课程设置情况。 36.查看软件工程系教师情况。 37.查看数据库原理、软件工程课程的成绩。 38.查看哪位学生是班长。 39.查看与班级编号A1010601班级人数相等的班级编号、班长姓名。 40.查询考试成绩超过90分的学生的学号。

SQL语句练习题(包含有多表查询)-答案

SQL语句练习题 1、请从表EMP中查找工种是职员CLERK或经理MANAGER的雇员姓名、工资。 select ename,sal from emp where job='CLERK' or job='MANAGER'; 2、请在EMP表中查找部门号在10-30之间的雇员的姓名、部门号、工资、工作。 select ename,deptno,sal,job from emp where deptno between 10 and 30; 3、请从表EMP中查找姓名以J开头所有雇员的姓名、工资、职位。 select ename,sal,job from emp where ename like 'J%'; 4、请从表EMP中查找工资低于2000的雇员的姓名、工作、工资,并按工资降序排列。select ename,job,sal from emp where sal<=2000 order by sal desc; 5、请从表中查询工作是CLERK的所有人的姓名、工资、部门号、部门名称以及部门地址的信息。 select ename,sal,emp.deptno,dname,loc from emp,dept where emp.deptno=dept.deptno and job=’CLERK’; 6、查询表EMP中所有的工资大于等于2000的雇员姓名和他的经理的名字。 select a.ename,b.ename from emp a,emp b where a.mgr=b.empno(+) and a.sal>=2000; 7、查询所有雇员的姓名、SAL与COMM之和。 select ename,sal+nvl(comm,0) “sal-and-comm” from emp; 8、查询所有81年7月1日以前来的员工姓名、工资、所属部门的名字 select ename,sal,dname from emp,dept where emp.deptno=dept.deptno and hiredate<=to_date(‘1981-07-01’,’yyyy-mm-dd’); 9、查询列出来公司就职时间超过24年的员工名单 select ename from emp where hiredate<=add_months(sysdate,-288); 10、查询于81年来公司所有员工的总收入(SAL和COMM) select sum(sal+nvl(comm,0)) from emp where to_char(hiredate,’yyyy’)=’1981’; 11、查询显示每个雇员加入公司的准确时间,按××××年××月××日时分秒显示。select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp; 12、查询列出各部门的部门名和部门经理名字 select dname,ename from emp,dept where emp.deptno=dept.deptno and job=’MANAGER’;

SQL考试试题

SQL考试试题 一.选择题(每题2分,共30分) 1.( A )是位于用户和操作系统之间的一层数据管理软件。数据库在建立、使用和维护时由其统一管理、统一控制。 A.DBMS B.DB C.DBS D.DBA 2. 如果希望完全安装SQL Server,则应选择( C )。 A. 典型安装 B. 最小安装 C. 自定义安装 D. 仅连接 3.下列哪一个数据库不是SQL Server 2000的系统数据库( C ) A.master数据库B.msdb数据库C.pubs数据库D.model数据库 4.Microsoft公司的SQL Server数据库管理系统一般只能运行于( A )。 A.Windows平台B.UNLX平台 C.LINX平台 D. NetWare平台 5、下列哪个约束不可以为空?( A )

A. 主键 B. 外键 C. 默认键 D. UNIQUE约束 6、下列的SQL语句中,(D)不是数据定义语句。 A. CREATE TABLE B. DROP VIEW C. CREATE VIEW D. GRANT 7、下列哪种数据类型上不能建立IDENTITY列?( C )A:int B:tinyint C:float D:smallint 8、SQL语言中,删除一个视图的命令是(B)。 A.DELETE B.DROP C.CLEAR

D.REMOVE https://www.doczj.com/doc/071248522.html,/bc3ef99ce850df65d47efefa958cb4911ffdf356a.html9、通过使用文件组,可以( D )。 A、提高存取数据的效率。 B、提高数据库备份与恢复的效率 C、简化数据库的维护 D、ABC都可以。 10、在SQL Server服务器上,存储过程是一组预先定义并( B )的T-SQL语句。 A、保存 B、编译 C、解释 D、编写 11、数据库的容量,( D )。 A、只能指定固定的大小。 B、最小为10M

SQL语句习题11

设某商业集团关于商店销售商品的数据库中有三个基本表: 商店SHOP(S#,SNAME,AREA,MGR_NAME) 其属性是商店编号,商店名称,区域名,经理姓名。 销售SALE(S#,G#, QUANTITY) 其属性是商店编号,商品编号,销售数量。 商品GOODS(G#,GNAME,PRICE) 其属性是商品编号,商品名称,单价。 36.试写出下列查询的关系代数表达式、元组表达式和关系逻辑规则:检索销售“冰箱”的商店的编号和商店名称。 37.试写出上面第36题的SELECT语句表达形式。并写出该查询的图示形式。38.试写出下列操作的SQL语句: 从SALE表中,把“开开商店”中销售单价高于1000元的商品的销售元组全部删除。 39.写一个断言,要求区域名为“EAST”的商店里销售商品的单价不能低于100元。 40.试写出下列操作的SQL语句: 统计区域名为“EAST”的所有商店销售的每一种商品的总数量和总价值。 要求显示(G#,GNAME,SUM_QUANTITY,SUM_VALUE),其属性为商品编号、商品名称、销售数量、销售价值。 37.解:SELECT语句如下: SELECT A.S#,SNAME FROM SHOP A,SALE B,GOODS C WHERE A.S#=B.S# AND B.G#=C.G# AND GNAME='冰箱'; 该查询语句的图示形式如下: SHOP S# SNAME AREA MGR_NAME P._X P. SALE S# G# QUANTITY GOODS G# GNAME PRICE _X _Y _Y 冰箱 38.解:DELETE FROM SALE WHERE S# IN(SELECT S# FROM SHOP WHERE SNAME='开开商店') AND G# IN(SELECT G# FROM GOODS WHERE PRICE>1000); 39.解:CREATE ASSERTION ASSE8 CHECK (100<=ALL(SELECT PRICE

SQL SERVER 试题

SQL Server2008测试题 一、单项选择题(每题2分,共25题,合计50分) 1.SQL Server2008是一个()的数据库系统。 (A)网状型(B)层次型(C)关系型(D)以上都不是 2.关于主键描述正确的是:() (A)包含一列(B)包含两列 (C)包含一列或者多列(D)以上都不正确 3.SQL Server2008采用的身份验证模式有()。 (A)仅Windows身份验证模式 (B)仅SQL Server身份验证模式 (C)仅混合模式 (D)Windows身份验证模式和混合模式 4.SQL语言按照用途可以分为三类,下面选项中哪一种不是的:()(A)DML(B)DCL(C)DQL(D)DDL 5.在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是() (A)*(B)%(C)-(D)? 6.SQL Server提供的单行注释语句是使用()开始的一行内容。(A)“/*”(B)“--”(C)“{”(D)“/” 7.以下那种类型不能作为变量的数据类型()。

(A)text(B)ntext(C)table(D)image 8.下面不属于数据定义功能的SQL语句是:() A.CREATE TABLE B.CREATE CURSOR C.UPDATE D.ALTER TABLE 9.如果希望完全安装SQL Server,则应选择()。 A.典型安装 B.最小安装 C.自定义安装 D.仅连接 10.在SQL SERVER中局部变量前面的字符为:() (A)*(B)#(C)@@(D)@ 11.假如有两个表的连接是这样的:table_1INNER JOIN table_2其中table_1和table_2是两个具有公共属性的表,这种连接会生成哪种结果集?() (A)包括table_1中的所有行,不包括table_2的不匹配行(B)包括table_2中的所有行,不包括table_1的不匹配行(C)包括和两个表的所有行 (D)只包括table_1和table_2满足条件的行 12.对视图的描述错误的是:() (A)是一张虚拟的表 (B)在存储视图时存储的是视图的定义 (C)在存储视图时存储的是视图中的数据 (D)可以像查询表一样来查询视图 13.在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是()。 (A)ALTER(B)UPDATE(C)UPDAET(D)ALLTER

SQLA摸底测试题02

说明:选择题每题2分,共60分,没有注明的是单选题。编程题每题8分,共40分。 一、选择题(共60分) 1)假设需要设计一个表,记录各个作者著作的所有图书信息,表结构设计如下: 作者(作者名称、图书1、版本1、书价1、图书2、版本2、书价2、……),该表最高符合第()范式。 a)一 b)二 c)三 d)未规范化的 2)画ER图在以下()哪个阶段。 a)概要设计 b)详细设计 c)编码 d)以上都不对 3)E-R图中,关系用下面()来表示。 a)矩形 b)椭圆形

c)菱形 d)圆形 4)以下关于规范设计的描述正确的是()。(选择两项) a)规范设计的主要目的是消除数据冗余。 b)规范设计往往会增加数据库的性能。 c)设计数据库时,规范化程度越高越好。 d)在规范化数据库中,易于维护数据完整性。 5)关于触发器,()说法是错误的。(选择两项) a)触发器是一种特殊类型的存储过程。 b)可以使用触发器来响应对数据的select,insert,update,delete 操作。 c)一个表上的触发器不可以包含对另外一个表的数据操作,以免造成死循环。 d)触发器和触发它的语句构成一个事务。 6)在score表上创建一个触发器: create trigger tri_score on score for update,delete as

if (select count(*) from inserted)>0 print('success') go 在查询分析器上执行以下()语句,可能会输出“success”。 a)Update score set score=20 b)Delete from score where score<60 c)Insert into score values ( 此处省略) d)Select * from score 7)关于局部变量,下列说法错误的是() a)局部变量只在当前批处理中有效 b)局部变量只能通过set语句赋值 c)可以修改局部变量的值 d)局部变量只有一个@符号 8)下面关于IN与Exists子查询的说法错误的是() a)IN与Exists子查询的共同点就是查询的结果都返回布尔值。 b)IN必须有字段与字查询的行进行比较,子查询中的值与IN左边的值进行比较,相等则返回真。 c)Exists左边必须有字段,只查询子查询的行,若存在这样的行,就返回真。 d)exists是关于存在性的查询。

SQL语句练习题答案

SQL练习题及答案: 请用SQL语句实现以下功能。(1至6题每题10分,7至8题每题20分) 1. 如何用SQL语句求带辅助核算206科目12月的余额在贷方的合计值?cendd_c为余额方向字段,字符型,me为余额。 SELECT sum(me) FROM gl_accass WHERE ccode="206" and cendd_c="贷" and iperiod=12 2.如何查找GL_accass中的科目在科目表中不是末级的?(如下3种写法均正确) SELECT https://www.doczj.com/doc/071248522.html,ODE ,B.BEND FORM GL_ACCASS AS A JOIN CODE AS B ON https://www.doczj.com/doc/071248522.html,ODE=https://www.doczj.com/doc/071248522.html,ODE WHERE B.BEND =0 select distinct ccode from gl_accass where ccode in(select ccode from code where bend=0) select distinct ccode from gl_accass where ccode not in(select ccode from code where bend=1)

3. 如何将AA库中的department表用语句把数据导入BB库中? INSERT INTO BB..DEPARTMENT SELECT * FROM AA..DEPARTMENT 4.如何查辅助总帐中的部门编号(cDEPT_ID)在部门目录(department 表cdepcode)中不存在的记录?SELECT cDEPT_ID FROM GL_ACCASS WHREE cDEPT_ID NOT IN (SELECT cdepcode FROM DEPARTMENT) 5. 如何在部门目录表中查找部门名称(CDEPNAME)重复的记录数? SELECT CDEPNAME, COUNT(CDEPNAME) FROM DEPARTMENT GROUP BY CDEPNAME HA VING COUNT(CDEPNAME)>1; 6. 已知有表R(sno, sname, age),其中sno表示学生的学号,类型为Char(8),前4位表示入学年份。查询所有2003年入学的学生姓名(sname),SQL语句是 SELECT sname FROM R WHERE sno LIKE ′2003%′ 7. 判断题:

数据库sql查询语句练习4_习题_结果(单世民)图书_习题

现有图书管理数据库的三个关系模式: 图书(总编号, 分类号, 书名, 作者, 出版单位, 单价)读者(借书证号, 单位, 姓名, 性别, 职称, 地址)借阅(借书证号, 总编号, 借书日期) 具体数据为: 读者:

根据以上描述,请完成: DDL 1.写出创建上述表的语句 命令:create table图书(总编号varchar(7)primary key,分类号varchar(8),书名varchar(18),作者varchar(8),出版单位varchar(18),单价float) create table读者(借书证号varchar(4)primary key,单位varchar(7),姓名varchar(8),性别varchar(2),职称varchar(8),地址varchar(18)) create table借阅(借书证号varchar(3),总编号varchar(6),借书日期date,primary key(借书证号,总编号,借书日期)) DML 2.给出插入上述数据的insert语句 命令: insert into图书values('445501','TP3/12','数据库导论','王强','科学出版社', insert into图书values('445502','TP3/12','数据库导论','王强','科学出版社', insert into图书values('445503','TP3/12','数据库导论','王强','科学出版社', insert into图书values('332211','TP5/10','计算机基础','李伟','高等教育出版社', insert into图书values('112266','TP3/12','FoxBASE','张三','电子工业出版社', insert into图书values('665544','TS7/21','高等数学','刘明','高等教育出版社', insert into图书values('114455','TR9/12','线性代数','孙业','北京大学出版社', insert into图书values('113388','TR7/90','大学英语','胡玲','清华大学出版社', insert into图书values('446601','TP4/13','数据库基础','马凌云','人民邮电出版社', insert into图书values('446602','TP4/13','数据库基础','马凌云','人民邮电出版社', insert into图书values('446603','TP4/13','数据库基础','马凌云','人民邮电出版社', insert into图书values('449901','TP4/14','FoxPro大全','周虹','科学出版社', insert into图书values('449902','TP4/14','FoxPro大全','周虹','科学出版社', insert into图书values('118801','TP4/15','计算机网络','黄力钧','高等教育出版社', insert into图书values('118802','TP4/15','计算机网络','黄力钧','高等教育出版社', insert into读者values('111','信息系','王维利','女','教授','1号楼') insert into读者values('112','财会系','李立','男','副教授','2号楼') insert into读者values('113','经济系','张三','男','讲师','3号楼') insert into读者values('114','信息系','周华发','男','讲师','1号楼') insert into读者values('115','信息系','赵正义','男','工程师','1号楼') insert into读者values('116','信息系','李明','男','副教授','1号楼') insert into读者values('117','计算机系','李小峰','男','助教','1号楼') insert into读者values('118','计算机系','许鹏飞','男','教授','1号楼')

数据库SQL语句练习题

一、设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表 (Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。 表1-1数据库的表结构 表(一)Student 属性名数据类型可否为空含义 Sno Char(3) 否学号(主码) Sname Char(8) 否学生姓名 Ssex Char(2) 否学生性别 Sbirthday datetime 可学生出生年月 Class Char(5) 可学生所在班级 创建表:Create table Student (Sno Char(3), Sname Char(8), Ssex Char(2), Sbirthday datetime, Class Char(5)) 表(二)Course 属性名数据类型可否为空含义 Cno Char(5) 否课程号(主码) Cname Varchar(10) 否课程名称 Tno Char(3) 否教工编号(外码) 创建表:Create table Course (Cno Char(5), Cname Varchar(10), Tno Char(3)) 表(三)Score 属性名数据类型可否为空含义 Sno Char(3) 否学号(外码) Cno Char(5) 否课程号(外码) Degree Decimal(4,1) 可成绩 主码:Sno+ Cno 创建表:Create table Score (Sno Char(3), Cno Char(5), Degree Decimal(4,1)) 表(四)Teacher 属性名数据类型可否为空含义 Tno Char(3) 否教工编号(主码)

相关主题
文本预览