选择题:每题3分,共45分
1.数据表students中likes字段数据类型为set(“python”,”study”,”MySQL”),当在表中插入该字段值时以下正确的是?(AC)多选
A. “Python,MySQL”
B. “Python”,”MySQL”
C. ‘Python,MySQL’
D. Python,MySQL,MongoDB
解析: MySQL数据类型中的枚举类型分为单选enum()和多选set(),在set()类型的字段插入记录有两个要求:1、字段值必须在给定值的范围内选择;2、选择多个值时用一对引号把所有值引起来,不同值之间用逗号隔开。
2.您有一个包含有关您学校中所有学生的信息的表。要更改表中学生的名字,应使用哪个SQL关键字?(B)单选
A. change
B. update
C. insert
D. select
解析:change为修改表名,update为更新表记录,insert为插入表记录,select为查询表记录。
3.在表中插入记录时,如果不给该字段赋值,该字段返回系统当前时间的数据类型是?( A)单选
A. timestamp
B. datetime
C.now
D.nowtime
解析:MySQL数据类型中的日期时间类型有两个函数,datetime()和timestamp(),datetime()在不给值时默认返回值为NULL,而timestamp()在不给值时会默认返回系统的当前时间。
4.有一个学生信息表,其中一个字段成绩定义如下:
score
int(2)
则该字段可以插入如下哪几条记录?(ABCD)多选
A.99
B.100
C.60
D.3
解析:int数据类型为大整型,有符号存储范围为-2**31
~ +2**31 –
1,int(2)括号中的2仅仅为显示宽度,和存储数据的位数无关,而字符类型的宽度则为实际存储数据的宽度,二者在本质上是不同的。
5.有一张顾客信息表customer,包含如下字段:
id
int primary key auto_increment,
name
varchar(20),
order
varchar(20)
表中有如下2条记录:
1张三iphone
2李四ipad
现执行如下两条SQL命令,
delete
from customer where id = 2;
insert
into customer(name,order)values(“王五”,”iwatch”)
则customers表中
王五 该条记录的内容为?:(C)单选
A.
1王五iwatch
B.
2王五iwatch
C.
3王五iwatch
D.
NULL王五iwatch
解析:表中id字段一般为能唯一锁定一条记录的字段,一旦表中id字段设置为了主键并附加自增长属性,则在插入记录时如未给id字段赋值,会在最后一次输入的id字段值的基础上+1,如最后一条或多条记录被删除则会继续+1。
6.一个数据库包含两个表,分别为Customer和Order.
Order外键关联Customer表主键
执行以下语句:
delete
from Order where CustomerID=209;
结果是什么?(D)单选
A.从Customer表中删除CustomerID为209的记录
B.从Order表中删除CustomerID为209的所有记录,并从Customer表中删除CustomerID为209的记录
C.从Order表中删除CustomerID为209的第一条记录
D.从Order表中删除CustomerID为209的所有记录
解析:本题考查delete语句的使用,
无论delete语句中涉及到几张表,删除记录时删除的是delete
from后所跟的表名中的相关记录。
7.哪条语句会在students表中删除未输入电话号码的行?(C)单选
A.
delete from students where phone is not null
B.
delete from students where phone = “”
C.
delete from students where phone is null
D.
delete from students phone = null
解析:NULL为空值,””为空字符串,匹配空值(NULL)必须用is或者is
not,而匹配空字符串(””)则用=或者!=。
8.以下能够删除一列的是?:(B)单选
A.
alter
table students remove age
B.
alter
table students drop age
C.
alter
table students delete age tinyint unsigned
D.
alter
table students drop age tinyint unsigned
解析:删除表字段使用关键字drop,且要删除的字段名之后无需给定该字段的数据类型,delete是删除表中相关记录,和字段操作无关。
9.
update和delete语句的区别是什么?(A)单选
A.
update语句不会从表中删除行
B.一条update语句只能更改一行
C.
delete语句不能用where子句
D.
delete语句只能在存储过程中运行
解析:update语句是更新表记录,update语句后不加where条件会将表中所有记录更新,delete语句后不加where条件会将表中所有记录删除。
10.向数据库中插入一条记录用哪一项?(D)单选
A.CREATE
B.SAVE C.UPDATE D.INSERT
解析:INSERT为mysql中的插入操作语句
简答题(30分)
1.小明家必须要过一座桥。小明过桥最快要1秒,小明的弟弟最快要3秒,小明的爸爸最快要6秒,小明的妈妈最快要8秒,小明的爷爷最快要12秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定。过桥时候是黑夜,所以必须有手电筒,小明家只有一个手电筒,而且手电筒的电池只剩30秒就将耗尽。小明一家该如何过桥,请写出详细过程。
#让最快的人多跑几次
#
3+1 6+1 8+1 12 = 32s
#让慢的一起走
#
3+1 12+3 6+1 3 = 29s
#1.小明和弟弟先走
小明回来
#2.妈妈和爷爷走
弟弟回来
#3.小明和爸爸走
小明回来
#4.小明和弟弟走
import
random
while
True:
#a岸
a
= [1,3,6,8,12]
#b岸
b
= []
#速度
SPEED
= 0
#流程
step
= []
while
True:
#随机获取两个a中的元素
x
= random.sample(a,2)
#将元素放入b中
b.extend(x)
#从a中删除元素
a.remove(x[0])
a.remove(x[1])
step.append(x)#将随机组合添加到列表
step.append(max(x))#将随机组合的过河时间也添加到列表
if
not a:
break
#从b中随机找一个到a
y
= random.sample(b,1)
a.extend(y)
b.remove(y[0])
step.append(y[0])#记录
返回的时间
step.append(‘||‘)
#
print(step)
for
i in step:
if
type(i) == int:
SPEED
+= i
if
SPEED<=30:
break
print(step)
编程题(每题20分,共40分)
1.给你一个n*m的二维数组,每个元素保证递增,每列元素保证递增,试问如何找到某个数字,或者判断这个数字不存在。
matrix
= [
[2,4,6,9],
[13,15,17,19],
[24,26,27,28]
]
def
search(matrix,num):
row
= len(matrix)
col
= len(matrix[0])
i
= row-1
var cpro_id = "u6292429";
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:https://www.cnblogs.com/yongqi-wang/p/13277481.html