草庐IT

day10-习题

liyuelian 2023-03-28 原文

习题

1.Homework01

(1)	D -- 没有在别名上加引号(ps:别名的as可以省略)
(2)	B -- 判断null或非空不能用不等于号
(3)	C 

2.Homework02

  1. 写出查看dept表和emp表的结构的sql语句

  2. 使用简单查询语句完成

    1. 显示所有部门名称
    2. 显示所有雇员名及其全年收入 13月(工资+补助),并指定列别名“年收入”
  3. 限制查询数据

    1. 显示工资超过2850的雇员的姓名和工资
    2. 显示工资不在1500到2850之间的员工名和工资
    3. 显示编号为7566的雇员姓名及所在的部门编号
    4. 显示部门10和30中工资超过1500的员工名及工资
    5. 显示无管理者的雇员名及岗位
  4. 排序数据

    1. 显示在1991-2-1到1991-5-1之间雇用的员工名,岗位以及雇用日期,并以雇用日期进行排序
    2. 显示获得补助的所有员工名,工资以及补助,并以工资降序进行排序

练习

-- 2.写出查看dept表和emp表的结构的sql语句
DESC dept;
DESC emp;

-- 3.使用简单查询语句完成
-- 3.1 显示所有部门名称
SELECT dname FROM dept;
-- 3.2 显示所有雇员名及其全年收入 13月(工资+补助),并指定列别名“年收入”
SELECT ename,(sal+IFNULL(comm ,0.0))*13 AS '年收入' FROM emp;

-- 4.限制查询数据
-- 4.1显示工资超过2850的雇员的姓名和工资
SELECT ename,sal FROM emp
	WHERE sal>2850;
-- 4.2显示工资不在1500到2850之间的员工名和工资
SELECT ename,sal FROM emp
	WHERE sal>2850 OR sal<1500;
-- 4.3显示编号为7566的雇员姓名及所在的部门编号
SELECT ename,deptno FROM emp
	WHERE empno=7566;
-- 4.4显示部门10和30中工资超过1500的员工名及工资
SELECT ename,sal FROM emp
	WHERE deptno IN (10,30) AND sal >1500;
-- 4.5显示无管理者的雇员名及岗位
SELECT ename,job FROM emp
	WHERE mgr IS NULL;

-- 5.排序数据
-- 5.1显示在1991-2-1到1991-5-1之间雇用的员工名,岗位以及雇用日期,
-- 并以雇用日期进行排序
SELECT ename,job,hiredate FROM emp
	WHERE hiredate>='1991-02-01' AND hiredate<='1991-05-01'
	ORDER BY hiredate;
-- 显示获得补助的所有员工名,工资以及补助,并以工资降序进行排序
SELECT ename,sal,comm FROM emp
	WHERE comm IS NOT NULL
	ORDER BY sal DESC;

3.Homework03

根据emp表写出正确的sql

  1. 选择部门30中的所有员工
  2. 列出所有办事员(CLERK)的姓名,编号和部门编号
  3. 找出佣金高于薪金的员工
  4. 找出佣金高于薪金60%的员工
  5. 找出部门10中所有经理(MANAGER)和部门20中的所有办事员(CLERK)的详细资料
  6. 找出部门10中所有经理(MANAGER),部门20中的所有办事员(CLERK),还有既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料
  7. 找出收取佣金的员工的不同工作
  8. 找出不收取佣金或收取佣金低于100的员工
  9. 找出各月倒数第三天受雇的所有员工
  10. 找出早于12年前受雇的员工
  11. 以首字母小写的方式显示所有员工的姓名
  12. 显示正好为5个字符的员工的姓名

练习

SELECT * FROM emp;
-- 1. 选择部门30中的所有员工
SELECT * FROM emp
	WHERE deptno = 30;

-- 2. 列出所有办事员(CLERK)的姓名,编号和部门编号
SELECT ename,empno,deptno FROM emp
	WHERE job = 'CLERK';
	
-- 3. 找出佣金高于薪金的员工
SELECT ename FROM emp
	WHERE IFNULL(comm,0)>sal; 
	
