mysql数据库应用试题_mysql数据库 (使用) 测试题

第二周周测

选择题:每题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

j

= 0

res

= False

#

matrix[i][j]

while

True:

if

i<0 or j==col:

break

if

matrix[i][j] > num:

#如果

左下角元素大于目标 上移

i-=1

elif

matrix[i][j] < num:

#如果

左下角元素小于目标 右移

j+=1

elif

matrix[i][j] == num:

res

= True

break

return

res

print(search(matrix,24))

给你一个长度为n的数组,其中只有一个数字出现了1次,其他均出现2次,问如何快速的找到这个数字。

list01

= [2,1,1,3,3,0,0]

list01.sort()

for

i in range(0,len(list01)-1,2):

if

list01[i] != list01[i+1]:

print(list01[i])

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值