Mysql2

1.创建表

create table if not exists student(
	id int(4) not null auto_increment comment '学号',
	name varchar(30) not null defalut '匿名' comment '姓名',
	primary key(id)
)engine=innodb  default charset=utf8;

not exists 是否存在
not null 不为空
auto_increment 自动增长
comment 列注释
defalut 默认值
primary key 主键
engine=innodb 默认引擎

2.数据库引擎
INNODB 默认使用
MYISAM 早些年使用

MYSIAMINNODB
不支持事务支持事务
数据行锁定不支持支持数据行锁定
不支持外键约束支持外键约束
全文索引支持不支持全文索引
表空间较小较大,为2倍

常规使用:
MYSIAM:节约空间,速度较快
INNODB:安全性较高,事务的处理,多表多用户操作

所有的数据文件都存在data目录下

MYSQL引擎在物理文件上的区别:
1.INNODB在数据库表中只有*.frm文件 and 上级目录下的ibdata1文件
2.MYSIAM对应的文件
1.frm -表结构的定义文件
2.
.MYD 数据文件(data)
3.*.MYI 索引文件(index)

设置数据库表的字符集编码
charset=utf8
不设置的话,会是mysql默认的字符集编码~(不支持中文)
默认为latin1
1.修改默认编码
在my.ini中character-set-server=utf8

外键
创建表的时候没有外键关系

alter table student
add constraint fk_gradeid foregin key (gradeid) references grade (gradeid)

不建议多个表的数据库的添加外键

最佳实践:

  • 数据库就是单纯的表,只能用来存数据,只有行(数据)和列(字段)
  • 我们想使用多张表的数据,想使用外键(程序去实现)

delete删除问题:重启数据库,现象:

  • InnoDB 自增列会重1开始(存在内存中,断电即失)
  • MySiam 继续从上一个自增量开始(存在文件中,不会丢失)

去重 distinct
select distinct stuno from result

select version()–查询版本号
select @@auto_increment_increment --查询自增步数

MD5加密

事务
要么都成功,要么都失败
acid
原子性
一致性
持久性
隔离性

set autocommit=0;--关闭自动提交
start transaction --开始事务

update accout set money=money-500 where name ='A'
update accout set money=money+500 where name ='B'

commit;--提交,就被持久化了
rollback;--回滚

set autocommit=1;--恢复默认值

索引的分类
索引是帮助mysql高效获取数据的数据结构。提取句子主干,就可以 得到索引的本质:索引是数据结构
1、索引的分类

  • 主键索引 (primarykey)
    唯一标识,主键不可重复
  • 唯一索引(unique key)
    避免重复列出现,唯一索引可以重复,多个列都可以标识 唯一索引
  • 常规索引(key/index)
    默认的,index key关键字来设置
  • 全文索引(fulltext)
    在特定的数据库引擎才有,MySIAM
    快速定位

------------索引的使用------------------------
1.在创建表的使用给字段增加索引
2 创建完成之后,增加索引
–显示所有的索引

show index from table'表名'

–增加一个索引–

alter table '表名' add fulltext index '索引名字'('列名');
create index '索引名字' on '表名' '字段'

在这里插入图片描述

索引原则:

  1. 索引不是越多越好
  2. 不要对经常变动的数据加索引
  3. 小数据量的表不需要加索引
  4. 索引一般加在常用来查询的字段上

索引的数据结构
Hash类型的索引,
btree:innodb 的默认的数据结构

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值