-- 4. 找出佣金高于薪金60%的员工
SELECT ename FROM emp
	WHERE IFNULL(comm,0)>(sal*0.6); 
	
-- 5. 找出部门10中所有经理(MANAGER)和部门20中的所有办事员(CLERK)的详细资料
SELECT * FROM emp
	WHERE (deptno = 10 AND job= 'MANAGER')OR 
		(deptno = 20 AND job= 'CLERK');
	
-- 6. 找出部门10中所有经理(MANAGER),部门20中的所有办事员(CLERK),
-- 还有既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料
SELECT * FROM emp
	WHERE (deptno = 10 AND job= 'MANAGER')OR 
		(deptno = 20 AND job= 'CLERK')OR
		(job NOT IN ('MANAGER','CLERK') AND sal>=2000);
		
-- 7. 找出收取佣金的员工的不同工作
SELECT DISTINCT job FROM emp
	WHERE comm IS NOT NULL;
	
-- 8. 找出不收取佣金或收取佣金低于100的员工
SELECT ename FROM emp
	WHERE comm IS NULL OR IFNULL(comm,0) <100;
	
-- 9. 找出各月倒数第三天受雇的所有员工
-- 关于最后一天 last_day(日期)可以返回该日期所在月份的最后一天 
SELECT * FROM emp
	WHERE LAST_DAY(hiredate)-2 = hiredate;

-- 10. 找出早于12年前受雇的员工
SELECT * FROM emp
	WHERE hiredate < DATE_SUB(NOW(),INTERVAL 12 YEAR);

-- 11. 以首字母小写的方式显示所有员工的姓名
-- 先截取首字母,将其小写 LCASE (LEFT(ename,1))
-- 再截取剩下的字母 RIGHT(ename, (LENGTH(ename)-1))
-- 将两者拼起来 CONCAT
SELECT CONCAT(LCASE(LEFT(ename,1)),RIGHT(ename, (LENGTH(ename)-1))) FROM emp	
-- 或者
SELECT CONCAT( LCASE(LEFT(ename,1)) ,SUBSTRING(ename,2)) FROM emp; 

-- 12. 显示正好为5个字符的员工的姓名
SELECT ename FROM emp
	WHERE ename LIKE '_____';
-- 或者
SELECT ename FROM emp
	WHERE LENGTH(ename)=5; 

4.Homework04

根据emp员工表,写出正确的sql语句

  1. 显示不带有R的员工的姓名
  2. 显示所有员工姓名的前三个字符
  3. 显示所有员工的姓名,用a替换所有的A
  4. 显示满10年服务年限的员工的姓名和受雇日期
  5. 显示员工的详细资料,按姓名排序
  6. 显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面
  7. 显示所有的员工的姓名,工作和薪金,按工作降序排序,若工作相同则按薪金排除
  8. 显示所有员工的姓名,加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面
  9. 显示在一个月为30天的情况所有员工的日薪金,忽略余数
  10. 找出在(任何年份的)2月受聘的所有员工
  11. 对于每个员工,显示其加入公司的天数
  12. 显示姓名字段的任何位置包含A的所有员工的姓名
  13. 以年月日的方式显示所有员工的服务年限(大概)

练习

-- 根据emp员工表,写出正确的sql语句
SELECT * FROM emp;
-- 13. 显示不带有R的员工的姓名
SELECT ename FROM emp
	WHERE ename NOT LIKE '%R%';
	
-- 14. 显示所有员工姓名的前三个字符
SELECT LEFT(ename,3) FROM emp;

-- 15. 显示所有员工的姓名,用a替换所有的A
SELECT REPLACE(ename,'A','a') FROM emp;

-- 16. 显示满10年服务年限的员工的姓名和受雇日期
SELECT ename,hiredate FROM emp
	WHERE (DATEDIFF(NOW(),hiredate)/365)>10;
	
-- 17. 显示员工的详细资料,按姓名排序
SELECT * FROM emp
	ORDER BY ename;

-- 18. 显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面
SELECT ename,hiredate FROM emp
	ORDER BY hiredate;

-- 19. 显示所有的员工的姓名,工作和薪金,按工作降序排序,若工作相同则按薪金排序
SELECT ename,job,sal FROM emp
	ORDER BY job DESC,sal;

