Skip navigation.

BeginerIT

Hi Everybody

10 điều phải chấp nhận nếu làm ngành IT


"Dương thịnh âm suy", thường xuyên bị stress, lương tăng chậm, dễ phải lấy người cùng nghề... là những thực tế bạn phải đối mặt nếu muốn theo đuổi nghề IT. Dưới đây là 10 thống kê vui những "nguy cơ" tiềm ẩn trong ngành IT mà bạn có thể phải đối mặt nếu quyết tâm theo đuổi nghề này, thông qua con mắt của một blogger làm trong nghề.


Ảnh minh họa.
1. Ở những ngành khác thì nữ vừa nhiều vừa xinh đẹp, ngành IT thì ngược lại

Điều này ai đã và đang học CNTT ở các trường ĐH đều biết rồi. Không riêng gì trong ngành CNTT mà những ngành kỹ thuật, số lượng nữ giới cũng rất thấp. Tuy nhiên so với các ngành như cơ khí, điện tử thì tỉ lệ nữ giới học CNTT cũng còn khá cao. Nhưng khi học xong và đi làm, tỉ lệ nữ giới làm lập trình lại càng giảm, đa số các bạn ấy làm QC, DB, BA… Ở nhóm tôi khoảng 20 người chỉ có mỗi 2 dev, 2 QC là nữ, còn lại toàn "đực rựa". Tuy nhiên điều an ủi là trong công ty vẫn có nhiều chị em xinh lắm, nhưng không làm ở bộ phận lập trình. Thiếu thốn này thường dẫn đến điều thứ hai.
2. Xác suất phải lập gia đình với người cùng ngành rất cao

Nghe có vẻ như hơi mâu thuẫn, đã ít nữ thì làm sao xác suất này cao được. Thế nhưng với những người làm IT thì kể từ lúc đi làm thường nhìn máy tính nhiều hơn giao tiếp với ngưòi thật nên sẽ ăn nói kém, giao tiếp kém, cơ hội gặp phụ nữ khác ngành cũng ít hơn người làm ở ngành khác nên trời kêu ai nấy dạ. Tuy nhiên chúng ta thường quen nửa cuộc đời của mình từ trong trường ĐH hoặc ở nơi làm việc nên điều này có thể cũng đúng với những người làm ở các ngành khác. Dù những người làm ở ngành IT chúng ta thường được cái thông minh, nhưng hai người thông minh thì sinh con ra chưa chắc thông minh nên đây cũng là một hiểm họa tiềm tàng. Hơn nữa, hai người cùng ngành IT giờ gặp nhau ngoài nói chuyện bug, code thì chán chết. Phải chi chàng kể chuyện bug, nàng hỏi bug là gì hở anh thì có phải thú vị hơn biết bao.
3. Bạn sẽ bị yếu đi

Điều này không có gì phải bàn cãi. Thứ nhất ngồi nhiều… thì bụng và mông sẽ to. Bụng càng to càng khó làm... nhiều thứ và tuổi thọ giảm. Ngồi nhiều còn có thể gây ra nhiều bệnh tế nhị khác. Ngoài hai bệnh đằng trước và đằng sau thì còn bệnh ở mắt do nhìn quá nhiều. Đa số người làm IT xung quanh ta đều bị cận thị. Gõ máy tính thường xuyên sẽ ảnh hưởng đến tim, rê chuột thường xuyên sẽ thoái hóa cổ tay. Ngoài ra cột sống sẽ bị chai hoặc mọc gai do tật ngồi nhiều hơn đứng của công việc này.

Ngoài ra, người làm IT thường có thói quen làm việc, sinh hoạt ban đêm. Cái giờ đáng lẽ những người ở những ngành khác làm cái việc mà ai cũng biết là việc gì thì người trong ngành IT lại gõ gõ, click click và thường gây ra bệnh đau bao tử. Tay chân ít hoạt động nên con người thường cảm thấy mỏi mệt, lười vận động, thậm chí cả lười tắm nên đừng thắc mắc tại sao một số SV ngành IT thường ở dơ. Nói chung làm cái nghề này nếu ko chịu sinh hoạt… điều độ thì đừng mong thọ.
4. Bạn sẽ thường xuyên bị làm phiền bởi người quen

Đây là một trong những điều tệ hại và khó chịu nhất bạn sẽ gặp phải. Những người quen của bạn: bạn bè, bà con, cô dì chú bác, bạn của ba của mẹ sẽ gọi điện nhờ bạn giúp khi họ không nghe nhạc được, máy khởi động chậm, không thấy webcam, không biết đưa hình lên blog. Kiểu hỗ trợ kỹ thuật miễn phí này nên cẩn thận vì nó sẽ thường xuyên lặp đi lặp lại. Một số trường hợp bạn sẽ được trả công nhưng theo tôi, bạn chẳng cần số tiền chả đáng đổ xăng đó làm gì so với thời gian phải chạy đi chạy lại. Đa số người nhờ bạn giúp sẽ mong muốn được hỗ trợ miễn phí và tôi chắc chúng ta sẽ không vui gì về điều đó. Vì vậy hãy tập nói không khi có thể.
5. Bạn sẽ phải thường xuyên về trễ mà không được trả tiền

Đặc thù của ngành IT là công việc thường không thể tính chính xác bằng giờ. Có nghĩa là không phải cứ một lượng thời gian nào đó thì sẽ làm xong một công việc. Thường chúng ta sẽ phải ở lại thêm 1 giờ, 2 giờ để làm nốt công việc của mình nếu bạn là người có trách nhiệm. Nhưng dù có trách nhiệm hay không thì khi công việc chưa xong mà đã gần đến deadline thì bạn vẫn phải ở lại để hoàn thành những gì còn dở dang, tất nhiên không có xu nào cả.
6. Bạn sẽ thường xuyên bị stress

Khi làm việc với những project lớn nhiều người, công việc sẽ theo flow rõ ràng, bạn làm, người khác test, manager gí, và khi đến những ngày cuối cùng là lúc bạn làm việc nhiều nhất. Phải suy nghĩ nhiều, cơ thể mệt mỏi, thiếu ngủ cộng với căng thẳng khi làm việc sẽ khiến nhiều người bị stress. Theo một số điều tra, thủ phạm gây stress nhiều nhất là email. Khi phải đọc khoảng 100 email một ngày thì người hiền lành cũng trở nên gắt gỏng. Bởi vậy những người làm IT thường hay khó chịu đột xuất.
7. Lương bạn sẽ tăng rất chậm

Làm IT lương khởi điểm sẽ khá cao so với một số ngành nhưng tốc độ tăng sẽ chậm và ít đột biến. Thường người làm IT sẽ giải quyết nhu cầu tăng lương bằng cách nhảy sang công ty khác. Cho nên những bạn sinh viên mới ra trường nên tìm một công ty có lương khởi điểm khá tốt, vì thông thường chu kỳ tăng lương sẽ là từng năm và khi lạm phát hai chữ số mà tăng lương dưới 15% cộng với trả lương bằng tiền Việt thì hơi bị đuối. Tốt nhất nên tìm hiểu những anh chị đi trước hoặc xác định mục tiêu của mình để tìm hướng đi khác vì làm lập trình chay khó làm giàu lắm.
8. Không phải lúc nào cũng được làm công việc ưa thích

