mysql测验

1.已知库表t_test中有以下记录

1  2005-05-09  优 98.1

2  2005-05-09  优 89.5

3  2005-05-09  优 86.5

4  2005-05-09  良 77.1

5  2005-05-10  良 75.3

6  2005-05-10  良 71.1

7  2005-05-10 及格 65.2

1.请写出构建t_test的SQL语句

2.根据上述记录内容,写出输入t_test表中的SQL语句

3.用一条语句,从表中查出优和良,各有多少条记录,平均分多少?

4.把及格记录的日期改为2005-05-11

 

修改mysql用户root密码的指令是什么?(B)

A、mysql –u root passwd test

B、mysqladmin –u root passwd test

C、mysql –u root – p test

D、mysql –u – passwprd test

现有一个关系,借阅(书号,书名,库存数,读者号,借期,还期)假如同一本书允许一个读者多次借阅,但不能同日对一种书借多本,则该关系模式的主键是(C)

A.书号 B.读者号 C.书号+读者号 D。书号+读者号+借阅

Int类型字段需要占多少存储空间(A)

A.4bytes B.1bytes C.8bytes D.16bytes

在一个启动时,mysql_install_db 脚本初始化MySQL系统,这个脚本创建(A)个数据库

A.mysql和test  B.user和test  C mysql和user

 

1.简述sql语句中Truncate和delete 的区别?

答:

--delete删除数据,保留表结构,可以回滚,如果数据量大,很慢

--truncate 删除所有数据,保留表结构,不可以回滚,一次全部删除所有数据,速度相对很快

 

2.取出表A中满足时间2006年1月1日至2006年1月31日的记录

 

select * from A where time benteen '2006-01-01' and '2006-01-31';

 

3.在SQL中、建立、修改和删除数据库中基本表结构的命令分别为   create 、 alter   、和 drop  命令

Mysql数据库的默认端口是 3306

 

1.NULL是指(A)

A.无任何值  B.0   C.空格 D.空字符

2.sql语言引入了视图的概念,下列说法正确的是(C)

A.视图由若干表组成,独立存储在数据库中

B.视图的存在提高了并发程度

C.试图与基本表的最大区别在于它是逻辑定义的虚表

D.视图简化用户观点,但不提高查询效率

3.当事务执行出现”死锁”时,系统执行(C)操作。

A.SAVE  B.REDO  C. ROLLBACK   D.COMMIT

4.下面哪个SQL语法是错误的(BD)

A.select*from TableA

B.insert TableA set…..

C.update TableA set…..

D.delete * from TableA

5.要在Oracle中定义SQL查询,下列哪个数据库对象不能直接从select语句中引用(D)

A表  B.序号 C.索引  D.视图

 

 

1.MySQL备份命令?MySQL如何对smart用户授权访问,密码为123456,请写出命令?

简单说一下mysql忘记密码后该如何处理?

mysqldmp -uroot -p -B test > test.sql

