mysql day13 表


create database if not exists sql_store2; -- 如果先前没有才创建
use sql_store2;
drop table if exists orders; -- 此时可删,重新创建
drop table if exists customers; -- 此时不能删除顾客表,因为orders依赖于customers;要删除顾客表,需要先删除订单表,放在上边
create table if not exists customers
(
	customer_id 	int 			primary key auto_increment,
	first_name 		varchar(50) 	not null,
	points 			int 			not null default 0,
	email 			varchar(255) 	not null unique
	-- character set latin1 -- 更改字符排序规则,也可为特定的列使用,即在列的类型后添加
);

create table orders
(
	order_id 		int 	primary key auto_increment,
	customer_id 	int 	not null,
	foreign key 	fk_orders_customers (customer_id) -- fk_子表名_父表名(需要添加外表的列名)
		references customers (customer_id)-- 这一列引用了顾客表中的顾客id列
        on update cascade -- 指定更新和删除的行为,及联或拒绝 set null/no action,在外间表中
        on delete no action -- 阻止或拒绝删除操作
);






-- 在已生成的表中修改
alter table customers -- 不要在生产环境下修改表,只在测试
	add last_name 	varchar(50) 	not null after first_name,-- 在firstname后添加
	add city	  	varchar(50) 	not null,
	modify column first_name varchar(55) default '',
	drop points
; 

alter table orders
	add primary key(order_id),-- 多个主键用,隔开
	drop primary key, -- 删除主键不需要添加列
	drop foreign key fk_orders_customers,
	add foreign key fk_orders_customers (customer_id)
		references customers (customer_id)
		on update cascade
		on delete no action;
        
-- 存储引擎
-- innoDB/默认 MylSAM/老版本
-- show engines -- 查看
-- 同个数据库有多个存储引擎
-- 可在设计模式右上角修改,也可表中修改
-- alter table customers
-- engine = InnoDB 
-- 不要在产出时更新引擎 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值