Bạn từng nghĩ sẽ áp dụng những kỹ thuật tiên tiến nhất của các ngôn ngữ lập trình hiện đại, sẽ học hỏi những công nghệ mới nhất và làm việc với những chuyên gia đầy kinh nghiệm trong lĩnh vực CNTT nhưng thường không phải như vậy. Ở những công ty càng lớn càng có những project kỳ lạ kiểu như chuyển nguyên một chương trình từ VB6 sang C#, hoặc từ một ngôn ngữ rất cổ xưa sang C#.

Tuy đòi hỏi kiến thức lập trình trên hai ngôn ngữ, khả năng đọc hiểu code nhưng nói chung công việc như vậy khá nhàm chán và tôi nghĩ chẳng ai muốn theo đuổi lâu dài. Đối với những project lớn thì chi phí công nghệ mới là một trong những vấn đề quan tâm của khách hàng. Bạn muốn sử dụng SQL 2005 nhưng khách hàng sẽ nói “No” khi họ đã có licence cho SQL 2000 và không muốn bỏ tiền mua thứ mới. Bạn muốn sử dụng ASP.NET để làm website cho khách hàng nhưng họ cho rằng PHP sẽ rẻ hơn vì không tốn nhiều licence cho máy chủ WINDOWS. Bạn muốn dùng ORM tool để tiết kiệm thời gian lập trình nhưng khách hàng nhất quyết bạn phải dùng Store Procedure và viết code gọi bằng C# vì làm vậy nhanh hơn 30 milisecond khi gọi 10.000 query. Nói chung khách hàng là thượng đế và chúng ta phải nghe theo.
9. Khi nhảy việc cũng không đơn giản, có khi phải bắt đầu lại từ đầu

Lương bạn hiện không cao trong khi lương tụi bạn đã gấp hai mình. Đề nghị sếp tăng lương thì sao, liệu sếp có chịu tăng cho mình gấp rưỡi không chứ đừng nói gấp hai. Tại sao không nhảy việc khi vừa có thể có lương cao hơn lại có thể học hỏi nhiều cái mới và làm quen nhiều con người mới. Nhưng khi nhảy việc là lúc bạn phải chấp nhận làm lại từ đầu. Có thể bạn có nhiều kinh nghiệm từ công ty cũ nhưng sang môi trường mới sẽ không có đất để dụng võ. Và khi chưa biết gì hết thì bạn sẽ là một newbie (dân tay mơ) và chấp nhận làm lại từ con số không. Vì vậy, theo tôi, nếu tìm được công việc mới lương gấp rưỡi trở lên thì hãy nhảy, còn không ở lại cho lành và chờ thời cơ.
10. Rất khó để tự kinh doanh riêng về IT

Tỉ lệ thất bại cao của các công ty IT mới thành lập đã nói lên điều này. Nếu bạn làm IT khi muốn mở một công ty làm phần mềm thì rất khó. Một trong những khó khăn lớn nhất là sự cạnh tranh. Bạn sẽ khó kiếm được project từ những khách hàng lớn khi công ty của bạn chưa hề có tên tuổi hoặc không có công ty mẹ đỡ đầu. Nếu chấp nhận làm dự án nhỏ thì có vô khối công ty đã làm như vậy. Những công ty may mắn sống sót nhờ vào dạng những project nhỏ này họ có thể thực hiện website trong một tuần nhờ tái sử dụng những cái đã có từ project cũ và chúng ta sẽ khó cạnh tranh mỗi khi kinh nghiệm tổ chức và kinh doanh là con số 0. Giỏi lập trình không có nghĩa là giỏi quản lý, và càng không có nghĩa là giỏi kinh doanh nên làm công ty về IT không hề đơn giản. Và khi không có project nào trong khi phải nuôi đội quân cỡ năm người, cộng với trả tiền điện, tiền mặt bằng trong ba tháng là bạn phải nghĩ đến chuyện giải tán.

Đó là 10 trong khá nhiều những khó khăn, thiệt thòi, gian khổ của ngành IT. Làm IT không đơn giản và không sướng chút nào, càng không dễ làm giàu. Thế nên những ai nghĩ làm IT sướng và lương cao thì nên xem lại và cân nhắc nếu như đang chọn nghề cho mình. Đây là những ý kiến chủ quan của tôi, có thể có nhiều ý kiến trái ngược và bổ sung khác nên rất mong được sự chia sẻ từ các bạn. Mọi comment khen ngợi, chửi bới đều hoan nghênh.

Theo Tuổi trẻ (Blogger Thoại Nguyễn)

Oracle Delete SQL

Source: psoug
Oracle Delete Statements
Version 11.1
Basic Delete Statements

Delete All Rows
DELETE <table_name>
or
DELETE FROM <table_name>;
CREATE TABLE t AS
SELECT *
FROM all_tables;

SELECT COUNT(*)
FROM t;

DELETE FROM t;

COMMIT;

SELECT COUNT(*)
FROM t;

Delete Selective Rows
DELETE FROM <table_name>
WHERE <condition>;
CREATE TABLE t AS
SELECT *
FROM all_tables;

SELECT COUNT(*)
FROM t;

DELETE FROM t
WHERE table_name LIKE '%MAP';

COMMIT;

SELECT COUNT(*)
FROM t;

Delete From A SELECT Statement
DELETE FROM (<SELECT Statement>);
CREATE TABLE t AS
SELECT *
FROM all_tables;

SELECT COUNT(*)
FROM t;

DELETE FROM (SELECT * FROM t WHERE table_name LIKE '%MAP');

SELECT COUNT(*)
FROM t;

Delete With Returning Clause
DELETE FROM (<SELECT Statement>);
CREATE TABLE t AS
SELECT *
FROM all_tables;

set serveroutput on

DECLARE
r urowid;
BEGIN
DELETE FROM t
WHERE rownum = 1
RETURNING rowid INTO r;

dbms_output.put_line(r);
END;
/
Delete Restricted To A Partition DELETE FROM <table_name>
PARTITION <partition_name>;
DELETE FROM sales PARTITION (q1_2001_invoices);
Delete From A Remote Database DELETE FROM <table_name>@<database_link>
DELETE FROM t@remote_db;

Oracle Update Statement - danh cho Beginer IT

Source:psoug
Oracle Update Statements
Version 11.1
 
Basic Update Statements

Update all records
UPDATE <table_name>
SET <column_name> = <value>
CREATE TABLE test AS
SELECT object_name, object_type
FROM all_objs;

SELECT DISTINCT object_name
FROM test;

UPDATE test
SET object_name = 'OOPS';

SELECT DISTINCT object_name
FROM test;

ROLLBACK;

Update a specific record
UPDATE <table_name>
SET <column_name> = <value>
WHERE <column_name> = <value>
SELECT DISTINCT object_name
FROM test;

