.sql是SQL的脚本文件,通常用来批量执行SQL语句,一键式生成数据库表。
⚫️创建sql文件,进行编写
vim db.sql //建表建库文件都写入其中
create dadabase if not exists order_system2;
use order_system2;
create table if not exists dish_table( //创建菜品表,设置菜品名的自增主键
dish_id int not null primary key auto_increment, //设为主键not null primary key,自增auto_increament。如何生成分布式系统中的唯一主键:借助MySQl内置的自增主键就不行了,可以1.搞一个中心服务器,专门负责生成主键,任何其他需要生成主键的服务器,都去找中心服务器来申请(效率低,容错性差)。2.使用特定的算法来生成,先做一个 机房id,再来一个主机id,确定唯一台主机(不同的主机肯定不一样),再增加时间戳,再增加随机数,可以的到一个唯一id(更加靠谱)。
name varchar(50),
price int); //用分做单位,因为浮点数的精度问题
insert into dish_table values(null,'红烧肉',2200);
insert into dish_table values(null,'回锅肉',2000);
insert into dish_table values(null,'梅菜扣肉',2800);
insert into dish_table values(null,'爆炒猪头肉',4300);
creat table if not exists order_table( //创建订单信息表
order_id int not null primary key auto_increment,//订单号
table_id varchar(50), //桌号
time varchar(50), //时间
dishes varchar(1024), //菜品信息(订单里的很多菜,来指定dish_id,所以用一个字符串来储存,之后可以在字符串中识别出dish_id就可以)
status int); //订单是否关闭,简单约定(0表示开启,1表示关闭)
insert into order_table values(null,'武当派','2019/08/16','1,2,3',0);
insert into order./_table values(null,'峨眉派','2019/08/16','1,3',0);
insert into order_table values(null,'青城派','2019/08/16','2,3',0);
⚫️ 执行.文件sql
1️⃣ 重定向执行
mysql -uroot < db.sql //<(小于号的重定向是标准输入重定向,针对0号文件);>(这个大于号的重定向是标准输出重定向,针对1号文件) ;2>(标准错误重定向,针对2号文件)
2️⃣ 在mysql控制台执行
source 【sql脚本pwd\文件名】
或
者
\color{green}{或者}
或者 \.【sql脚本pwd\文件名】