关系数据库标准语言SQL(上)+前端基础习题分享

Posted 码农智涵的程序人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系数据库标准语言SQL(上)+前端基础习题分享相关的知识,希望对你有一定的参考价值。

SQL

一.SQL的特点


综合统一:因为SQL集合了 数据定义语言DDL,数据操作语言DML,数据控制语言DCL的功能于一身,形成了大一统的天下。


高度非过程化:SQL语言 指明了 “做什么”,而不用去指明 “怎么做”,简化了数据操作的步骤,节约了时间等优势。


面向集合的操作方式:SQL语言采用集合操作方式,不仅操作对象,查找结果可以是元组的集合,而且一次插入,删除,更新操作的对象也可以是元组的集合。


以同一种语法结构提供多种使用方式:SQL既是独立的语言,又是嵌入式语言


语言简洁,简单易学:基本套话,功能强大,用途广泛,语言设计十分简洁,对初学者十分友好等。




教材中使用了一个学生-课程数据库作为例子进行讲解SQL的具体应用的。

Student表:

SET FOREIGN_KEY_CHECKS=0;
-- ------------------------------ Table structure for student-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `Sno` char(9) NOT NULL, `Sname` varchar(20) DEFAULT NULL, `Ssex` varchar(10) DEFAULT NULL, `Sage` smallint(6) DEFAULT NULL, `Sdept` varchar(20) DEFAULT NULL, PRIMARY KEY (`Sno`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ------------------------------ Records of student-- ----------------------------INSERT INTO `student` VALUES ('200215121', '李勇', '男', '20', 'CS');INSERT INTO `student` VALUES ('200215122', '刘晨', '女', '19', 'CS');INSERT INTO `student` VALUES ('200215123', '王敏', '女', '18', 'MA');INSERT INTO `student` VALUES ('200215125', '张立', '男', '19', 'IS');


Course课程表:

SET FOREIGN_KEY_CHECKS=0;
-- ------------------------------ Table structure for course-- ----------------------------DROP TABLE IF EXISTS `course`;CREATE TABLE `course` ( `Cno` char(4) NOT NULL, `Cname` char(40) DEFAULT NULL, `Cpno` char(4) DEFAULT NULL, `Ccredit` smallint(6) DEFAULT NULL, PRIMARY KEY (`Cno`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ------------------------------ Records of course-- ----------------------------INSERT INTO `course` VALUES ('1', '数据库', '5', '4');INSERT INTO `course` VALUES ('2', '数学', null, '2');INSERT INTO `course` VALUES ('3', '信息系统', '1', '4');INSERT INTO `course` VALUES ('4', '操作系统', '6', '3');INSERT INTO `course` VALUES ('5', '数据结构', '7', '4');INSERT INTO `course` VALUES ('6', '数据处理', null, '2');INSERT INTO `course` VALUES ('7', 'JAVA语言', '6', '4');


学生选课表SC:

SET FOREIGN_KEY_CHECKS=0;
-- ------------------------------ Table structure for sc-- ----------------------------DROP TABLE IF EXISTS `sc`;CREATE TABLE `sc` ( `Sno` char(9) NOT NULL, `Cno` char(4) NOT NULL, `Grade` smallint(6) DEFAULT NULL, PRIMARY KEY (`Sno`,`Cno`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ------------------------------ Records of sc-- ----------------------------INSERT INTO `sc` VALUES ('200215121', '1', '92');INSERT INTO `sc` VALUES ('200215121', '2', '85');INSERT INTO `sc` VALUES ('200215121', '3', '88');INSERT INTO `sc` VALUES ('200215122', '2', '90');INSERT INTO `sc` VALUES ('200215122', '3', '80');


数据类型:

数据类型
含义
CHAR(n) 长度为n的定长字符串
VARCHAR(n)
最大长度为n的变长字符串
INT
长整数(也可写作INTEGER)
SMALLINT
短整数
REAL
取决于机器精度的浮点数
Double Precision
取决于机器精度的双精度浮点数
FLOAT(n)
浮点数,精度至少为n位数字
DATE 日期,年月日 格式YYYY-MM-DD
TIME

时间,包含一天的时分秒  格式:

HH:MM:SS



修改基本表

随着应用环境和应用需求的变化,有时需要修改已经建立好的基本表,SQL语言用ALTER TABLE 语句修改基本表,其一般格式为:


ALTER TABLE 表名

ADD 新列名 数据类型 完整性约束

DROP 完整性约束

ALTER COLUMN 列名 数据类型;


其中,表名是要修改的基本表,ADD子句用于增加新列和新的完整性约束条件,DROP子句用于删除指定的完整性约束条件 , ALTER COLUMN子句用于修改原有的列定义,包括修改列名和数据类型。





例如:向上述Student基本表中添加一个新的列--入学时间列,数据类型为DATE。

ALTER TABLE student ADD S_entrance DATE;

关系数据库标准语言SQL(上)+前端基础习题分享

新增加的一列一律为空值。


例如:将年龄的数据类型由字符型改为整数

ALTER TABLE student ALTER COLUMN Sage INT;



例如:增加课程名称必须取唯一值的约束条件

ALTER TABLE course ADD UNIQUE (Cname);



删除基本表


当这个基本表不再需要时,可以使用DROP TABLE语句删除它。其格式:

DROP TABLE 表名 RESTRICT/CASCADE;


若选择RESTRICT ,顾名思义,表明此时删除这个表是有条件的。

想要删除的这个基本表 不能被其他的表所约束(比如外键等),不能有视图,不能有触发器,不能有存储过程或者函数等。若存在以上情况,则该表不能被删除。


若选择CASCADE,齐了咔嚓全给删咯,例如视图,都将被一并删除掉。


例如:无条件删除Student表 及其相关索引视图等依赖对象。

DROP TABLE Student CASCADE;


若表上有视图,选择RESTRICT时表不能被删除;CACCADE删除表的同时也删除其视图。



索引的建立与删除

关系数据库标准语言SQL(上)+前端基础习题分享

重复

及萨博涵五六,公众号:码农智涵的程序人生


习题部分

关系数据库标准语言SQL(上)+前端基础习题分享

解:关于权重:

style:1000  行内样式

id:100

class: 10

element : 1 标签

权重越大,优先级越高。

css选择器优先级是指“基础选择器“的优先级

ID>CLASS>ELEMENT>*(代表其他任何)


解:A:<a>标签是行内元素,不可以嵌套块级元素

       B:  <button>标签是行内块级元素,可以嵌套行内元素。但是极不推荐嵌套<a>标签

       C: 正确

       D: <dt>类型下面不能放置header 类型元素(h1-h6)





以上是关于关系数据库标准语言SQL(上)+前端基础习题分享的主要内容,如果未能解决你的问题,请参考以下文章

前端学数据库之基础操作

前端学数据库之基础操作

前端学数据库之基础操作

GO语言(三十):访问关系型数据库(上)

(转)经典SQL练习题

关系数据库标准语言SQL-第四节:数据查询