UPDATE test
SET object_name = 'LOAD'
WHERE object_name = 'DUAL';

COMMIT;

SELECT DISTINCT object_name
FROM test

Update based on a single queried value
UPDATE <table_name>
SET <column_name> = (
  SELECT <column_name>
  FROM <table_name
  WHERE <column_name> <condition> <value>)
WHERE <column_name> <condition> <value>;
CREATE TABLE test AS
SELECT table_name, CAST('' AS VARCHAR2(30)) AS lower_name
FROM user_tables;

desc test

SELECT *
FROM test
WHERE table_name LIKE '%A%';

SELECT *
FROM test
WHERE table_name NOT LIKE '%A%';

-- this is not a good thing ...
UPDATE test t
SET lower_name = (
  SELECT DISTINCT LOWER(table_name)
  FROM user_tables u
  WHERE u.table_name = t.table_name
  AND u.table_name LIKE '%A%');
-- look at the number of rows updated

SELECT * FROM test;

-- neither is this
UPDATE test t
SET lower_name = (
  SELECT DISTINCT LOWER(table_name)
  FROM user_tables u
  WHERE u.table_name = t.table_name
  AND u.table_name NOT LIKE '%A%');

SELECT * FROM test;

UPDATE test t
SET lower_name = (
  SELECT DISTINCT LOWER(table_name)
  FROM user_tables u
  WHERE u.table_name = t.table_name
  AND u.table_name LIKE '%A%')
WHERE t.table_name LIKE '%A%';

SELECT * FROM test;

Update based on a query returning multiple values
UPDATE <table_name> <alias>
SET (<column_name>,<column_name> ) = (
   SELECT (<column_name>, <column_name>)
   FROM <table_name>
   WHERE <alias.column_name> = <alias.column_name>)
WHERE <column_name> <condition> <value>;
CREATE TABLE test AS
SELECT t. table_name, t. tablespace_name,  s.extent_management
FROM user_tables t, user_tablespaces s
WHERE t.tablespace_name = s. tablespace_name
AND 1=2;

desc test

SELECT * FROM test;

-- does not work
UPDATE test
SET (table_name, tablespace_name) = (
  SELECT table_name, tablespace_name
  FROM user_tables);

-- works
INSERT INTO test
(table_name, tablespace_name)
SELECT table_name, tablespace_name
FROM user_tables;

COMMIT;

SELECT *
FROM test
WHERE table_name LIKE '%A%';

-- does not work
UPDATE test t
SET tablespace_name, extent_management = (
  SELECT tablespace_name, extent_management
  FROM user_tables a, user_tablespaces u
  WHERE t.table_name = a.table_name
  AND a.tablespace_name = u.tablespace_name
  AND t.table_name LIKE '%A%');

-- works but look at the number of rows updated
UPDATE test t
SET (tablespace_name, extent_management) = (
  SELECT DISTINCT u.tablespace_name, u.extent_management
  FROM user_tables a, user_tablespaces u
  WHERE t.table_name = a.table_name
  AND a.tablespace_name = u.tablespace_name
  AND t.table_name LIKE '%A%');

ROLLBACK;

-- works properly
UPDATE test t
SET (tablespace_name, extent_management) = (
  SELECT DISTINCT (u.tablespace_name, u.extent_management)
  FROM user_tables a, user_tablespaces u
  WHERE t.table_name = a.table_name
  AND a.tablespace_name = u.tablespace_name)
WHERE t.table_name LIKE '%A%';

SELECT * FROM test;

Update the results of a SELECT statement
UPDATE (<SELECT Statement>)
SET <column_name> = <value>
WHERE <column_name> <condition> <value>;
SELECT *
FROM test
WHERE table_name LIKE '%A%
';

SELECT *
FROM test
WHERE table_name NOT LIKE '%A%
';

