数据库基本知识
基本操作
增
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:非主键字段不能相互依赖。
事务