GRANT ALL ON *.* TO smart@'%' IDENTIFIED BY '123456';

 

 

 

 

  1. 表:table1 (FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级、成绩两个字段

select Fclass,max(Fscore) from table1 group by Fclass;

Mysql中,数据库db1中表abc,将ad中的uid进行倒序排序,并只取出前20行

select * from db1.abc order by db1.abc.uid desc limit 0,20;

如何用mysql命令进行备份和恢复?以test库为例,创建一个备份,并再用此备份进行恢复。

1、逻辑备份+二进制日志

2、mysqldmp -uroot -p -B test > test.sql

 

 

 

 

Mysql中,根据需求写出sql语句

信息数据表submit_message_send_history_201503

字段:insert_time为时间,change_count为计费条数(每条信息计费条数不同,可能为1或大于1)

求:统计并展示出每天的计费条数。

select insert_time,count(*) from submit_message_send_histroy_201503 group by insert_time;

 

12.如何查看mysql是否锁表

可直接在mysql命令行执行:show engine innodb status\G;

查看造成死锁的sql语句,分析索引情况,然后优化sql然后show processlist;

show OPEN TABLES where In_use > 0; 这个语句记录当前锁表状态

 

13.数据表monitor_info,将monitor_command 字段中的“info.log”字符串,替换为“info01.log”写出替换的完整sql语句。

update monitor_info set monitor_command="info01.log" where monitor_command="info.log";

 

 

 

 

 

 

 

 

根据题目条件,写出相应的命令:

(一 学生表:Student (Sno, Sname, Ssex , Sage,  Sdept)

                  学号,姓名,性别,年龄,所在系   Sno为主键

课程表:Course  (Cno,   Cname,)

                   课程号,课程名    Cno为主键

学生选课表:SC (Sno,   Cno,     Score)

                   学号,课程号,成绩   Sno,Cno为主键

 

  1. 用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是 “计算机”。

create table student1(sno int(10) primary key,sname varchar(20) unique,ssex varchar (10),ssage int(10),sdept varchar(20) default '计算机',check(ssex in ('男','女')));

create table course(cno int(10) primary key,cname varchar(16)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

create table sc(sno int(10),cno int(10), score int(10),primary key (sno,cno),foreign key(sno) references student1(sno),foreign key(cno) references course(cno));

 2.修改student 表中年龄(age)字段属性,数据类型由int 改变为smallint。

 

  1. 为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX 。

      create unique index sc_index on sc(sno asc,cno asc);

4.向student表添加一条纪录:200201,张三,男,21,计算机。

 

5.选修了2号课程且成绩低于70的的学生每人成绩增加5分。

update sc set score=score+5 where cno=2 and score<=70;

6.删除选修了课程名称为“单片机”的学生的选课成绩记录。

delete from sc where cno=(select cno from course where cname='单片机');

7.创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。

Mcreate view stu_info1 as select student1. sname, student1. ssex, course. cno,sc.score from student1,sc,course where student1.sno=sc.sno and sc.cno=course.cno;

8.查询不及格学生的姓名。

select sname,score from sc,student1 where sc.sno=student1.sno and score<60;

 

9.查询选修四门以上课程的学生学号。

select sno from (select sno,count(*) num from sc group by sno)t where t.num>=4;

 

10.查询2号课程的最高分的学生的姓名。

select sname from student1 where sno=(select sno from (select sno,max(score) from sc where cno=2)t);

 

为保证答案一致性,表中添加数据如下:

 

准备插入数据

INSERT INTO `student1` VALUES (1001,'张三','男',21,'计算机');

INSERT INTO `student1` VALUES (1002, '李四', '男', 20, '英语');

INSERT INTO `student1` VALUES (1003, '王五', '男', 22, '计算机');

INSERT INTO `student1` VALUES (1004, '赵六', '女', 20, '英语');

INSERT INTO `student1` VALUES (1005, '钱七', '男', 21, '计算机');

INSERT INTO `student1` VALUES (1006, '孙八', '男', 20, '计算机');

INSERT INTO `student1` VALUES (1007, '胡九', '女', 19, '计算机');

INSERT INTO `student1` VALUES (1008, '武十', '男', 20, '计信管');

 

mysql> select * from Student1;

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

| Sno  | Sname  | Ssex | Ssage | Sdept     |

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

| 1001 | 张三   | 男   |    21 | 计算机    |

| 1002 | 李四   | 男   |    20 | 英语      |

| 1003 | 王五   | 男   |    22 | 计算机    |

| 1004 | 赵六   | 女   |    20 | 英语      |

| 1005 | 钱七   | 男   |    21 | 计算机    |

| 1006 | 孙八   | 男   |    20 | 计算机    |

| 1007 | 胡九   | 女   |    19 | 计算机    |

| 1008 | 武十   | 男   |    20 | 计信管    |

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

CREATE TABLE `Course` (

  `Cno` int(4) unsigned NOT NULL DEFAULT '0' COMMENT '课程号',

  `Cname` varchar(16) DEFAULT NULL COMMENT '课程名',

  PRIMARY KEY (`Cno`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

 

INSERT INTO `course` VALUES (1, '英语');

INSERT INTO `course` VALUES (2, '高数');

INSERT INTO `course` VALUES (3, '计算机');

INSERT INTO `course` VALUES (4, '单片机');

INSERT INTO `course` VALUES (5, 'java');

INSERT INTO `course` VALUES (6, 'MySQL');

INSERT INTO `course` VALUES (7, 'Linux');

INSERT INTO `course` VALUES (8, 'C++');

 

mysql> select * from course;

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

| Cno | Cname     |

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

|   1 | 英语      |

|   2 | 高数      |

|   3 | 计算机    |

|   4 | 单片机    |

|   5 | java      |

|   6 | MySQL     |

|   7 | Linux     |

|   8 | C++       |

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

8 rows in set (0.00 sec)

 

INSERT INTO `sc` VALUES (1001, 2, 45);

INSERT INTO `sc` VALUES (1001, 3, 85);

INSERT INTO `sc` VALUES (1001, 4, 74);

INSERT INTO `sc` VALUES (1002, 1, 90);

INSERT INTO `sc` VALUES (1003, 1, 54);

INSERT INTO `sc` VALUES (1003, 2, 62);

INSERT INTO `sc` VALUES (1003, 3, 81);

INSERT INTO `sc` VALUES (1003, 4, 80);

INSERT INTO `sc` VALUES (1003, 5, 72);

INSERT INTO `sc` VALUES (1003, 6, 88);

INSERT INTO `sc` VALUES (1003, 7, 77);

INSERT INTO `sc` VALUES (1003, 8, 67);

INSERT INTO `sc` VALUES (1004, 1, 92);

INSERT INTO `sc` VALUES (1005, 1, 53);

INSERT INTO `sc` VALUES (1005, 4, 63);

INSERT INTO `sc` VALUES (1005, 7, 77);

INSERT INTO `sc` VALUES (1006, 1, 70);

INSERT INTO `sc` VALUES (1006, 2, 82);

INSERT INTO `sc` VALUES (1006, 4, 78);

INSERT INTO `sc` VALUES (1006, 6, 68);

INSERT INTO `sc` VALUES (1006, 8, 55);

INSERT INTO `sc` VALUES (1007, 2, 76);

INSERT INTO `sc` VALUES (1007, 4, 90);

INSERT INTO `sc` VALUES (1007, 6, 89);

INSERT INTO `sc` VALUES (1008, 1, 81);

INSERT INTO `sc` VALUES (1008, 2, 48);

 

 

mysql> select * from sc;

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

| Sno  | Cno | Score |

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

| 1001 |   2 |    45 |

| 1001 |   3 |    85 |

| 1001 |   4 |    74 |

| 1001 |   6 |    80 |

| 1001 |   7 |    88 |

| 1002 |   1 |    90 |

| 1003 |   1 |    54 |

| 1003 |   2 |    62 |

| 1003 |   3 |    81 |

| 1003 |   4 |    80 |

| 1003 |   5 |    72 |

| 1003 |   6 |    88 |

| 1003 |   7 |    77 |

| 1003 |   8 |    67 |

| 1004 |   1 |    92 |

| 1005 |   1 |    53 |

| 1005 |   4 |    63 |

| 1005 |   7 |    77 |

| 1006 |   1 |    70 |

| 1006 |   2 |    82 |

| 1006 |   4 |    78 |

| 1006 |   6 |    68 |

| 1006 |   8 |    55 |

| 1007 |   2 |    76 |

| 1007 |   4 |    90 |

| 1007 |   6 |    89 |

| 1008 |   1 |    81 |

| 1008 |   2 |    48 |

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

28 rows in set (0.00 sec)

以上是我自己做的,部分题参考他人,答案仅供参考,答案准确性未知,部分题不会做,未进行解答。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值