UPDATE (
  SELECT *
  FROM test
  WHERE table_name NOT LIKE '%A%
')
SET extent_management = 'Unknown'
WHERE table_name NOT LIKE '%A%';

SELECT * FROM test;
 
Correlated Update

Single column
UPDATE TABLE(<SELECT STATEMENT>) <alias>
SET <column_name> = (
  SELECT <column_name>
  FROM <table_name> <alias>
  WHERE <alias.table_name> = <alias.table_name>);
conn hr/hr

CREATE TABLE empnew AS
SELECT * FROM employees;

UPDATE empnew
SET salary = salary * 1.1;

UPDATE employees t1
SET salary = (
  SELECT salary
  FROM empnew t2
  WHERE t1.employee_id = t2.employee_id);

drop table empnew;

Multi-column
UPDATE <table_name> <alias>
SET (<column_name_list>) = (
  SELECT <column_name_list>
  FROM <table_name> <alias>
  WHERE <alias.table_name> <condition> <alias.table_name>);
CREATE TABLE t1 AS
SELECT table_name, tablespace_name
FROM user_tables
WHERE rownum < 11;

CREATE TABLE t2 AS
SELECT table_name,
TRANSLATE(tablespace_name,'AEIOU','VWXYZ') AS TABLESPACE_NAME
FROM user_tables
WHERE rownum < 11;

SELECT * FROM t1;

SELECT * FROM t2;

UPDATE t1 t1_alias
SET (table_name, tablespace_name) = (
  SELECT table_name, tablespace_name
  FROM t2 t2_alias
  WHERE t1_alias.table_name = t2_alias.table_name);

SELECT * FROM t1;
 
Nested Table Update
  See Nested Tables page
 
Update With Returning Clause

Returning Clause demo
UPDATE (<SELECT Statement>)
SET ....
WHERE ....
RETURNING <values_list>
INTO <variables_list>;
conn hr/hr

var bnd1 NUMBER
var bnd2 VARCHAR2(30)
var bnd3 NUMBER

UPDATE employees
SET job_id ='SA_MAN', salary = salary + 1000,
department_id = 140
WHERE last_name = 'Jones'
RETURNING salary*0.25, last_name, department_id
INTO
:bnd1, :bnd2, :bnd3;

print bnd1
print bnd2
print bnd3

rollback;
conn hr/hr

variable bnd1 NUMBER

UPDATE employees
SET salary = salary * 1.1
WHERE department_id = 100
RETURNING SUM(salary) INTO :bnd1;

print bnd1

rollback;
 
Update Object Table

Update a table object
UPDATE <table_name> <alias>
SET VALUE (<alias>) = (
  <SELECT statement>)
WHERE <column_name> <condition> <value>;
CREATE TYPE people_typ AS OBJECT (
last_name     VARCHAR2(25),
department_id NUMBER(4),
salary        NUMBER(8,2));
/

CREATE TABLE people_demo1 OF people_typ;

desc people_demo1

CREATE TABLE people_demo2 OF people_typ;

desc people_demo2

INSERT INTO people_demo1
VALUES (people_typ('Morgan', 10, 100000));

INSERT INTO people_demo2
VALUES (people_typ('Morgan', 10, 150000));

UPDATE people_demo1 p
SET VALUE(p) = (
  SELECT VALUE(q) FROM people_demo2 q
  WHERE p.department_id = q.department_id)
WHERE p.department_id = 10;

SELECT * FROM people_demo1;
 
Record Update

Update based on a record

Note: This construct updates every column so use with care. May cause increased redo, undo, and foreign key locking issues.

UPDATE <table_name>
SET ROW = <record_name>
WHERE <column_name> <condition> <value>;
CREATE TABLE t AS
SELECT table_name, tablespace_name
FROM all_tables;

SELECT DISTINCT tablespace_name
FROM t;

DECLARE
 trec  t%ROWTYPE;
BEGIN
  trec.table_name := 'DUAL';
  trec.tablespace_name := 'NEW_TBSP';

  UPDATE t
  SET ROW = trec
  WHERE table_name = 'DUAL';

  COMMIT;
END;
/

SELECT DISTINCT tablespace_name
FROM t;
 
Update Partitioned Table

Update only records in a single partition
UPDATE <table_name> PARTITION (<partition_name>)
SET <column_name> = <value>
WHERE <column_name> <condition> <value>;
conn sh/sh

UPDATE sales PARTITION (sales_q1_2005) s
SET s.promo_id = 494
WHERE amount_sold > 9000;

Oracle Insert Statements SQL PL/SQL - Danh cho Beginer

<html> <head> </head> Source: psoug
Oracle Insert Statements - Danh cho Beginer
Version 11.1
Basic Inserts
CREATE TABLE state (
state_abbrev VARCHAR2(2));

INSERT INTO state
(state_abbrev)
VALUES
('WA');

COMMIT;

SELECT * FROM state;

Multiple Column Table Or View - All Columns
INSERT INTO <table_name>
VALUES
(<comma_separated_value_list>);
ALTER TABLE state
ADD (state_name VARCHAR2(30));

INSERT INTO state
(state_abbrev, state_name)
VALUES
('OR', 'Oregon');

COMMIT;

SELECT * FROM state;

Multiple Column Table Or View - Not All Columns
INSERT INTO <table_name>
(<comma_separated_column_name_list>)
VALUES
(<comma_separated_value_list>);
RENAME state TO state_city;

ALTER TABLE state_city
ADD (city_name VARCHAR2(30));

INSERT INTO state_city
(state_abbrev, city_name)
VALUES
('CA', 'San Francisco');

COMMIT;

SELECT * FROM state_city;

Problem Not Specifying Column Names Demo
INSERT INTO <table_name>
(<comma_separated_column_name_list>)
VALUES
(<comma_separated_value_list>);
desc state_city

INSERT INTO state_city
VALUES
('NV', 'Nevada', 'Las Vegas');

desc state_city
 
INSERT SELECT

Insert From SELECT statement
INSERT INTO <table_name> <SELECT Statement>;
CREATE TABLE zip_new (
zip_code     VARCHAR2(5) NOT NULL,
state_abbrev VARCHAR2(2) NOT NULL,
city_name    VARCHAR2(30));

INSERT INTO zip_new
SELECT zip_code, state_abbrev, city_name
FROM postal_code;

SELECT * FROM zip_new;
 
RECORD INSERT

Insert Using A Record
INSERT INTO <table_name>
VALUES <record_name>;
CREATE TABLE t AS
SELECT table_name, tablespace_name
FROM all_tables;

SELECT COUNT(*)
FROM t;

DECLARE
 trec  t%ROWTYPE;
BEGIN
  trec.table_name := 'NEW';
  trec.tablespace_name := 'NEW_TBSP';

  INSERT INTO t
  VALUES trec;

  COMMIT;
END;
/

SELECT COUNT(*) FROM t;
 
INSERT WHEN

Demo Tables
CREATE TABLE emp (
empno  NUMBER(4) NOT NULL,
ename  VARCHAR2(10),
job    VARCHAR2(9),
mgr    NUMBER(4),
sal    NUMBER(7,2),
deptno NUMBER(2));

CREATE TABLE emp_10 AS SELECT * FROM emp WHERE 1=0;
CREATE TABLE emp_20 AS SELECT * FROM emp WHERE 1=0;
CREATE TABLE emp_30 AS SELECT * FROM emp WHERE 1=0;
CREATE TABLE leftover AS SELECT * FROM emp WHERE 1=0;

Demo Data
INSERT INTO emp VALUES
(7369, 'SMITH', 'CLERK', 7902, 800, 20);
INSERT INTO EMP VALUES
(7499, 'ALLEN', 'SALESMAN', 7698, 1600, 30);
INSERT INTO EMP VALUES
(7521, 'WARD', 'SALESMAN', 7698, 1250, 30);
INSERT INTO EMP VALUES
(7566, 'JONES', 'MANAGER', 7839, 2975, 20);
INSERT INTO EMP VALUES
(7654, 'MARTIN', 'SALESMAN', 7698, 1250, 30);
INSERT INTO EMP VALUES
(7698, 'BLAKE', 'MANAGER', 7839, 2850, 30);
INSERT INTO EMP VALUES
(7782, 'CLARK', 'MANAGER', 7839, 2450, 10);
INSERT INTO EMP VALUES
(7788, 'SCOTT', 'ANALYST', 7566, 3000, 20);
INSERT INTO EMP VALUES
(7839, 'KING', 'PRESIDENT', NULL, 5000, 10);
INSERT INTO EMP VALUES
(7844, 'TURNER', 'SALESMAN', 7698, 1500, 30);
INSERT INTO EMP VALUES
(7876, 'ADAMS', 'CLERK', 7788, 1100, 20);
INSERT INTO EMP VALUES
(7900, 'JAMES', 'CLERK', 7698, 950, 30);
INSERT INTO EMP VALUES
(7902, 'FORD', 'ANALYST', 7566, 3000, 60);
INSERT INTO EMP VALUES
(7934, 'MILLER', 'CLERK', 7782, 1300, 10);
COMMIT;

Demo Insert Statement
INSERT
WHEN (<condition>) THEN
  INTO <table_name> (<column_list>)
  VALUES (<values_list>)
WHEN (<condition>) THEN
  INTO <table_name> (<column_list>)
  VALUES (<values_list>)
ELSE
  INTO <table_name> (<column_list>)
  VALUES (<values_list>)
SELECT <column_list> FROM <table_name>;
INSERT
WHEN (deptno=10) THEN
  INTO emp_10 (empno,ename,job,mgr,sal,deptno)
  VALUES (empno,ename,job,mgr,sal,deptno)
WHEN (deptno=20) THEN
  INTO emp_20 (empno,ename,job,mgr,sal,deptno)
  VALUES (empno,ename,job,mgr,sal,deptno)
WHEN (deptno=30) THEN
  INTO emp_30 (empno,ename,job,mgr,sal,deptno)
  VALUES (empno,ename,job,mgr,sal,deptno)
ELSE
  INTO leftover (empno,ename,job,mgr,sal,deptno)
  VALUES (empno,ename,job,mgr,sal,deptno)
SELECT * FROM emp;

SELECT * FROM emp_10;
SELECT * FROM emp_20;
SELECT * FROM emp_30;
SELECT * FROM leftover;
 
INSERT ALL

Without the WHEN clause INSERT ALL performs all inserts unconditionally
INSERT ALL
INTO <table_name> VALUES <column_name_list)
INTO <table_name> VALUES <column_name_list)
...
<SELECT Statement>;
CREATE TABLE ap_cust (
customer_id VARCHAR2(4),
program_id VARCHAR2(3),
del_date DATE);

