SQL错题集

1、SQL语句可以返回table1中的全部的key:select tabel1.key from table1 left outer join tabel2 on table1.key=table2.key
2、将Person表中Name字段为"Lilei"的AGE字段递增1:UPDATE Person SET AGE = AGE + 1 WHERE Name = ‘Lilei’
3、用户表中有两列name/country,查询用户表中每个国家(country)的人数:
select count(*) from users group by country
4、将编码为gbk的字符串s转码为utf-8编码:s.decode(‘gbk’).encode(‘utf-8’)

规范化处理数据冗余:
第一范式:表中不应该有重复组。列重复拆成另外一张表;行重复拆成多行
第二范式:非键属性和键(主键)属性间没有部分依赖
第三范式:非键属性和键(主键)属性间没有传递依赖

Mysql数据库引擎MyISAM:
如果表主要是用于插入新记录和读出记录,那么选择MyISAM引擎能实现处理高效率;
在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行更新操作(UPDATE、DELETE、INSERT等)前,会自动给涉及的表加写锁;
不支持事务。

DELETE和TRUNCATE TABLE都能删除表中的数据,不同之处:
TRUNCATE TABLE比DELETE的速度快;
在删除时如果遇到任何一行违反约束(主要是外键约束),TRUNCATE TABLE仍然删除,只是表的结构及其列、约束、索引等保持不变,但DELETE是直接返回错误;
对于被外键约束的表,不能使用TRUNCATE TABLE,而应该使用不带WHERE语句的DELETE语句;
如果想保留标识计数值,要用DELETE,因为TRUNCATE TABLE会对新行标志符列使用的计数值重置为该列的种子

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值