数据库基本知识

基本操作

INSERT INTO 表名 VALUES(值1,值2)

DELETE FROM 表名 WHERE 列名=某值

UPDATE 表名 SET 列1=值1,列2=值2 WHERE 列名称 = 某值

SELECT * FROM 表名

连表查询

SELECT * FROM 表A INNER JOIN 表B  ON 表A列名=表B列名

左连接和右连接的区别

举例

(1)创建class表

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for class
-- ----------------------------
DROP TABLE IF EXISTS `class`;
CREATE TABLE `class` (
  `cid` int(11) NOT NULL AUTO_INCREMENT,
  `cname` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`cid`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of class
-- ----------------------------
INSERT INTO `class` VALUES ('1', '一班');
INSERT INTO `class` VALUES ('2', '二班');
cid cname
1 一班
2 二班

 

(2)创建student表

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `sid` int(255) NOT NULL AUTO_INCREMENT,
  `sname` varchar(255) DEFAULT NULL,
  `cid` int(255) DEFAULT NULL,
  PRIMARY KEY (`sid`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', '小波', '1');
INSERT INTO `student` VALUES ('2', '小平', '1');
INSERT INTO `student` VALUES ('3', '小辉', '3');
sid sname cid
1 小波 1
2 小平 1
3 小辉 3

(3)结果分析

左连接

SELECT cname,sname FROM class LEFT JOIN student ON student.cid=class.cid
cname sname
一班 小波
一班 小平
二班  

 

右连接

SELECT cname,sname FROM class RIGHT JOIN student ON student.cid=class.cid
cname sname
一班 小波
一班 小平
  小辉

范式

1NF:字段不可分。
2NF:有主键,非主键字段依赖主键。
3NF:非主键字段不能相互依赖。

事务

 

posted @ 2018-08-05 22:29  cxbit  阅读(104)  评论(0编辑  收藏  举报