CREATE TABLE ap_orders (
order_date DATE,
program_id VARCHAR2(3));

INSERT ALL
INTO ap_cust VALUES (customer_id, program_id, delivered_date)
INTO ap_orders VALUES (order_date, program_id)
SELECT program_id, delivered_date, customer_id, order_date
FROM airplanes;

SELECT * FROM ap_cust
WHERE rownum < 1001;

SELECT * FROM ap_orders
WHERE rownum < 1001;
CREATE TABLE t (
pid   NUMBER(5),
fname VARCHAR2(20),
lname VARCHAR2(25));

INSERT ALL
INTO t (pid, fname, lname)
VALUES (1, 'Dan', 'Morgan')
INTO t (pid, fname, lname)
VALUES (2, 'Jack', 'Cline')
INTO t (pid, fname, lname)
VALUES (3, 'Helen', 'Lofstrom')
SELECT * FROM dual;

SELECT * FROM t;
 
INSERT ALL WHEN

Demo Insert ALL Variation
INSERT
WHEN (<condition>) THEN
  INTO <table_name> (<column_list>)
  VALUES (<values_list>)
WHEN (<condition>) THEN
  INTO <table_name> (<column_list>)
  VALUES (<values_list>)
ELSE
  INTO <table_name> (<column_list>)
  VALUES (<values_list>)
SELECT <column_list> FROM <table_name>;
TRUNCATE TABLE emp_10;
TRUNCATE TABLE emp_20;
TRUNCATE TABLE emp_30;
TRUNCATE TABLE leftover;

INSERT ALL

WHEN (deptno=10) THEN
  INTO emp_10 (empno,ename,job,mgr,sal,deptno)
  VALUES (empno,ename,job,mgr,sal,deptno)
WHEN (deptno=20) THEN
  INTO emp_20 (empno,ename,job,mgr,sal,deptno)
  VALUES (empno,ename,job,mgr,sal,deptno)
WHEN (deptno<=30) THEN
  INTO emp_30 (empno,ename,job,mgr,sal,deptno)
  VALUES (empno,ename,job,mgr,sal,deptno)
ELSE
  INTO leftover (empno,ename,job,mgr,sal,deptno)
  VALUES (empno,ename,job,mgr,sal,deptno)
SELECT * FROM emp;

SELECT * FROM emp_10;
SELECT * FROM emp_20;
SELECT * FROM emp_30;
SELECT * FROM leftover;
 
INSERT FIRST WHEN

The WHEN clause is evaluated in the order in which it appears in the statement. For the first WHEN clause that evaluates to true, the database executes the corresponding INTO clause and skips subsequent WHEN clauses for the given row.
INSERT FIRST
INTO <table_name> VALUES <column_name_list)
INTO <table_name> VALUES <column_name_list)
...
<SELECT Statement>;
CREATE TABLE cust_ah (
customer_id VARCHAR2(4),
program_id VARCHAR2(3),
del_date DATE);

CREATE TABLE cust_ip (
customer_id VARCHAR2(4),
program_id VARCHAR2(3),
del_date DATE);

CREATE TABLE cust_qz (
customer_id VARCHAR2(4),
program_id VARCHAR2(3),
del_date DATE);

INSERT FIRST
WHEN customer_id < 'I' THEN
  INTO cust_ah
  VALUES (customer_id, program_id, delivered_date)
WHEN customer_id < 'Q' THEN
  INTO cust_ip
  VALUES (customer_id, program_id, delivered_date)
WHEN customer_id > 'PZZZ' THEN
  INTO cust_qz
  VALUES (customer_id, program_id, delivered_date)
SELECT program_id, delivered_date, customer_id, order_date
FROM airplanes;

SELECT customer_id, COUNT(*)
FROM cust_ah
GROUP BY customer_id;

SELECT customer_id, COUNT(*)
FROM cust_ip
GROUP BY customer_id;

SELECT customer_id, COUNT(*)
FROM cust_qz
GROUP BY customer_id;
 
INSERT WITH CHECK OPTION
Note: Use WITH CHECK OPTION to indicate that Oracle prohibits any changes to the table or view that would produce rows that are not included in the subquery

CHECK OPTION demo
INSERT INTO (
<SQL_statement> WITH CHECK OPTION)
VALUES
(value_list);
CREATE TABLE dept (
deptno NUMBER(2),
dname  VARCHAR2(15),
loc    VARCHAR2(15));

INSERT INTO dept VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO dept VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO dept VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO dept VALUES (40, 'OPERATIONS', 'BOSTON');
COMMIT;

SELECT * FROM dept;

INSERT INTO (
SELECT deptno, dname, loc
FROM dept
WHERE deptno < 30)
VALUES (98, 'TRAVEL', 'SEATTLE');

SELECT * FROM dept;

INSERT INTO (
SELECT deptno, dname, loc
FROM dept
WHERE deptno < 30 WITH CHECK OPTION)
VALUES (99, 'TRAVEL', 'SEATTLE');

SELECT * FROM dept;
 
Anonymous Block Insert

Demo Insert Statement
BEGIN
   <INSERT Statements>
END;
/
TRUNCATE TABLE zip_new;

-- copy the following 10 lines into SQL*Plus as is:

INSERT INTO zip_new
VALUES ('98101', 'WA', 'Seattle');
INSERT INTO zip_new
VALUES ('98004', 'WA', 'Bellevue');
INSERT INTO zip_new
VALUES ('98040', 'WA', 'Mercer Is.');
INSERT INTO zip_new
VALUES ('98072', 'WA', 'Woodinville');
INSERT INTO zip_new
VALUES ('98065', 'CA', 'Los Angeles');

SELECT * FROM zip_new;

ROLLBACK;

BEGIN
  INSERT INTO zip_new
  VALUES ('98101', 'WA', 'Seattle');
  INSERT INTO zip_new
  VALUES ('98004', 'WA', 'Bellevue');
  INSERT INTO zip_new
  VALUES ('98040', 'WA', 'Mercer Is.');
  INSERT INTO zip_new
  VALUES ('98072', 'WA', 'Woodinville');
  INSERT INTO zip_new
  VALUES ('98065', 'CA', 'Los Angeles');
END;
/


SELECT * FROM zip_new;
 
Inserting Into A SELECT Statement

Demo Insert Statement
INSERT INTO (<SELECT Statement>);
SELECT empno, ename, job, sal, deptno
FROM emp;


INSERT INTO (
  SELECT empno, ename, job, sal, deptno
  FROM emp)

  VALUES
  (1, 'MORGAN', 'DBA', '1', 40);

SELECT * FROM emp;
 
Create Table INSERT (CTAS)

Demo Table Creation Insert
CREATE TABLE <table_name> AS <SELECT Statement>;
CREATE TABLE servers_bak AS
SELECT *
FROM servers;