-- 20. 显示所有员工的姓名,加入公司的年份和月份,
-- 按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面
SELECT ename,CONCAT(YEAR(hiredate),'-',MONTH(hiredate))FROM emp
	ORDER BY MONTH(hiredate),YEAR(hiredate);

-- 21. 显示在一个月为30天的情况所有员工的日薪金,忽略余数
SELECT ename,FLOOR(sal/30) FROM emp
	WHERE LAST_DAY(hiredate) LIKE '____-__-30';
	
-- 22. 找出在(任何年份的)2月受聘的所有员工
SELECT * FROM emp
	WHERE hiredate LIKE '____-02-__';
	
-- 23. 对于每个员工,显示其加入公司的天数
SELECT ename,DATEDIFF(NOW(),hiredate) FROM emp;

-- 24. 显示姓名字段的任何位置包含A的所有员工的姓名
SELECT ename FROM emp
	WHERE ename LIKE '%A%';

-- 25. 以年月日的方式显示所有员工的服务年限(大概)
SELECT ename,
	(DATEDIFF(NOW(),hiredate)-DATEDIFF(NOW(),hiredate)%365)/365 AS '年',
	(DATEDIFF(NOW(),hiredate)%365-DATEDIFF(NOW(),hiredate)%365%31)/31 AS '月',
	DATEDIFF(NOW(),hiredate)%31 AS '天'
	FROM emp
	
-- 或者
SELECT ename,
	FLOOR((DATEDIFF(NOW(),hiredate)/365)) AS '年',
	FLOOR(DATEDIFF(NOW(),hiredate)%365/31) AS '月',
	DATEDIFF(NOW(),hiredate)%31 AS '天'
	FROM emp	

5.Homework05

根据emp员工表,dept部门表,工资=薪金+佣金,写出正确的sql

  1. 列出至少有一个员工的所有部门
  2. 列出薪金比Smith多的所有员工
  3. 列出受雇日期晚于其直接上级的所有员工
  4. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门
  5. 列出所有CLERK(办事员)的姓名及其部门名称
  6. 列出最低薪金大于1500的各种工作
  7. 列出在部门SALES(销售部)工作的员工的姓名
  8. 列出薪金高于公司平均薪金的所有员工
-- 根据emp员工表,dept部门表,工资=薪金+佣金,写出正确的sql
SELECT * FROM emp;
SELECT * FROM dept;
SELECT * FROM salgrade;

-- 1. 列出至少有一个员工的所有部门
SELECT DISTINCT dname FROM emp,dept
	WHERE emp.deptno=dept.deptno;
-- 或者
SELECT COUNT(*) AS c ,deptno
	FROM emp
	GROUP BY deptno
	HAVING c > 1;

	
-- 2. 列出薪金比Smith多的所有员工
-- 先查出Smith的sal
-- 然后其他的员工的sal>smith.sal
SELECT ename FROM emp
	WHERE sal>(SELECT sal FROM emp WHERE ename='SMITH');
	
-- 3. 列出受雇日期晚于其直接上级的所有员工
-- 先把emp表当做是两张表,worker , leader  (自连接)
-- 条件1. emp.hiredate>d.hiredate 条件2.emp.mgr=d.empno
SELECT worker.ename AS '员工名',worker.hiredate AS '员工入职时间',
	leader.ename AS '上级名',leader.hiredate AS '上级入职时间'
	FROM emp AS worker, emp AS leader
	WHERE worker.mgr=leader.empno AND worker.hiredate>leader.hiredate;


-- 4. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门
-- 这里因为需要显示所有部门,需要使用外连接
SELECT dname,emp.* FROM emp RIGHT JOIN dept
	ON emp.deptno=dept.deptno ;

-- 5. 列出所有CLERK(办事员)的姓名及其部门名称
SELECT ename,dname FROM emp,dept
	WHERE job='CLERK' AND emp.deptno=dept.deptno;


-- 6. 列出最低薪金大于1500的各种工作
SELECT DISTINCT job FROM emp 
    WHERE job NOT IN 
	(SELECT job FROM emp 
	WHERE sal <1500);
 -- 或者 
 -- 查询各个部门的最低工资
 -- 使用having子句进行过滤
