MySQL 生成表和主外键命令(details为表名)
DROP TABLE IF EXISTS `details`;
CREATE TABLE `details` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '采购单详情自增列',
`orderID` INT(11) UNSIGNED NOT NULL COMMENT '引用采购单的id',
`productID` INT(9) UNSIGNED NOT NULL COMMENT '引用商品的id',
`quantity` INT(9) UNSIGNED DEFAULT NULL COMMENT '该商品的采购数量',
PRIMARY KEY (`id`),
KEY `FK_details_product` (`productID`),
KEY `FK_details_order` (`orderID`),
CONSTRAINT `FK_details_order` FOREIGN KEY (`orderID`) REFERENCES `purchase_order` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `FK_details_product` FOREIGN KEY (`productID`) REFERENCES `product` (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
MongoDB命令
- 配置环境变量
- 在D盘建一个数据文件夹data
- 命令启动服务器27017端口 mongod --dbpath=d:/data 不要关闭dos窗口
- 客户端连接进入mongodb命令窗口 mongo localhost:27017 //默认连接进去先进的是test库
- 链接MongoDB数据库的命令:mongo IP地址:27017
- MongoDB的端口是27017 ; Mysql的端口是3306 ; oracle的端口1521 ; Redis的端口号:6379
- db 默认在test库下
Linux命令(product ,newsInfo,Brand是表名)
- db; 显示当前在哪个库里面
- use shop; 创建一个库名叫shop的数据库
- db.userInfo.insert({"name":"zhangsan","age":18}); //往shop数据库中添加newsInfo集合的一条文档数据
- db.userInfo.find(); //find里面没有加条件是查找newsInfo表集的全部数据
- show collections; //查看当前库下面有哪些表集,也可以说展示所有文档
- db.createCollection("product"); //创建一个新的集合,并显示创建名字product的表集
- for(var i=1;i<=10000;i++){ db.product.insert({"pName":"name"+i,"price":i}) } //利用For循环添加10000行数据
- db.product.count(); //统计一下该表中有多少个文档数据
- db.product.find(); //默认返回随机的20条文档数据
- db.product.find({"price":20}); //第一个json大括号里面加的是条件过滤,即“product”中找到价格为20的那条记录
- db.product.find({"price":10},{"_id":0}); //第二个json大括号里面是不希望哪些列查询出来就设置成0
- db.product.find().skip(0).limit(10); //从索引0开始,到10,显示这些数据
- db.product.find({},{"_id":0}).skip(0).limit(10); //不希望显示哪些列 设成0,例如"_id":0,id设为0,结果就不会显示id列,skip()起始位置;limit()选取条数
- db.product.find({},{"_id":0}).sort({"price":1}).skip(0).limit(10); //先使用find过滤和排除哪些列再使用sort进行排序
- db.product.find({},{"_id":0}).sort({"price":-1}).skip(0).limit(10); //{"price":-1}按价格倒序排序
- db.product.update({"price":100},{"price":99}); //更新要注意
- db.product.update({"price":101},{"pName":"name101","price":99}); //为避免有些列被冲掉要先查找出来修改局部之后再进行更新 db.product.update({"price":105},{"pName":"name105","price":106});
- db.product.remove({}); //如果没加条件是全部清空移除
- db.product.remove({"price":104}); //移除满足条件的元素
- db.product.remove({"price":106}) ; // 满足条件的全部数据文档行都会被移除
- db.dropDatabase(); //删除数据库
- db.product.find({"price":{$gt:9990}}).sort({"price":-1}).skip(0).limit(10); //$gte:大于等于;$lte:小于等于;$lt:小于;$gt:大于;$ne:不等于;
- db.product.find({$and:[{"price":{$gte:15}},{"price":{$lte:25}}]}); //And
- db.product.find({$or:[{"price":{$gte:9995}},{"price":{$lte:5}}]}); //Or
- mongodump -h localhost:27017 -d shop -o /usr/bak //将database里的数据库shop备份到目标文件/usr/bak中
- mongorestore -h localhost:27017 -d shop -directoryperdb /user/bak/shop //数据库被破坏,需恢复数据,则可使用此命令恢复,shop是数据库名
- db.表名.ensureIndex({"值不重复的列名":1}) ; //在某表(类)的某一列添加索引,使得查询速度变快,这一列的选择要求是此列不含有重复值,就像关系型数据库的主键,1是指执行该方法,添加索引之后查询还是采用find({"列名":"值"})进行查询