desc servers_bak

SELECT COUNT(*)
FROM servers_bak;
 
INSERT With Returning Clause

Demo Insert With Returning Clause
INSERT INTO <table_name>
(column_list)
VALUES
(values_list)
RETURNING <value_name>
INTO <variable_name>;
-- Use emp table from INSERT-WHEN demo above

CREATE SEQUENCE seq_emp;

set serveroutput on

DECLARE
 x emp.empno%TYPE;
BEGIN
  INSERT INTO emp
  (empno, ename)
  VALUES
  (seq_emp.NEXTVAL, 'Morgan')
  RETURNING empno
  INTO x;

  dbms_output.put_line(x);
END;
/

DECLARE
 r rowid;
BEGIN
  INSERT INTO emp
  (empno, ename)
  VALUES
  (seq_emp.NEXTVAL, 'Morgan')
  RETURNING rowid
  INTO r;

  dbms_output.put_line(r);
END;
/

DECLARE
 x emp.empno%TYPE;
 r rowid;
BEGIN
  INSERT INTO emp
  (empno, ename)
  VALUES
  (seq_emp.NEXTVAL, 'Morgan')
  RETURNING rowid, empno
  INTO r, x;

  dbms_output.put_line(r);
  dbms_output.put_line(x);
END;
/

/

/

/
 
Inserting Dates

Date Format Specification
CREATE TABLE t (
scol VARCHAR2(20),
dcol DATE);

INSERT INTO t
(scol, dcol)
VALUES
('Test', TO_DATE('01-12-2007', 'MM-DD-YYYY'));

SELECT * FROM t;

INSERT INTO t
(scol, dcol)
VALUES
('Test', TO_DATE('01-12-2007', 'DD-MM-YYYY'));

SELECT * FROM t;

INSERT INTO t
(scol, dcol)
VALUES
('Test', DATE '2007-07-01');

SELECT * FROM t;
</body> </html>

Oracle Select Statements

Source: psoug <html> <head> Oracle Select Statement BeginerIT sưu tầm </head>
Oracle Select Statements - Danh cho Beginer
Version 11.1
Basic Select Statements
Select All Columns and All Records in a Single Table or View SELECT *
FROM <table_name>;
SELECT *
FROM all_tables;
Select Named Columns SELECT <column_name, column_name, ..., <column_name>
FROM <table_name>;
SELECT table_name, tablespace_name, num_rows
FROM all_tables;
Create Table As (CTAS)

Note: Redo only created when in ARCHIVE LOG mode
CREATE TABLE <table_name> AS
SELECT <column_name, column_name, ..., <column_name>
FROM <table_name>;
CREATE TABLE t AS
SELECT *
FROM all_tables;
SELECTs can go anywhere SELECT DECODE((SELECT 'x' FROM DUAL), (SELECT 'x' FROM DUAL), (SELECT 'y' FROM dual)) AS RESULT
FROM (SELECT 'm' FROM dual)
WHERE (SELECT 1 FROM dual) = (SELECT 1 FROM dual)
AND (SELECT 2 FROM dual) BETWEEN (SELECT 1 FROM dual) AND (SELECT 3 FROM dual)
AND NVL((SELECT NULL FROM dual ), (SELECT 'z' FROM dual)) = (SELECT 'z' FROM dual)
ORDER BY (SELECT 1 FROM dual);
Select Statement With SAMPLE Clause

Sample Clause Returning 1% Of Records
SELECT *
FROM <table_name>
SAMPLE (1);
CREATE TABLE t AS
SELECT object_name
FROM all_objects
WHERE SUBSTR(object_name,1,1) BETWEEN 'A' AND 'W';

SELECT COUNT(*)
FROM t;

SELECT COUNT(*) * 0.1
FROM t;

SELECT *
FROM t
SAMPLE(1);

SELECT *
FROM t
SAMPLE(1);

SELECT *
FROM t
SAMPLE(1);
Select Statement With WHERE Clause

Sample Clause Returning 35% Of Records After Filtering With A WHERE Clause
SELECT *
FROM <table_name>
SAMPLE (3.5)
WHERE ....
SELECT COUNT(*)
FROM t
WHERE object_name LIKE '%J%';

SELECT COUNT(*) * 0.35
FROM t
WHERE object_name LIKE '%J%';

SELECT *
FROM t
SAMPLE(35)
WHERE object_name LIKE '%J%';

SELECT *
FROM t
SAMPLE(35)
WHERE object_name LIKE '%J%';

SELECT *
FROM t
SAMPLE(35)
WHERE object_name LIKE '%J%';
Select Statement With GROUP BY Clause

Select with Group By Clause
SELECT <column_name>, <aggregating_operation>
FROM <table_name>
GROUP BY <column_name>;
SELECT object_type, COUNT(*)
FROM all_objects
WHERE SUBSTR(object_name,1,1) BETWEEN 'A' AND 'W'
GROUP BY object_type;
Select Statement With HAVING Clause

Select With Having Clause
SELECT <column_name>, <aggregating_operation>
FROM <table_name>
GROUP BY <column_name>
HAVING <aggregating_op_result> <condition> <value>;
SELECT object_type, COUNT(*)
FROM all_objects
WHERE SUBSTR(object_name,1,1) BETWEEN 'A' AND 'W'
GROUP BY object_type
HAVING COUNT(*) < 6;

SELECT object_type, COUNT(*)
FROM all_objects
WHERE SUBSTR(object_name,1,1) BETWEEN 'A' AND 'W'
GROUP BY object_type
HAVING COUNT(*) > 5;
Scalar Select
Select In Select Clause SELECT (
SELECT <single_value
FROM <table_name>
FROM <table_name>;
SELECT (SELECT 1 FROM dual) FROM dual;
Select Unique Values
Distinct SELECT DISTINCT <column_name_list>
FROM <table_name>;
SELECT DISTINCT object_type
FROM all_objects
WHERE SUBSTR(object_name,1,1) BETWEEN 'A' AND 'W';
Unique SELECT UNIQUE <column_name_list>
FROM <table_name>;
SELECT UNIQUE object_type
FROM all_objects
WHERE SUBSTR(object_name,1,1) BETWEEN 'A' AND 'W';
Select Statement Using Functions

Date Function Example
SELECT <date_function(<column_name>))
FROM <table_name>;
desc all_objects

SELECT object_name, TO_DATE(timestamp, 'YYYY-MM-DD:HH24:MI:SS')
FROM all_objects
WHERE rownum < 11;

Numeric Function Example
SELECT <numeric_function(<column_name>))
FROM <table_name>;
desc user_extents

SELECT SUM(bytes)/1024/1024 USED_MB
FROM user_extents;

SELECT segment_type, SUM(bytes)/1024/1024 USED_MB
FROM user_extents
GROUP BY segment_type;

String Function Example
SELECT <string_function(<column_name>))
FROM <table_name>;
desc all_objects

SELECT object_name, LOWER(object_name) LOWER_ONAME
FROM all_objects
WHERE rownum < 11;
Select For Update