SELECT MIN(sal) AS min_sal ,job 
	FROM emp
	GROUP BY job 
	HAVING min_sal > 1500;

	
-- 7. 列出在部门SALES(销售部)工作的员工的姓名
SELECT ename FROM emp,dept  
    WHERE emp.deptno = dept.deptno AND dname = 'SALES';

-- 8. 列出薪金高于公司平均薪金的所有员工
SELECT ename FROM emp 
	WHERE sal>(SELECT AVG(sal) FROM emp)

6.Homework06

根据emp员工表,dept部门表,工资=薪金+佣金,写出正确的sql

  1. 列出与SCOTT从事相同工作的所有员工
  2. 列出薪金高于,在部门30工作的所有员工的薪金,的员工姓名和薪金
  3. 列出在每个部门工作的员工数量,平均工资和平均服务期限
  4. 列出所有员工的姓名,部门名称和工资
  5. 列出所有部门的详细信息和部门人数
  6. 列出各种工作的最低工资
  7. 列出MANAGER(经理)的最低薪金
  8. 列出所有员工的年工资,按年薪从低到高排序
SELECT * FROM emp;
SELECT * FROM dept;
SELECT * FROM salgrade;

-- 1. 列出与SCOTT从事相同工作的所有员工
SELECT * FROM emp
	WHERE job=(SELECT job FROM emp WHERE ename='SCOTT');

-- 2. 列出薪金高于,在部门30工作的所有员工的薪金,的员工姓名和薪金
-- 先查询出30号部门的最高工资
SELECT ename ,sal FROM emp 
	WHERE sal>(SELECT MAX(sal) FROM emp 
			WHERE deptno = 30)
			
-- 3. 列出在每个部门工作的员工数量,平均工资和平均服务期限
SELECT COUNT(*) AS '员工数量',
	deptno,
	AVG(sal+IFNULL(comm,0)) AS '部门平均工资',
	AVG(DATEDIFF(NOW(),hiredate)/365) AS '平均服务期限年'
	FROM emp 
	GROUP BY deptno

-- 4. 列出所有员工的姓名,部门名称和工资
SELECT ename,dname,sal+IFNULL(comm,0) FROM emp,dept
	WHERE emp.deptno= dept.deptno

-- 5. 列出所有部门的详细信息和部门人数
-- 先得到各个部门的平均人数
SELECT dept.*, `all`
	FROM dept 
	LEFT JOIN
		(SELECT COUNT(*) AS `all`,deptno
			FROM emp
			GROUP BY emp.deptno) AS temp
	ON dept.deptno=temp.deptno
	
-- 6. 列出各种工作的最低工资
SELECT job ,MIN(sal+IFNULL(comm,0))AS '最低工资' FROM emp
	GROUP BY job;

-- 7. 列出MANAGER(经理)的最低薪金
SELECT MIN(sal+IFNULL(comm,0))AS '最低工资' FROM emp
	WHERE job= 'MANAGER';

-- 8. 列出所有员工的年工资,按年薪从低到高排序
SELECT ename,(sal+IFNULL(comm,0))*12 AS '年工资' FROM emp
	ORDER BY (sal+IFNULL(comm,0));

7.Homework07

设学校环境如下:一个系有若干个专业,每一个专业一年只招一个班,每个班有若干个学生。先要建立关于系、学生和班级的数据库,关系模式为:

班CLASS (班号classid,专业名subject,系名deptname,入学年份enrolltime,人数num)

学生STUDENT(学号studentid,姓名name,年龄age,班号classid)

系DEPARTMENT(系号departmentid,系名deptname)

