MySQL 作业
一、填空题
1、交叉连接查询返回的结果是被连接的两张数据表中所有数据行的_笛卡尔积___ 。
2、左连接查询的结果包括 LEFT JOIN 子句中左表的_所有记录___,以及右表中满足连接条件的记录。
3、内连接查询的语法中,ON 用于指定查询的__匹配条件__。
4、被外键引用的列应该具有__主键__约束或唯一性约束。
5、__ANY__关键字结合子查询时,表示子查询的查询结果集中的任一查询结果
二、判断题
1、在进行左外连接时,如果左表的某条记录在右表中不存在,则在右表中显示为 NULL。(对)
2、子查询是指一个查询语句嵌套在另一个语句内部的查询。( 对)
3、右连接查询不一定返回右表中的所有记录。(错)
4、内连接使用 INNER JOIN 关键字连接两张表,其中 INNER 关键字可以省略。( 对)
5、外键所在列的数据类型必须和主表中主键对应列的数据类型相同。( 对)
三、选择题
1、A 表 4 条记录,B 表 5 条记录,两表进行迪卡尔积运算后的记录数是( C)
A. 1 条 B. 9 条 C. 20 条 D. 2 条
2、阅读下面 SQL 语句:
SELECT * FROM dept WHERE EXISTS(SELECT did FROM emp WHERE emp.did=dept.did AND
emp.age > 21);其中 dept 为部门表,emp 为员工表,下列选项中对上述语句功能描述正确的是( B)
A. 查询年龄大于 21 的员工信息
B. 查询存在年龄大于 21 的员工所对应的部门信息C. 查询存在年龄大于 21 的员工所对应的员工信息
D. 查询存在年龄大于 21 的员工信息
3、下面选项中,用于实现交叉连接的关键字是(B )
A. INNER JOIN
B. CROSS JOIN
C. LEFT JOIN
D. RIGHT JOIN
5、下面选项中,表示满足其中任意一个条件就成立的关键字是( A)
A. ANY B. ON C. EXISTS D. IN
6、下列选项中,关于左连接查询的描述正确的是( B)
A. 返回左表和右表中所有记录
B. 返回左表中的所有记录和右表中符合连接条件的记录
C. 只返回左表中的所有记录
D. 返回右表中的所有记录和左表中符合连接条件的记录
四、编程题
create table `user`(
`id` int PRIMARY key auto_increment,
`name` VARCHAR(50) not null,
`tel` VARCHAR(50) not null,
`content` VARCHAR(50)
)
a.
insert into user(
id,name,tel,content,date)VALUES
(null,"小王","13254748547","高中毕业","2007-05-06")
b.
UPDATE user set date=SYSDATE() WHERE name='张三';
c.
DELETE FROM user where name="张四";
create table employee(
`empno` int PRIMARY key auto_increment,
`emp_name` VARCHAR(10) not null,
`salary` double not null,
`dept_no` int not null
)
create table dept(
`dept_no` int PRIMARY KEY auto_increment,
`name` VARCHAR(10) not null
)
2、查询所有员工以及对应的部门信息。
select * from employee e
left join dept on e.dept_no=dept.dept_no
3、利用命令行(CMD)完成下列操作
(1)登陆 MySQL 数据库。
(2)查看当前登录的用户。
(3)创建数据库 jsoft,并查看已经存在的数据库。
(4)创建用户 jsoft,使之可以管理数据库 jsoft。
(5)查看创建的用户 jsoft 拥有哪些权限。
(6)切换 jsoft 数据库。
(7)查看当前所在的数据库。
(8)创建一张表 test,字段 id 和 name varchar(16)。
(9)查看表结构。
(10)插入一条数据“1,joft”
(11)再批量插入 2 行数据 “2,jiruan”,“3,jiaoyu”。
(12)查询名字为 jiruan 的记录。
(13)把数据 id 等于 1 的名字 jiruan 更改为 jr。
(14)在表中插入 age 字段,类型 tinyint(2)。
(15)删除 test 表中的所有数据,并查看。
(16)删除表 test 和 jsoft 数据库并查看
(17)在表中插入手机号字段(shouji),类型 char(11)。
(18)所有字段上插入 2 条记录(自行设定数据)
insert into phone values(1,"张三"),(2,"李四");
(19)查询手机号以 135 开头的,名字为 jsoft 的记录(提前插入)。
select * from phone where number like "123%" and name="jsoft";
(20)收回 jsoft 用户的 select 权限。
(21)删除 jsoft 用户