Lock Record(s)
SELECT <column_name_list)
FROM <table_name_list>
FOR UPDATE;
CREATE TABLE parents (
pid NUMBER(10),
cash NUMBER(10,2));

CREATE TABLE children
(cid NUMBER(10),
fid NUMBER(10),
fin_level VARCHAR2(35));


DECLARE
CURSOR x_cur IS
SELECT pid
FROM parents;

x_rec x_cur%ROWTYPE;

x NUMBER(10,2) := 18000.64;
y NUMBER(10,2) := 100;

BEGIN
DELETE FROM parents;
DELETE FROM children;

FOR i IN 1..25
LOOP
INSERT INTO parents
VALUES (y, x);

x := x+1235.31;
y := y-1;
END LOOP;

y := 0;

OPEN x_cur;
LOOP
FETCH x_cur INTO x_rec;
EXIT WHEN x_cur%NOTFOUND;

y := y+1;

INSERT INTO children (cid, fid)
VALUES (y, x_rec.pid);

y := y+1;

INSERT INTO children (cid, fid)
VALUES (y, x_rec.pid);
END LOOP;
CLOSE x_cur;
COMMIT;
END;
/


CREATE OR REPLACE PROCEDURE cursor_loop3 IS

CURSOR x_cur IS
SELECT pid, cash
FROM parents
WHERE cash < 35000
FOR UPDATE
;

BEGIN
FOR x_rec IN x_cur
LOOP
UPDATE parents
SET cash = FLOOR(cash)

WHERE CURRENT OF x_cur;
END LOOP;
COMMIT;
END cursor_loop
3;
/
FOR UPDATE with NOWAIT See Deadlocks Demo page
FOR UPDATE with WAIT See Deadlocks Demo page
FOR UPDATE with SKIP LOCKED See Deadlocks Demo page
Partition Select

Select From Named Partition
SELECT DISTINCT <column_name_list>
FROM <table_name> PARTITION (<partition_name>);
CREATE TABLE pt (
deptno NUMBER(10),
state VARCHAR2(2))
PARTITION BY LIST (state) (
PARTITION nw VALUES ('OR', 'WA'),
PARTITION sw VALUES ('AZ', 'CA', 'NM'));

INSERT INTO pt VALUES (1, 'WA');
INSERT INTO pt VALUES (1, 'OR');
INSERT INTO pt VALUES (1, 'CA');

SELECT COUNT(*) FROM pt;

SELECT COUNT(*) FROM pt PARTITION(nw);
SELECT COUNT(*) FROM pt PARTITION(sw);
PL/SQL Select Into

Selecting In PL/SQL Objects
SELECT <clause>
INTO <clause>
FROM <clause>
WHERE <clause>
CREATE TABLE t (
testcol NUMBER(3));

CREATE SEQUENCE seq;

SELECT seq.NEXTVAL FROM dual;

/

/

INSERT INTO t
(testcol)
VALUES
(seq.NEXTVAL);

/

/

SELECT * FROM t;

BEGIN
SELECT seq.NEXTVAL FROM dual;
END;
/

set serveroutput on

DECLARE
x INTEGER;
BEGIN
SELECT seq.NEXTVAL
INTO x
FROM dual;

dbms_output.put_line(x);
END;
/

/

/

Mini Benefit Program - Một số phần mềm nhỏ hữu dụng.

Ebook hay - Quà tặng cuộc sống

Source : BeginerIT sưu tầm link

Một số cuôn sách hay về các lĩnh vực không liên thiếu

1. Phương pháp rèn luyện trí lão
Quyển 1
Quyển 2
Quyển 3
Quyển 4

2.Đời thay đổi khi chúng ta thay đổi - Best seller
Link
3. Tay trắng làm nên
Tay trắng làm nên
4. Một số Ebook cho beginerIT tìm hiểu về máy tính
thu?t ng? tin h?c
20 di?u chua bi?t v? WinXP
Th? thu?t WinXP
L?ch s? Internet
Tìm hi?u v? FireWall
Linux Shell
MS Excel
Powerpoint
24 Gio Hoc Flash
Giáo trình lý thuy?t và bài t?p Java
H?c nhan DreamWeaver 8

Giúp các sĩ tử ôn thi Đại học!

Hướng dẫn làm blog trên 360 Yahoo và Opera, Blogger (Google, nay là Blogspot.com)

Source: nhieu noi lam khong biet goc tu ai not. Hihi

1. Giới thiệu
Bạn đã từng ao ước có một website cá nhân để chia sẻ hình ảnh, những vấn đề bạn quan tâm, cảm xúc, hay đơn giản hơn, nó là nơi để mọi người có thể biết bạn là ai giữa cộng đồng ảo rộng lớn. Nhưng những trở ngại về host, tên miền (là 2 yếu tố bắt buộc khi muốn tạo một website), hay vốn kiến thức về tin học sẽ làm bạn ngần ngại. Giờ đây, với Yahoo đã giúp bạn thực hiện điều ấy một cách thật dễ dàng với dịch vụ Yahoo 360°. Như một dạng nhật ký online, với giao diện thân thiện và dễ sử dụng, dịch vụ Blog của Yahoo đã chiếm được cảm tình của rất nhiều bạn trẻ.

Trang 2: giới thiệu 1 số lỗi (câu hỏi) thường gặp và 1 số thủ thuật.
Trang 3: Cá tính rạng ngời mỗi sắc màu blog - 360Yahoo
Trang 4: Những bức hình mang thông điệp ẩn trên blog
Trang 5: Xây dựng Blog trên Opera
Trang 6: Cách tạo một Goggle/Beta Blogger account

2. Tìm hiểu về Blog
Blog là một dạng của nhật ký online,bạn có thể viết hoặc cập nhật tất cả những gì bạn thích, cập nhật (updates) thông tin cá nhân, quan điểm xã hội, sở thích, hơi hướng âm nhạc bạn yêu thích, hay bất kì điều gì làm bạn hứng thú.

Một blog entry có thể có văn bản hoặc hình ảnh hay cả hai/Yahoo 360° sẽ lưu những entry ấy theo mốc thời gian. Bạn cũng có thể lựa chọn để Blog public (tất cả mọi người đều có thể đọc), private(chỉ một mình bạn mới có thể xem), hay chỉ những người bạn có trong friends list mới xem được. Như vậy, Blog cũng có thể được xem làm một trang web cá nhân có chứa sẵn các công cụ, giúp việc thực hiện dễ dàng hơn.

3. Đăng ký dịch vụ Yahoo 360°
Trước tiên, để đăng ký sử dụng dịch vụ Yahoo 360°, bạn cần phải có một địa chỉ mail Yahoo hay một ID Yahoo Messenger (hay bạn cũng có thể đăng ký một ID Yahoo ở phần Sign Up của trang Yahoo 360°). Địa chỉ http://360.yahoo.com/.
Sau khi có tài khoản và log in,Yahoo sẽ mở ra trang Blog của bạn,click vào Star my page để bắt đầu tạo Blog. Đến đây Yahoo đã tạo ra 1 trang web cho bạn, tuy nhiên trang web này trống vì vậy bản cần phải cập nhật những thông tin cần thiết để tạo thành một website cá nhân của chính mình.
4. Giới thiệu các thành phần chính của Yahoo 360°

