关系数据库标准语言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;
新增加的一列一律为空值。
例如:将年龄的数据类型由字符型改为整数
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删除表的同时也删除其视图。
索引的建立与删除
重复
及萨博涵五六,公众号:码农智涵的程序人生
习题部分
解:关于权重:
style:1000 行内样式
id:100
class: 10
element : 1 标签
权重越大,优先级越高。
css选择器优先级是指“基础选择器“的优先级
ID>CLASS>ELEMENT>*(代表其他任何)
解:A:<a>标签是行内元素,不可以嵌套块级元素
B: <button>标签是行内块级元素,可以嵌套行内元素。但是极不推荐嵌套<a>标签
C: 正确
D: <dt>类型下面不能放置header 类型元素(h1-h6)
以上是关于关系数据库标准语言SQL(上)+前端基础习题分享的主要内容,如果未能解决你的问题,请参考以下文章