试用sql语言完成下面功能:

  1. 建表,在定义中要求声明:

    • 每个表的主外键
    • deptname是唯一约束
    • 学生姓名不能为空
  2. 插入如下数据

    DEPARTMENT(
        001,数学;
        002,计算机;
        003,计算机;
        004,计算机;
        005,计算机; )
    
    CLASS(
        101,软件,计算机,1995,20;
        102,微电子,计算机,1996,30;
        111,无机化学,化学,1995,29;
        112,高分子化学,化学,1996,25;
        121,统计数学,数学,1995,20;
        131,现代语言,中文,1996,20;
        141,国际贸易,经济,1997,30;
        142,国际金融,经济,1996,14;       
         )
    
    STUDENT(
        8101,张三,18,101;
        8102,钱四,16,121;
        8103,王玲,17,131;
        8105,李飞,19,102;
        8109,赵四,18,141;
        8110,李可,20,142;
        8201,张飞,18,111;
        8302,周瑜,16,112;
        8203,王亮,17,111;
        8305,董庆,19,102;
        8409,赵龙,18,101;
        8510,李丽,20,142;
    )
    
  3. 完成以下查询功能

    1. 找出所有姓李的学生
    2. 列出所有开设超过1个专业的系的名字
    3. 列出人数大于等于30的系的编号和名字
  4. 学校又新增了一个物理系,编号为006

  5. 学生张三退学,请更新相关的表

-- 试用sql语言完成下面功能:

-- 1. 建表,在定义中要求声明:
--    - 每个表的主外键
--    - deptname是唯一约束
--    - 学生姓名不能为空

-- 系DEPARTMENT(系号departmentid,系名deptname)
CREATE TABLE DEPARTMENT(
	departmentid VARCHAR(32) PRIMARY KEY,
	deptname VARCHAR(32) UNIQUE NOT NULL
);

-- 班CLASS  (班号classid,专业名subject,系名deptname,入学年份enrolltime,人数num)
CREATE TABLE CLASS(
	classid INT PRIMARY KEY,
	`subject` VARCHAR(32) NOT NULL DEFAULT '',
	deptname VARCHAR(32),
	enrolltime INT NOT NULL DEFAULT 2000,
	num INT NOT NULL DEFAULT 0,
	FOREIGN KEY (deptname) REFERENCES DEPARTMENT(deptname)
);

-- 学生STUDENT(学号studentid,姓名name,年龄age,班号classid)
CREATE TABLE hsp_STUDENT(
	studentid INT PRIMARY KEY,
	`name` VARCHAR(32) NOT NULL DEFAULT '',
	age INT NOT NULL DEFAULT 0,
	classid INT,
	FOREIGN KEY (classid) REFERENCES CLASS(classid)
);

-- 2. 插入如下数据
INSERT INTO DEPARTMENT VALUES('001','数学');
INSERT INTO DEPARTMENT VALUES('002','计算机');
INSERT INTO DEPARTMENT VALUES('003','化学');
INSERT INTO DEPARTMENT VALUES('004','中文');
INSERT INTO DEPARTMENT VALUES('005','经济');

INSERT INTO CLASS VALUES(101,'软件','计算机',1995,20);
INSERT INTO CLASS VALUES(102,'微电子','计算机',1996,30);
INSERT INTO CLASS VALUES(111,'无机化学','化学',1995,29);
INSERT INTO CLASS VALUES(112,'高分子化学','化学',1996,25);
INSERT INTO CLASS VALUES(121,'统计数学','数学',1995,20);
INSERT INTO CLASS VALUES(131,'现代语言','中文',1996,20);
INSERT INTO CLASS VALUES(141,'国际贸易','经济',1997,30);
INSERT INTO CLASS VALUES(142,'国际金融','经济',1996,14);

INSERT INTO hsp_STUDENT VALUES(8101,'张三',18,101);
INSERT INTO hsp_STUDENT VALUES(8102,'钱四',16,121);
INSERT INTO hsp_STUDENT VALUES(8103,'王玲',17,131);
INSERT INTO hsp_STUDENT VALUES(8105,'李飞',19,102);
INSERT INTO hsp_STUDENT VALUES(8109,'赵四',18,141);
INSERT INTO hsp_STUDENT VALUES(8110,'李可',20,142);
INSERT INTO hsp_STUDENT VALUES(8201,'张飞',18,111);
INSERT INTO hsp_STUDENT VALUES(8302,'周瑜',16,112);
INSERT INTO hsp_STUDENT VALUES(8203,'王亮',17,111);
INSERT INTO hsp_STUDENT VALUES(8305,'董庆',19,102);
INSERT INTO hsp_STUDENT VALUES(8409,'赵龙',18,101);
INSERT INTO hsp_STUDENT VALUES(8510,'李丽',20,142);

