哈哈哈哈顶顶顶

  1. --数据库

  2. CREATE DATABASE learnwell;

  3. SHOW DATABASES;

  4. USE learnwell;

  5. DROP DATABASE learnwell;

  6. --创建表

  7. USE study;

  8. CREATE TABLE `course` (

  9. `Cno` VARCHAR(20) NOT NULL COMMENT '课程编号',

  10. `cname` VARCHAR(255) DEFAULT NULL COMMENT '名称',

  11. `category` VARCHAR(255) DEFAULT NULL,

  12. `major` VARCHAR(255) DEFAULT NULL,

  13. `startTM` VARCHAR(255) DEFAULT NULL,

  14. `credits` INT DEFAULT NULL,

  15. `weekhours` VARCHAR(255) DEFAULT NULL,

  16. `cpno` INT DEFAULT NULL,

  17. PRIMARY KEY (`Cno`)

  18. ) ;

  19. CREATE TABLE `department` (

  20. `Dno` INT NOT NULL COMMENT '院编号',

  21. `Dname` VARCHAR(255) DEFAULT NULL COMMENT '院名称',

  22. `Tno` INT DEFAULT NULL COMMENT '系主任老师编号',

  23. `address` VARCHAR(255) DEFAULT NULL COMMENT '院地址',

  24. PRIMARY KEY (`Dno`),

  25. KEY `d_T` (`Tno`),

  26. CONSTRAINT `d_T` FOREIGN KEY (`Tno`) REFERENCES `teacher` (`Tno`)

  27. ) ;

  28. CREATE TABLE `sc` (

  29. `Sno` INT NOT NULL COMMENT '学生学号',

  30. `score` INT DEFAULT NULL COMMENT '成绩',

  31. `Cno` VARCHAR(10) DEFAULT NULL,

  32. KEY `sc_s` (`Sno`),

  33. KEY `sc_c` (`Cno`),

  34. CONSTRAINT `sc_c` FOREIGN KEY (`Cno`) REFERENCES `course` (`Cno`) ON DELETE RESTRICT ON UPDATE RESTRICT,

  35. CONSTRAINT `sc_s` FOREIGN KEY (`Sno`) REFERENCES `student` (`Sno`) ON DELETE RESTRICT ON UPDATE RESTRICT

  36. );

  37. CREATE TABLE `sclass` (

  38. `ClassNo` INT NOT NULL COMMENT '班号',

  39. `className` VARCHAR(255) DEFAULT NULL COMMENT '班级名称',

  40. `major` VARCHAR(255) DEFAULT NULL COMMENT '专业',

  41. `grade` VARCHAR(255) DEFAULT NULL COMMENT '年级',

  42. `number` INT DEFAULT NULL COMMENT '人数',

  43. `advisor` VARCHAR(255) DEFAULT NULL COMMENT '班主任',

  44. `Dno` INT DEFAULT NULL,

  45. PRIMARY KEY (`ClassNo`),

  46. KEY `className` (`className`),

  47. KEY `sc_d` (`Dno`),

  48. CONSTRAINT `sc_d` FOREIGN KEY (`Dno`) REFERENCES `department` (`Dno`)

  49. );

  50. CREATE TABLE `student` (

  51. `Sno` INT NOT NULL COMMENT '学生编号',

  52. `sname` VARCHAR(255) NOT NULL COMMENT '学生姓名',

  53. `ssex` VARCHAR(255) NOT NULL COMMENT '性别',

  54. `sbirth` DATE NOT NULL COMMENT '生日',

  55. `ClassNo` INT DEFAULT NULL COMMENT '班级',

  56. `age` INT DEFAULT NULL,

  57. PRIMARY KEY (`Sno`),

  58. KEY `scno` (`ClassNo`),

  59. CONSTRAINT `scno` FOREIGN KEY (`ClassNo`) REFERENCES `sclass` (`ClassNo`) ON DELETE RESTRICT ON UPDATE RESTRICT

  60. );

  61. CREATE TABLE `tc` (

  62. `Tno` INT NOT NULL COMMENT '教师编号',

  63. `Cno` VARCHAR(10) DEFAULT NULL COMMENT '课程编号',

  64. `lacation` VARCHAR(255) NOT NULL COMMENT '地址',

  65. `term` VARCHAR(255) DEFAULT NULL COMMENT '授课学期',

  66. PRIMARY KEY (`Tno`),

  67. KEY `tc_c` (`Cno`),

  68. CONSTRAINT `tc-t` FOREIGN KEY (`Tno`) REFERENCES `teacher` (`Tno`),

  69. CONSTRAINT `tc_c` FOREIGN KEY (`Cno`) REFERENCES `course` (`Cno`)

  70. );

  71. CREATE TABLE `teacher` (

  72. `Tno` INT NOT NULL COMMENT '教师编号',

  73. `Tname` VARCHAR(255) DEFAULT NULL COMMENT '教师姓名',

  74. `Tsex` VARCHAR(255) DEFAULT NULL COMMENT '教师性别',

  75. `Tage` INT DEFAULT NULL COMMENT '教师年龄',

  76. `Tworktime` DATE DEFAULT NULL COMMENT '教师参加工作时间',

  77. `Dno` INT DEFAULT NULL COMMENT '院系',

  78. PRIMARY KEY (`Tno`),

  79. KEY `t_d` (`Dno`),

  80. CONSTRAINT `t_d` FOREIGN KEY (`Dno`) REFERENCES `department` (`Dno`)

  81. );

  82. --由于表格建立完备,删除修改表用测试表格test

  83. CREATE TABLE `test` (

  84. `id` INT NOT NULL,

  85. `tname` VARCHAR(10) DEFAULT NULL,

  86. `tsex` CHAR(2) DEFAULT '男',

  87. `address` VARCHAR(9) NOT NULL,

  88. `phone` INT DEFAULT NULL,

  89. PRIMARY KEY (`id`),

  90. UNIQUE KEY `tname` (`tname`)

  91. )

  92. --删除表

  93. DROP test;

  94. --修改表

  95. ALTER TABLE test ADD phone INT ;

  96. ALTER TABLE test ADD CONSTRAINT pk PRIMARY KEY (phone);

  97. --数据插入和修改

  98. INSERT INTO student VALUES('2017210000','张三','男','1998-04-05','2017211130');

  99. INSERT INTO course VALUES(1,'数据库技术,指选','通信工程,第2 学期',2,'2',NULL);

  100. INSERT INTO sc(sno,cno) VALUES('2017210000','1');

  101. UPDATE course SET startTM='每年第2学期' WHERE cno='1';

  102. UPDATE sc SET score = 90 WHERE sno ='2017210000' AND cno =1

  103. DELETE FROM se WHERE sno ='2017210000'AND cno=1;

  104. --索引

  105. --建立索引

  106. CREATE INDEX pk_sc ON sc(sno,cno);

  107. CREATE UNIQUE INDEX usk ON student(sno);

  108. CREATE UNIQUE INDEX uck ON course(cno);

  109. --delete

  110. DROP INDEX pk_sc;

  111. --查询

  112. --(1)

  113. SELECT x.sname,y.score,z.cname

  114. FROM sc AS y

  115. INNER JOIN student AS x ON y.Sno=x.Sno

  116. INNER JOIN course AS z ON z.cno=y.cno

  117. WHERE y.score IS NOT NULL AND y.cno='c1' OR y.cno='c2'AND y.score>=70;

  118. -- y.cno='c1' or y.cno='c2'and y.score>=70 and

  119. --(2)

  120. SELECT sname, YEAR( from_days( datediff( now( ), sbirth))) AS age

  121. FROM student

  122. WHERE sname LIKE '王__';

  123. --(3)

  124. SELECT s.sname,c.cname

  125. FROM sc

  126. INNER JOIN course AS c ON sc.cno=c.cno

  127. INNER JOIN student AS s ON s.sno=sc.sno

  128. WHERE sc.score IS NULL;

  129. --4

  130. SELECT sname, age

  131. FROM student

  132. WHERE ssex='男'AND age>(SELECT avg(age ) FROM student WHERE ssex='女');

  133. --视图

  134. --1

  135. CREATE VIEW s_21101 (Sno,sname,ssex,sbirth,ClassNo)

  136. AS SELECT Sno,sname,ssex,sbirth,ClassNo

  137. FROM student

  138. WHERE ClassNo=(SELECT ClassNo

  139. FROM sclass

  140. WHERE Dno=(SELECT Dno

  141. FROM department

  142. WHERE Dname='aaaa'));

  143. SELECT ClassNo

  144. FROM sclass

  145. WHERE Dno=(SELECT Dno

  146. FROM department

  147. WHERE Dname='aaaa');

  148. SELECT Dno

  149. FROM department

  150. WHERE Dname='aaaa';

  151. --2

  152. CREATE VIEW aa (student.sno,student.sname ,course.cname,sc.score)

  153. AS

  154. SELECT student.sno,student.sname ,course.cname,sc.score

  155. FROM sc

  156. LEFT JOIN student ON student.sno=sc.sno

  157. LEFT JOIN course ON sc.cno=course.cno;

  158. --利用视图查询

  159. SELECT *FROM aa;

  • 25
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值