目标:创建一个schooled数据库:
创建学生表(列,字段) 使用SQL创建
学号int 登录密码varchar(20)姓名,性别varchar(2)出生日期(datatime)
家庭住址,Email
注意点,使用英文() 表的名称 和字段尽量使用``扩起来
AUTO_INCREMENT 自增,字符串使用,单括号括起来
所有的语句后加,(英文的),最后一个不用加
PRIMARY KEY 主键 ,一般一个表只有一个唯一的主键!
1、CREATE DATABASE IF NOT EXISTS schooled;
2、创建表students
CREATE TABLE IF NOT EXISTS `students`()
`id` int(4) not null auto_increment comment '学号'
`name` varchar(2) not null Default '匿名' comment '姓名',
show create database school 查看创建数据库语句
show create table student 查看student数据表定义的语句
修改,删除表
alter TABLE TEACHER RENAME AS TEACHER1
333,MySQL的数据管理
3.1 外键 了解即可(约束)
3.2 DML 语言全部记住背下来
3.3 添加
3.4修改delete
CREATE TABLE IF NOT EXISTS `subject`(
`SubjectNo` INT(4) NOT NULL AUTO_INCREMENT COMMENT 'SubjectNo',
`SubjectName` VARCHAR(20) NOT NULL COMMENT 'SubjectName',
`ClassHour` VARCHAR(4) NOT NULL COMMENT 'ClassHour',
`GradeId` VARCHAR(2) NOT NULL COMMENT 'ClassHour',
PRIMARY KEY (`SubjectNo`)
)ENGINE=INNODB DEFAULT CHARSET=utf8mb4
INSERT INTO `subject`(`SubjectNo`,`SubjectName`,`ClassHour`,`GradeId`) VALUES (1,'高等数学-1',110,1),(2,'高等数学-2',110,2),
(3,'高等数学-3',110,3),(4,'高等数学-4',110,4);
CREATE TABLE IF NOT EXISTS `student` (
`StudentNo` INT(4) NOT NULL COMMENT '学号',
`LoginPwd` VARCHAR(20) NOT NULL ,
`StudentName` VARCHAR(20) DEFAULT NULL COMMENT '学生姓名',
`Sex` TINYINT(1) DEFAULT NULL COMMENT '性别,取值0或1',
`GradeId` INT(11) DEFAULT NULL COMMENT '年级编号',
`Phone` VARCHAR(50) NOT NULL COMMENT '联系电话,允许为空,即可选输入',
`Address` VARCHAR(250) NOT NULL COMMENT '地址,允许为空,即可选输入',
`BornDate` DATETIME DEFAULT NULL COMMENT '出生日期',
`Email` VARCHAR(50) NOT NULL COMMENT '邮箱账号,允许为空,即可选输入' ,
`IdentityCard` VARCHAR(18) DEFAULT NULL COMMENT '身份证号',
PRIMARY KEY (`StudentNo`),
UNIQUE KEY `IdentityCard` (`IdentityCard`),
KEY `Email` (`Email`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
INSERT INTO `student` VALUES (100000,111111,'周丹',1,1,15762271223,'山东省青岛市黄岛区',20080808,'test@qq.com','123456789abcdefghi');
CREATE TABLE IF NOT EXISTS `subject`(
`SubjectNo` INT(4) NOT NULL AUTO_INCREMENT COMMENT 'SubjectNo',
`SubjectName` VARCHAR(20) NOT NULL COMMENT 'SubjectName',
`ClassHour` VARCHAR(4) NOT NULL COMMENT 'ClassHour',
`GradeId` VARCHAR(2) NOT NULL COMMENT 'ClassHour',
PRIMARY KEY (`SubjectNo`)
)ENGINE=INNODB DEFAULT CHARSET=utf8mb4
INSERT INTO `subject`(`SubjectNo`,`SubjectName`,`ClassHour`,`GradeId`) VALUES (1,'高等数学-1',110,1),(2,'高等数学-2',110,2),
(3,'高等数学-3',110,3),(4,'高等数学-4',110,4);
CREATE TABLE IF NOT EXISTS `student` (
`StudentNo` INT(4) NOT NULL COMMENT '学号',
`LoginPwd` VARCHAR(20) NOT NULL ,
`StudentName` VARCHAR(20) DEFAULT NULL COMMENT '学生姓名',
`Sex` TINYINT(1) DEFAULT NULL COMMENT '性别,取值0或1',
`GradeId` INT(11) DEFAULT NULL COMMENT '年级编号',
`Phone` VARCHAR(50) NOT NULL COMMENT '联系电话,允许为空,即可选输入',
`Address` VARCHAR(250) NOT NULL COMMENT '地址,允许为空,即可选输入',
`BornDate` DATETIME DEFAULT NULL COMMENT '出生日期',
`Email` VARCHAR(50) NOT NULL COMMENT '邮箱账号,允许为空,即可选输入' ,
`IdentityCard` VARCHAR(18) DEFAULT NULL COMMENT '身份证号',
PRIMARY KEY (`StudentNo`),
UNIQUE KEY `IdentityCard` (`IdentityCard`),
KEY `Email` (`Email`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
INSERT INTO `student` VALUES (100000,111111,'周丹',1,1,15762271223,'山东省青岛市黄岛区',20080808,'test@qq.com','123456789abcdefghi');
INSERT INTO `student` VALUES (100001,111112,'周2丹',1,1,15762271223,'山东省青岛市黄岛区',20080808,'test@qq.com','123476789abcdefghi');
INSERT INTO `student` VALUES (100002,111113,'周3丹',1,1,15762271223,'山东省青岛市黄岛区',20080808,'test@qq.com','123486789abcdefghi');
INSERT INTO `student` VALUES (100004,111114,'周4丹',1,1,15762271223,'山东省青岛市黄岛区',20080808,'test@qq.com','173456789abcdefghi');
INSERT INTO `student` VALUES (100005,111115,'周5丹',1,1,15762271223,'山东省青岛市黄岛区',20080808,'test@qq.com','127456789abcdefghi');
INSERT INTO `student` VALUES (100006,111116,'周6丹',1,1,15762271223,'山东省青岛市黄岛区',20080808,'test@qq.com','123476789abcdefghi');
INSERT INTO `student` VALUES (100007,111117,'周8丹',1,1,15762271223,'山东省青岛市黄岛区',20080808,'test@qq.com','1234586789abcdefghi');
INSERT INTO `student` VALUES (100008,111118,'周7丹',1,1,15762271223,'山东省青岛市黄岛区',20080808,'test@qq.com','123456389abcdefghi');
INSERT INTO `student` VALUES (100003,111119,'周9丹',1,1,15762271223,'山东省青岛市黄岛区',20080808,'test@qq.com','123446789abcdefghi');
--查询
SELECT * FROM student
SELECT * FROM result
--指定字段查询
SELECT `StudentNo`,`StudentName` FROM student
--起别名 给查询结果起一个别名 AS
SELECT `StudentNo` AS 学号,`StudentName` AS 学生姓名 FROM student
--函数 concat(A,B)
SELECT CONCAT('姓名: ',StudentName) AS 新名字 FROM student
-------=========================查询====================================--------
--查询姓李的同学
--like 结合%(代表0到任一字符) (一个字符)
SELECT `StudentNO` ,`StudentName` FROM student
WHERE StudentName LIKE '周%'
SELECT `StudentNO` ,`StudentName` FROM student
WHERE StudentName LIKE '周_'
SELECT `StudentNO` ,`StudentName` FROM student
WHERE StudentName LIKE '周__'
SELECT `StudentNO` ,`StudentName` FROM student
WHERE StudentName LIKE '%3%'
SELECT `StudentNo` ,`StudentName` FROM student
WHERE StudentNo IN (100000,100001,100002)
-------=========================连表查询================================--------
--jion理论
--查询参加考试的同学(学号,姓名,科目编号,分数)
SELECT * FROM student
SELECT * FROM result
SELECT s.StudentNo,StudentName,SubjectNo,StudentResult
FROM student AS s
INNER JOIN result AS r
WHERE s.StudentNo=r.StudentNo
/*--思路
1、分析需求,分析要查询的字段来自那个表
2、确定使用那种连接查询?7中
确定交叉点,(这两个表哪些数据是相同的)
判定条件:学生表中的studentNO=成绩表中的studentno
*/--思路
--right jion
SELECT s.StudentNo,StudentName,SubjectNo,StudentResult
FROM student s
RIGHT JOIN result r
ON s.StudentNo=r.StudentNo