SQL编程学习01

在正式开始学习前,我发现之前安装的MySQL忘记了root密码。

所以在这里补充一下找回root密码的方法:MySQL找回root密码

一、问题与解决:

1、在创建表的时候出现了「1046(ErrorCode:1046.No database select…)」的错误,具体解决办法如下:
在这里插入图片描述

2、更新表的内容时,出现如下错误:Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect.
解决办法:

show variables like 'SQL_SAFE_UPDATES';   -- 查看安全状态
SET SQL_SAFE_UPDATES = 0;   -- 关闭安全更新模式 

参考链接

二、扩展:

1、drop/ delete/ truncate 的区别:

  • delete/truncate:只删除表中的数据,而不删除表的结构。(和事务无关就用truncate;与事务有关或者想触发trigger就用delete)
  • drop:直接将整个表(数据和结构)删除

2、索引分类:

  • 主键索引:
    建立在主键上的索引,一张表只能有一个主键索引,索引列值不允许有空值,通常在创建表时一起创建。

  • 唯一索引:

在设计关系数据表的时候,看上去唯一的列,例如身份证号、邮箱地址等,因为他们具有业务含义,因此不宜作为主键。

但是,这些列根据业务要求,又具有唯一性约束:即不能出现两条记录存储了同一个身份证号。这个时候,就可以给该列添加一个唯一索引。

  • 普通索引:
    建立在普通字段上的索引。

  • 前缀索引:
    指对字符类型字段的前几个字符或者二进制类型字段的前几个bytes建立的索引,而不是在整个字段上建索引。
    前缀索引可以建立在类行为char, varchar, binary, varbinary的列上,可以大大减少索引占用的存储空间,也能提升索引的查询效率。

  • 全文索引:
    利用“分词技术”实现在长文本中搜索关键字的一种索引。
    最好在插入数据后在创建全文索引

  • 单列索引:
    建立在单个列上。

  • 多列索引:
    建立在多个列上。

三、练习

1、创建表

create table Addressbook
(
	regist_no integer not null,
    regist_name varchar(128) not null,
    address varchar(256) not null,
    tel_no char(10),
    mail_address char(20),
    primary key (regist_no)
);

2、添加一列

alter table Addressbook add column postal_code char(8) not null;

3、删除表

drop table Addressbook;  -- 表结构和内容都删除
truncate table Addressbook;  -- 只删除内容不删除结构

两种删除方式都可以有对应的方式进行恢复:参考链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值