MySQL数据库表的数据插⼊、修改、删除、查询操作及实例应⽤⼀、MySQL数据库表的数据插⼊、修改、删除和查询1CREATE DATABASE db0504;23USE db0504;45CREATE TABLE student (6 sno VARCHAR (10) NOT NULL UNIQUE PRIMARY KEY,7 sname VARCHAR (20) NOT NULL,8 ssex enum ('男', '⼥') NOT NULL DEFAULT'男',9 sbirth date,10 sclass VARCHAR (10),11 zno CHAR (4)12 ) DEFAULT charset = gb2312;13 #添加操作14INSERT INTO student15VALUES('2012010713','丁暖','⼥','1993-9-9','物联⽹12-1','z002');1617INSERT INTO student (sno,sname,ssex,sbirth,sclass,zno)18VALUES('2011010503','孔超','男','1993-9-19','⾃动化11-1','z006');1920INSERT INTO student (sno, sname, ssex, zno)21VALUES('2011010521','韩梅','⼥','z006');2223INSERT INTO student (sname, zno, sno)24VALUES('韩梅2','z006','2011010522');2526INSERT INTO student VALUES27 ('2011010501','孔超1','男','1993-9-19','⾃动化11-1','z006');28 ('2011010505','孔超2','男','1993-9-19','⾃动化11-1','z006');29 ('2011010504','孔超3','男','1993-9-19','⾃动化11-1','z006');30 ('2011010505','孔超4','男','1993-9-19','⾃动化11-1','z006');31 #修改操作32UPDATE student33SET sname ='张三',sbirth ='1993-6-19'34WHERE sname ='丁暖';3536UPDATE student SET zno =LEFT (zno, 3);37 #删除操作38delete from student39where sname='张三';4042 #查询操作43SELECT*FROM student;#查询student表的所有记录44SELECT sno,sname,ssex,sbirth FROM student;#查询部分字段信息45SELECT*FROM student WHERE age BETWEEN25AND30;4647 #清空表操作48truncate student;#⾼效49delete from student;操作SQL语法格式:插⼊:insert修改:update删除:delete查询:select⼆、设计型实验三1.创建表1CREATE DATABASE homework;23USE homework;45CREATE TABLE student (6 Num INT (10) NOT NULL UNIQUE PRIMARY KEY,7 name VARCHAR(20) NOT NULL,8 Sex VARCHAR(4) NOT NULL,9 birthday DATETIME,10 bumen VARCHAR(20) NOT NULL,11 address VARCHAR(50)12 ) DEFAULT charset = gb2312;1314CREATE TABLE score (15 Id INT(10) NOT NULL UNIQUE PRIMARY KEY,16 C_name VARCHAR(20),17 Stu_id INT(10) NOT NULL,18 grade INT(10),19CONSTRAINT score_fk FOREIGN KEY(Stu_id) REFERENCES student(Num)20 ) DEFAULT charset = gb2312;2122INSERT INTO student VALUES23 ('901','张军','男','1985-1-1','计算机系','北京市海淀区'),24 ('902','张超','男','1986-2-2','中⽂系','北京市昌平区'),25 ('903','张美','⼥','1990-2-1','中⽂系','湖南省永州市'),26 ('904','李五⼀','男','1990-2-3','英语系','辽宁省⾩新市'),27 ('905','王芳','⼥','1991-4-6','英语系','福建省厦门市'),28 ('906','王桂','男','1988-6-7','计算机系','湖南省衡阳市');2930INSERT INTO score VALUES31 (1001,'计算机','901','98'),32 (1002,'英语','901','80'),33 (1003,'计算机','902','65'),34 (1004,'中⽂','902','88'),35 (1005,'中⽂','903','95'),36 (1006,'计算机','904','70'),37 (1007,'英语','904','92'),38 (1008,'英语','905','92'),39 (1009,'计算机','906','90'),40 (1010,'英语','906','85');2.查询student表的操作#查询student表的所有记录SELECT*FROM student;SELECT Num,name,Sex,birthday,bumen,address FROM student;#查询student表的第2条到第4条记录SELECT Num,name,Sex,birthday,bumen,address FROM student LIMIT 1,3;#从student表中查询所有学⽣的学号、姓名和院系的信息SELECT Num,name,bumen FROM student;#查询计算机系和英语系学⽣的信息SELECT*FROM student WHERE bumen IN('计算机系','英语系');SELECT*FROM student WHERE bumen='计算机系'OR bumen='英语系';#从student表中查询年龄为18-22岁学⽣的信息ALTER TABLE student ADD age INT(4);ALTER TABLE student MODIFY age INT(4) AFTER Sex;UPDATE student SET age=24WHERE Num=901;UPDATE student SET age=23WHERE Num=902;UPDATE student SET age=19WHERE Num=903;UPDATE student SET age=19WHERE Num=904;UPDATE student SET age=18WHERE Num=905;UPDATE student SET age=21WHERE Num=906;SELECT*FROM student WHERE age BETWEEN18AND22;SELECT*FROM student WHERE age>=18AND age<=22;#从student表中查询每个院系有多少⼈,为统计的⼈数列取别名sum_of_bumenSELECT bumen,COUNT(bumen) AS sum_of_bumen FROM student GROUP BY bumen;3.两表综合查询#从score表中查询每个科⽬的最⾼分SELECT C_name,MAX(grade) FROM score GROUP BY C_name;#查询李五⼀的考试科⽬(C_name)和考试成绩(grade)select C_name,grade from student left join score on student.Num=score.Stu_id where name='李五⼀';#⽤连接查询的⽅式查询所有学⽣的信息和考试信息select*from student left join score on student.Num=score.Stu_id;#计算每个学⽣的总成绩(需显⽰学⽣姓名)select name '姓名',SUM(grade) '总成绩'from student left join score on student.Num=score.Stu_id group by name;#计算每个考试科⽬的平均成绩select C_name '考试科⽬',AVG(grade) '平均成绩'from student left join score on student.Num=score.Stu_id group by C_name; #查询计算机成绩低于95分的学⽣信息select*from student left join score on student.Num=score.Stu_id where grade<95AND C_name='计算机';#将计算机成绩按从⾼到低排序select grade '计算机成绩'from score where C_name='计算机'order by grade desc;#asc升序,desc降序#从student表和score表中查询学⽣的学号,然后合并查询结果select Num '学号'from student union select Stu_id from score;#查询姓张或者姓王的同学的姓名、院系、考试科⽬和成绩select name,bumen,C_name,grade from student left join score on student.Num=score.Stu_id where name like'张%'union select name,bumen,C_name,grade from student left join score on student.Num=score.Stu_id where name like'王%';#查询都是湖南的学⽣的姓名、年龄、院系、考试科⽬和成绩select name,age,bumen,C_name,grade from student left join score on student.Num=score.Stu_id where address like'湖南%';这个查询同时参加计算机和英语考试的学⽣信息难了我好久,下⾯提供三种做法:#查询同时参加计算机和英语考试的学⽣的信息做法⼀select*from student where Num in (select Stu_id from score where C_name ='计算机'and Stu_id in(select Stu_id from score where C_name ='英语'));#查询同时参加计算机和英语考试的学⽣的信息做法⼆SELECT a.*FROM student a,score b,score c WHERE a.Num=b.Stu_id AND b.C_name='计算机'AND a.Num=c.Stu_id AND c.C_name='英语';#查询同时参加计算机和英语考试的学⽣的信息做法三SELECT*FROM student WHERE Num =ANY( SELECT Stu_id FROM score WHERE Stu_id IN (SELECT Stu_id FROM score WHERE C_name='计算机') AND C_name='英语');。