SELECT * FROM DEPARTMENT;
SELECT * FROM CLASS;
SELECT * FROM hsp_STUDENT;

-- 3. 完成以下查询功能
--    3.1 找出所有姓李的学生
SELECT * FROM hsp_STUDENT
	WHERE `name` LIKE '李%';
	
--    3.2 列出所有开设超过1个专业的系的名字
SELECT deptname,COUNT(*) AS nums FROM CLASS
	GROUP BY deptname
	HAVING nums > 1;
	
--    3.3 列出人数大于等于30的系的编号和名字
		
-- 先查出每个系有多少人
-- 将上面的结果看成是一个临时表,与DEPARTMENT表进行联合查询即可
SELECT temp.*,departmentid 
FROM DEPARTMENT,
		(SELECT SUM(num) AS nums,deptname 
		FROM CLASS
		GROUP BY deptname
		HAVING nums>=30) AS temp
	WHERE DEPARTMENT.deptname=temp.deptname;
		
		
-- 4. 学校又新增了一个物理系,编号为006
INSERT INTO department VALUES('006','物理系');

-- 5. 学生张三退学,请更新相关的表
-- 使用事务处理
START TRANSACTION ;
-- 5.1张三所在的班级人数要减1
UPDATE class SET num=num-1
	WHERE classid =(
	SELECT classid 
		FROM hsp_STUDENT
		WHERE `name` = '张三'
	);
-- 5.2将张三从学生表中删除	
DELETE 
	FROM hsp_STUDENT
	WHERE `name` = '张三';
-- 提交事务
COMMIT;

