跟着小豆学SQL:6 [基础]存储引擎
show engines ; -- 可以看到mysql 支持的引擎,其中innodb是默认的引擎,如果没有特殊需求,请默认使用它 /* 特点 InnoDB MyISAM Memory 存储限制 64TB 有 有 事务安全 支持 - - 锁机制 行锁 表锁 表锁 B+tree索引 支持 支持 支持 Hash索引
show engines ; -- 可以看到mysql 支持的引擎,其中innodb是默认的引擎,如果没有特殊需求,请默认使用它 /* 特点 InnoDB MyISAM Memory 存储限制 64TB 有 有 事务安全 支持 - - 锁机制 行锁 表锁 表锁 B+tree索引 支持 支持 支持 Hash索引
# 查看是否开启自动提交 select @@autocommit; # 1为开启,你的每次操作会被自动提交 set @@autocommit = 0; # (全局,但只对当前会话有效 # 设置为0后操作需要手动commit update product set price = 99 where product_name = 'A'; # 执行上面的代码再看看product,是不是价格还没有变? c
use test; select * from user u, product p; # 合并查询,会显示所有表数据 user [as] u 设置别名,as可以省略 # 内联查询 查询交集部分 select u.name, p.product_name from user u, product p where p.user_id = u.id; # 外联查询 # --左外联查询 可以查询左表所有数
# 现在我们需要添加约束,这可以保证你所插入的数据是符合你想要的 # primary key 主键约束,固定且不唯一 # auto_increment 自增长约束,设置后此字段可不设数据由数据库自动设置,常用于id,通常配合主键使用 # not null 不为空,指定字段值不为null # unique 唯一,此字段内所有列的数据不能够与任何此列下的数据重复 # check 逻辑约束,可通过简单判
# 请先安装datagrip再在root数据库中运行下面的命令 # 好的,你应该没有把我们创建的test数据库删除吧?让我们继续 # 增加 insert into user(username,password) values(1,2); # 看看user表吧 select * from user; # 是不是是1,1,2? # 你已经插入了数据!为什么没有为user_id指定?因为这个字段是