create table Student(SId varchar(10),Sname varchar(10),Sage datetime,Ssex varchar(10)); insert into Student values('01' , '赵雷' , '1990-01-01' , '男'); insert into Student values('02' , '钱电' , '1990-12-21' , '男'); insert into Student values('03' , '孙风' , '1990-05-20' , '男'); insert into Student values('04' , '李云' , '1990-08-06' , '男'); insert into Student values('05' , '周梅' , '1991-12-01' , '女'); insert into Student values('06' , '吴兰' , '1992-03-01' , '女'); insert into Student values('07' , '郑竹' , '1989-07-01' , '女'); insert into Student values('09' , '张三' , '2017-12-20' , '女'); insert into Student values('10' , '李四' , '2017-12-25' , '女'); insert into Student values('11' , '李四' , '2017-12-30' , '女'); insert into Student values('12' , '赵六' , '2017-01-01' , '女'); insert into Student values('13' , '孙七' , '2018-01-01' , '女');
时间: 2023-08-20 16:46:56 浏览: 84
这是一段 SQL 代码,用于创建名为 Student 的表并向其中插入数据。表包括四个字段:SId,Sname,Sage 和 Ssex,分别表示学生的学号、姓名、出生日期和性别。每个学生都有一个唯一的学号,姓名和性别是字符串类型,出生日期是 datetime 类型。
插入了 12 条学生记录,其中有一条记录的学号是 08,但是没有插入。另外,有重复的姓名和不合法的出生日期。
如果您要使用这段代码,请确保数据库中不存在名为 Student 的表,并根据需要修改数据。
相关问题
create table student1_log ( id int , new_sno varchar(9), old_sno varchar(9), new_sname varchar(20), old_sname varchar(20), new_sex varchar(2), old_sex varchar(2), new_age int, old_age int, new_sdept varchar(20), old_sdept varchar(20), user varchar(50), modify_time datetime, primary key Auto_incrment (id) ); delimiter $$ CREATE TRIGGER student1_trigger AFTER UPDATE ON Student1 FOR EACH ROW BEGIN INSERT INTO Student1_log VALUES ( NEW.Sno, OLD.Sno, NEW.Sname, OLD.Sname, NEW.ssex, OLD.ssex, NEW.sage, OLD.sage, NEW.sdept, OLD.sdept, USER() ,now() ); END; $$ delimiter ; drop trigger student1_trigger; UPDATE Student1 SET sage = '20' WHERE Sno = '202115121';
这段代码包括了创建一个名为student1_log的表和一个名为student1_trigger的触发器。当对Student1表进行更新时,触发器会将旧值和新值插入到Student1_log表中。最后,代码执行了一个更新操作,将Sno为'202115121'的学生的年龄修改为20。
需要注意的是,由于在创建表时使用了自增主键,因此在插入数据时不需要手动指定id的值,数据库会自动为每一条记录生成一个唯一的id。另外,如果想要使用该触发器,需要先删除掉之前同名的触发器。
create database StudCourse; use StudCourse; #Student(Sid,Sname,Sage,Ssex) 学生表 CREATE TABLE student ( sid varchar(10) NOT NULL, sName varchar(20) DEFAULT NULL, sAge datetime DEFAULT '1980-10-12 23:12:36', sSex varchar(10) DEFAULT NULL, PRIMARY KEY (sid) ) ENGINE=InnoDB DEFAULT CHA-RSET=utf8; #Course(Cid,Cname,Tid) 课程表 CREATE TABLE course ( cid varchar(10) NOT NULL, cName varchar(10) DEFAULT NULL, tid int(20) DEFAULT NULL, PRIMARY KEY (cid) ) ENGINE=InnoDB DEFAULT CHA-RSET=utf8; #SC(Sid,Cid,score) 成绩表 CREATE TABLE sc ( sid varchar(10) DEFAULT NULL, cid varchar(10) DEFAULT NULL, score int(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHA-RSET=utf8; #Teacher(Tid,Tname) 教师表 CREATE TABLE teacher ( tid int(10) DEFAULT NULL, tName varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHA-RSET=utf8; #数据:( MySQL ) insert into teacher(tid,tName) values (1,' 李老师'),(2,' 何以琛'),(3,' 叶平'); insert into student(sid,sName,sAge,sSex) values ('1001',' 张三丰 ','1980-10-12 23:12:36',' 男'),('1002',' 张无极 ','1995-10-12 23:12:36',' 男'),('1003',' 李奎','1992-10-12 23:12:36',' 女'),('1004',' 李元宝 ','1980-10-12 23:12:36',' 女'),('1005',' 李世明','1981-10-12 23:12:36',' 男'),('1006',' 赵六','1986-10-12 23:12:36',' 男'),('1007',' 田七','1981-10-12 23:12:36',' 女'), ('1008',' 张三丰 ','1982-08-12 23:12:36',' 男'); insert into sc(sid,cid,score) values ('1','001',80),('1001','002',60),('1001','003',75),('1002','001',85),('1002','002',70),('1003','004',100), ('1003','001',90),('1003','002',55),('1004','002',65),('1004','003',60); insert into course(cid,cName,tid) values ('001',' 企业管理 ',3),('002',' 马克思 ',3),('003','UML',2),('004',' 数据库 ',1),('005','英语',1);
好的,根据您提供的数据库表结构和数据,以下是查询选修课程名称为“数据库”的学生姓名和分数的 SQL 语句:
```
SELECT s.sName, sc.score
FROM student s
JOIN sc ON s.sid = sc.sid
JOIN course c ON c.cid = sc.cid
WHERE c.cName = '数据库';
```
执行该 SQL 语句后,将会返回选修了“数据库”课程的学生姓名和分数。
阅读全文