有关day10-习题的更多相关文章

  1. 由于 libgmp.10.dylib 的问题,Ruby 2.2.0 无法运行 - 2

    我刚刚安装了带有RVM的Ruby2.2.0,并尝试使用它得到了这个:$rvmuse2.2.0--defaultUsing/Users/brandon/.rvm/gems/ruby-2.2.0dyld:Librarynotloaded:/usr/local/lib/libgmp.10.dylibReferencedfrom:/Users/brandon/.rvm/rubies/ruby-2.2.0/bin/rubyReason:Incompatiblelibraryversion:rubyrequiresversion13.0.0orlater,butlibgmp.10.dylibpro

  2. ruby - ri 有空文件 – Ubuntu 11.10, Ruby 1.9 - 2

    我正在运行Ubuntu11.10并像这样安装Ruby1.9:$sudoapt-getinstallruby1.9rubygems一切都运行良好,但ri似乎有空文档。ri告诉我文档是空的,我必须安装它们。我执行此操作是因为我读到它会有所帮助:$rdoc--all--ri现在,当我尝试打开任何文档时:$riArrayNothingknownaboutArray我搜索的其他所有内容都是一样的。 最佳答案 这个呢?apt-getinstallri1.8编辑或者试试这个:(非rvm)geminstallrdocrdoc-datardoc-da

  3. ruby-on-rails - gem install rmagick -v 2.13.1 错误 Failed to build gem native extension on Mac OS 10.9.1 - 2

    我已经通过提供MagickWand.h的路径尝试了一切,我安装了命令工具。谁能帮帮我?$geminstallrmagick-v2.13.1Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingrmagick:ERROR:Failedtobuildgemnativeextension./Users/ghazanfarali/.rvm/rubies/ruby-1.8.7-p357/bin/rubyextconf.rbcheckingforRubyversion>=1.8.5...yescheckingfor/

  4. ruby - 安装 tiny_tds 在 mac os 10.10.5 上出现错误 - 2

    我正在使用macos,我想使用ruby​​驱动程序连接到sqlserver。我想使用tiny_tds,但它给出了缺少free_tds的错误,但它已经安装了。怎么能过这个?~brewinstallfreetdsWarning:freetds-0.91.112alreadyinstalled~sudogeminstalltiny_tdsBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtiny_tds:ERROR:Failedtobuildgemnativeextension.完整日志如下:/System

  5. ruby-on-rails - rails : Find tasks that were created on a certain day? - 2

    我有一个任务列表(名称、starts_at),我试图在每日View中显示它们(就像iCal)。deftodays_tasks(day)Task.find(:all,:conditions=>["starts_atbetween?and?",day.beginning,day.ending]end我不知道如何将Time.now(例如“2009-04-1210:00:00”)动态转换为一天的开始(和结束),以便进行比较。 最佳答案 deftodays_tasks(now=Time.now)Task.find(:all,:conditio

  6. ruby - rails 3.2.2(或 3.2.1)+ Postgresql 9.1.3 + Ubuntu 11.10 连接错误 - 2

    我正在使用PostgreSQL9.1.3(x86_64-pc-linux-gnu上的PostgreSQL9.1.3,由gcc-4.6.real(Ubuntu/Linaro4.6.1-9ubuntu3)4.6.1,64位编译)和在ubuntu11.10上运行3.2.2或3.2.1。现在,我可以使用以下命令连接PostgreSQLsupostgres输入密码我可以看到postgres=#我将以下详细信息放在我的config/database.yml中并执行“railsdb”,它工作正常。开发:adapter:postgresqlencoding:utf8reconnect:falsedat

  7. ruby-on-rails - 在 osx 10.9.3 上使用 RVM 安装 ruby​​-1.9.3-p547 时出错 - 2

    如何解决这个错误:$rvminstall1.9.3Searchingforbinaryrubies,thismighttakesometime.Nobinaryrubiesavailablefor:osx/10.9/x86_64/ruby-1.9.3-p547.Continuingwithcompilation.Pleaseread'rvmhelpmount'togetmoreinformationonbinaryrubies.Checkingrequirementsforosx.Certificatesin'/usr/local/etc/openssl/cert.pem'arealr

  8. u盘安装系统(win10为例) - 2

    下载微PE工具箱进入官网下载微PE工具箱-下载 安装好后,打开微PE工具箱客户端,选择安装PE到U盘 PE壁纸可选择自己喜欢的壁纸,勾选上包含DOS工具箱,个性化盘符图标 下载原版系统进入网站下载镜像NEXT,ITELLYOU如果没有账号,注册一下就好进入选择开始使用选择win10 这里我们选择消费者版,用迅雷把BT种子下载下来 下面的两个盘符,是PE工具箱安装进U盘后,分成的盘符,注意EFI的盘符,这里面不能删东西,也不能添东西,另一个盘符可以当做正常的U盘空间使用,我们现在需要把下载下来的景象文件复制到正常的U盘空间中去 这个时候我们的系统U盘就只做好了 安装系统我们将U盘插入电脑,开机,

  9. 什么是0day漏洞?如何预防0day攻击? - 2

    什么是0day漏洞?0day漏洞,是指已经被发现,但是还未被公开,同时官方还没有相关补丁的漏洞;通俗的讲,就是除了黑客,没人知道他的存在,其往往具有很大的突发性、破坏性、致命性。0day漏洞之所以称为0day,正是因为其补丁永远晚于攻击。所以攻击者利用0day漏洞攻击的成功率极高,往往可以达到目的并全身而退,而防守方却一无所知,只有在漏洞公布之后,才后知后觉,却为时已晚。“后知后觉、反应迟钝”就是当前安全防护面对0day攻击的真实写照!为了方便大家理解,中科三方为大家梳理当前安全防护模式下,一个漏洞从发现到解决的三个时间节点:T0:此时漏洞即0day漏洞,是已经被发现,还未被公开,官方还没有相

  10. ruby-on-rails - OSX 10.7.5 - Ruby on Rails LoadError : Could not open library 'sodium' : dlopen(sodium, 5) - 2

    输入rakedb:create后我得到:LoadError:Couldnotopenlibrary'sodium':dlopen(sodium,5):imagenotfound.Couldnotopenlibrary'libsodium.dylib':dlopen(libsodium.dylib,5):imagenotfound这里还有一些输出。/Users/Mao/.rvm/gems/ruby-2.0.0-p451/gems/ffi-1.9.3/lib/ffi/library.rb:133:in`blockinffi_lib'/Users/Mao/.rvm/gems/ruby-2.0

随机推荐