Trước khi bạn gửi thư mời cho bạn bè vào trang web của mình thì bạn cần tìm hiểu qua cấu trúc của 1 trang web yahoo 360 độ gồm có các thành phần chính sau:

Blast: nằm ở vị trí trên cùng, gần tên của bạn. Blast có thể là sự tự giới thiệu, một mẩu tin nhỏ, link dẫn đến một bức hình mà bạn yêu thích, một sự so sánh thú vị, hay chỉ là một ý nghĩ mà bạn muốn chia sẻ.

Photo: ắt hẳn mọi người đều muốn biết mặt bạn,hay bạn bè đều muốn nhìn thấy bạn,khoảng trống nhỏ phía dưới nickname sẽ là nơi thực hiện điều đó.

Blog: nơi bạn ghi lại những nhật ký ngày thường, những vấn đề bạn quan tâm hay muốn chia sẻ.
Feed: (nhận tin) bạn có thể cập nhật những thông tin mới nhất của một website mà bạn quan tâm, vẫn có thể vừa đọc chúng vừa lướt blog của bạn. Hiện nay, một số web về tin tức như BBC, CNN, Tuổi trẻ,… đã có chức năng này cho lấy Feeds.

List: Là một cách dễ dàng để mọi người có thể nhận ra bạn là ai với vô số sở thích. Hãy để mọi người biết bạn đang thích làm gì, đọc loại sách nào,nghe nhạc gì,mê nhất chương trình tv nào?
Và một số thành phần khác.

5. Hướng dẫn tạo các thành phần chính trên trang Yahoo 360°
Tạo Blast: Ở phiên bản mới,Yahoo còn cho phép bạn đưa một link nhạc để nghe online lên Blast. Bạn có thể tạo Blast bằng cách click vào edit blast,gõ nội dung và save. Để chèn một bài hát bạn ưa thích,copy đường link dẫn đến bài hát và dán vào ô Add a URL. Để chọn trạng thái cho Blast, bạn có thể lựa chọn ở khung Blast Balloon.(một câu nói, danh ngôn, hay một lời thì thầm,…)

Hiệu chỉnh Basic info: Phần này sẽ bao gồm tên của bạn, tuổi, nơi sinh sống, nghề nghiệp,… Bạn cũng có thể quyết định ai có thể xem những thông tin này.Ngoài ra,bạn cũng có thể chọn đặt biệt danh và ID Yahoo ở đây. (Yahoo 7.0 có thêm phần “Wiew mature comment blog” để cảnh báo về những bài viết hạn chế, không dành cho trẻ em dưới 18 tuổi)


Profile Yahoo Photo: Bạn có thể upload nhiều nhất là 4 hình ảnh có đuôi .JPEG và mỗi hình không quá 5M. Click chọn Edit profile Yahoo photo, "browse" chọn thư mục có chứa hình ảnh mà bạn muốn tải lên và lưu file (save). Bạn cũng có thể chọn đưa vào blog Yahoo avatar của bạn bằng cách chọn Add your Yahoo!Avatar. Chức năng Set as primary cho phép bạn lựa chọn một hình ảnh làm hình đại diện chính.

Reviews: Bạn có thể đưa ra những nhận xét về một vấn đề mà bạn quan tâm,chia sẻ chúng cùng mọi người. Để làm một Reviews,bạn click chọn Start Writing Reviews, ở bảng Yahoo Net work, click vào khung reviews và click chọn mục mà bạn muốn viết reviews (Địa danh, game, mua sắm hay du lịch), Yahoo sẽ tự động chuyển sang trang giới thiệu của mục đó và bạn có thể bắt đầu.

Feeds: (Nạp tin) Bạn truy cập vào website muốn lấy feeds (thường trên những web ấy có hiện biểu tượng RRS hay XML, nhấn vào dòng RRS hay XML, chúng sẽ hiện ra các đường link, copy những link này về mục share feeds ở blog của bạn.

List: Để tạo list,click chuột vào mục Create my list àở đây bạn có thể soạn sở thích,mối quan tâm của bạn hiện nay ở khung Interests,giới thiệu quyển sách mà bạn thích ở Book I like,và các mục khác ở khung Movies I like,Tv show I like,Music I like…

Compose blog entry: Mỗi blog entry bao gồm title (tựa đề), ảnh minh hoạ (ko bắt buộc) và văn bản. Có nghĩa là một entry có thể chỉ có hình hoặc chỉ cần có văn bản.Title mặc định sẽ là ngày tháng của entry đó và bạn có thể thay đổi nó.Trong phần soạn thảo,bạn cũng có thể chỉnh sửa màu sắc,font chữ,các biểu tượng cảm xúc hay thậm chí chèn một đường dẫn cũng được. Ngoài ra,Yahoo còn cho phép người sử dụng chèn một đoạn video có định dạng file Flash vào blog. Quả là một bước cải tiến đáng quan tâm.

6. Mời bạn bè vào trang Yahoo 360° của mình
Click vào tab Invite, chọn tên người nhận và gửi lệnh Invite.Bạn cũng có thể Invite bạn bè trong sổ địa chỉ hay qua e-mail.Hiện nay,Yahoo cho phép số bạn bè trong Friends list tối đa là 300,thật tuyệt vời khi có 300 người bạn!. Cách thực hiện cụ thể như sau:

Chọn tab Invitation compose, ở ô To, chọn tên người bạn muốn invite. Ở khung Word Verification, gõ hàng chữ mã vào ô kế bênà send invitation

Bên cạnh đó, blog còn cung cấp cho bạn một mailbox như một hòm thư nhỏ, nơi bạn có thể nhận tin nhắn từ bạn bè hay người thân.Những thông tin gửi và nhận lời invite cũng được thể hiện qua mailbox.

Yahoo 360° cũng hỗ trợ chức năng tìm kiếm.Bạn có thể tìm kiếm những blog hay,những bài viết thú vị,hay blog của một người mà bạn biết địa chỉ mail (trong trường hợp người ấy có tạo blog). Vào mục Search, điền những thông tin cần thiết,Yahoo sẽ cung cấp cho bạn những thông tin phù hợp.

Ngoài ra,còn rất rất nhiều chức năng thú vị khác chờ bạn khám phá.Bạn cũng có thể tham khảo thêm ở trang Help của Yahoo 360°.Yahoo còn có cả một blog riêng ở địa chỉ http://blog.360.yahoo.com/product_360, nơi ghi nhận những thộng tin phản hồi của bạn.

7. Kết luận

Thật dễ dàng để tạo một webblog của riêng mình, đơn giản chỉ là những cái click chuột. Chúc bạn thành công và tạo được những trang webblog Yahoo 360° thật đẹp cho riêng mình.

(Bài viết có tham khảo 1 số Blogger)

Ebook của VB.NET

December 2009
M T W T F S S
November 2009January 2010
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31