博客

  • Oracle命令全集

    第一章:日誌管理
    第二章:表空間管理
    第三章:表
    第四章:索引
    第五章:約束
    第六章:LOAD數據
    第七章:reorganizing data
    第八章: managing password security and resources
    第九章:Managing users
    第十章:managing privileges
    第十一章: manager role
    第十二章: BACKUP and RECOVERY
    Oracle命令全集
    第一章:日誌管理
    1.forcing log switches
         sql> alter system switch logfile;
         2.forcing checkpoints
         sql> alter system checkpoint;
         3.adding online redo log groups
         sql> alter database add logfile [group 4]
         sql> (‘/disk3/log4a.rdo’,’/disk4/log4b.rdo’) size 1m;
         4.adding online redo log members
         sql> alter database add logfile member
         sql> ‘/disk3/log1b.rdo’ to group 1,
         sql> ‘/disk4/log2b.rdo’ to group 2;
         5.changes the name of the online redo logfile
         sql> alter database rename file ‘c:/oracle/oradata/oradb/redo01.log’
         sql> to ‘c:/oracle/oradata/redo01.log’;
         6.drop online redo log groups
         sql> alter database drop logfile group 3;
         7.drop online redo log members
         sql> alter database drop logfile member ‘c:/oracle/oradata/redo01.log’;
         8.clearing online redo log files
         sql> alter database clear [unarchived] logfile ‘c:/oracle/log2a.rdo’;
         9.using logminer analyzing redo logfiles
         a. in the init.ora specify utl_file_dir = ‘ ‘
         b. sql> execute dbms_logmnr_d.build(‘oradb.ora’,’c:oracleoradblog’);
         c. sql> execute dbms_logmnr_add_logfile(‘c:oracleoradataoradbredo01.log’,
         sql> dbms_logmnr.new);
         d. sql> execute dbms_logmnr.add_logfile(‘c:oracleoradataoradbredo02.log’,
         sql> dbms_logmnr.addfile);
         e. sql> execute dbms_logmnr.start_logmnr(dictfilename=>’c:oracleoradblogoradb.ora’);
         f. sql> select * from v$logmnr_contents(v$logmnr_dictionary,v$logmnr_parameters
         sql> v$logmnr_logs);
         g. sql> execute dbms_logmnr.end_logmnr;
    第二章:表空間管理
         1.create tablespaces
         sql> create tablespace tablespace_name datafile ‘c:oracleoradatafile1.dbf’ size 100m,
         sql> ‘c:oracleoradatafile2.dbf’ size 100m minimum extent 550k [logging/nologging]
         sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0)
         sql> [online/offline] [permanent/temporary] [extent_management_clause]
         2.locally managed tablespace
         sql> create tablespace user_data datafile ‘c:oracleoradatauser_data01.dbf’
         sql> size 500m extent management local uniform. size 10m;
         3.temporary tablespace
         sql> create temporary tablespace temp tempfile ‘c:oracleoradatatemp01.dbf’
         sql> size 500m extent management local uniform. size 10m;
         4.change the storage setting
         sql> alter tablespace app_data minimum extent 2m;
         sql> alter tablespace app_data default storage(initial 2m next 2m maxextents 999);
         5.taking tablespace offline or online
         sql> alter tablespace app_data offline;
         sql> alter tablespace app_data online;
         6.read_only tablespace
         sql> alter tablespace app_data read only|write;
         7.droping tablespace
         sql> drop tablespace app_data including contents;
         8.enableing automatic extension of data files
         sql> alter tablespace app_data add datafile ‘c:oracleoradataapp_data01.dbf’size 200m
         sql> autoextend on next 10m maxsize 500m;
         9.change the size fo data files manually
         sql> alter database datafile ‘c:oracleoradataapp_data.dbf’resize 200m;
         10.Moving data files: alter tablespace
         sql> alter tablespace app_data rename datafile ‘c:oracleoradataapp_data.dbf’
         sql> to ‘c:oracleapp_data.dbf’;
         11.moving data files:alter database
         sql> alter database rename file ‘c:oracleoradataapp_data.dbf’
         sql> to ‘c:oracleapp_data.dbf’;
    第三章:表
         1.create a table
         sql> create table table_name (column datatype,column datatype]….)
         sql> tablespace tablespace_name [pctfree integer] [pctused integer]
         sql> [initrans integer] [maxtrans integer]
         sql> storage(initial 200k next 200k pctincrease 0 maxextents 50)
         sql> [logging|nologging] [cache|nocache]
         2.copy an existing table
         sql> create table table_name [logging|nologging] as subquery
         3.create temporary table
         sql> create global temporary table xay_temp as select * from xay;
         on commit preserve rows/on commit delete rows
         4.pctfree = (average row size – initial row size) *100 /average row size
         pctused = 100-pctfree- (average row size*100/available data space)
         5.change storage and block utilization parameter
         sql> alter table table_name pctfree=30 pctused=50 storage(next 500k
         sql> minextents 2 maxextents 100);
         6.manually allocating extents
         sql> alter table table_name allocate extent(size 500k datafile ‘c:/oracle/data.dbf’);
         7.move tablespace
         sql> alter table employee move tablespace users;
         8.deallocate of unused space
         sql> alter table table_name deallocate unused [keep integer]
         9.truncate a table
         sql> truncate table table_name;
         10.drop a table
         sql> drop table table_name [cascade constraints];
         11.drop a column
         sql> alter table table_name drop column comments cascade constraints checkpoint 1000;
         alter table table_name drop columns continue;
         12.mark a column as unused
         sql> alter table table_name set unused column comments cascade constraints;
         alter table table_name drop unused columns checkpoint 1000;
         alter table orders drop columns continue checkpoint 1000
         data_dictionary : dba_unused_col_tabs
    第四章:索引
         1.creating function-based indexes
         sql> create index summit.item_quantity on summit.item(quantity-quantity_shipped);
         2.create a B-tree index
         sql> create [unique] index index_name on table_name(column,.. asc/desc) tablespace
         sql> tablespace_name [pctfree integer] [initrans integer] [maxtrans integer]
         sql> [logging | nologging] [nosort] storage(initial 200k next 200k pctincrease 0
         sql> maxextents 50);
         3.pctfree(index)=(maximum number of rows-initial number of rows)*100/maximum number of rows
         4.creating reverse key indexes
         sql> create unique index xay_id on xay(a) reverse pctfree 30 storage(initial 200k
         sql> next 200k pctincrease 0 maxextents 50) tablespace indx;
         5.create bitmap index
         sql> create bitmap index xay_id on xay(a) pctfree 30 storage( initial 200k next 200k
         sql> pctincrease 0 maxextents 50) tablespace indx;
         6.change storage parameter of index
         sql> alter index xay_id storage (next 400k maxextents 100);
         7.allocating index space
         sql> alter index xay_id allocate extent(size 200k datafile ‘c:/oracle/index.dbf’);
         8.alter index xay_id deallocate unused;
    第五章:約束
         1.define constraints as immediate or deferred
         sql> alter session set constraint[s] = immediate/deferred/default;
         set constraint[s] constraint_name/all immediate/deferred;
         2. sql> drop table table_name cascade constraints
         sql> drop tablespace tablespace_name including contents cascade constraints
         3. define constraints while create a table
         sql> create table xay(id number(7) constraint xay_id primary key deferrable
         sql> using index storage(initial 100k next 100k) tablespace indx);
         primary key/unique/references table(column)/check
         4.enable constraints
         sql> alter table xay enable novalidate constraint xay_id;
         5.enable constraints
         sql> alter table xay enable validate constraint xay_id;
    第六章:LOAD數據
         1.loading data using direct_load insert
         sql> insert into emp nologging
         sql> select * from emp_old;
         2.parallel direct-load insert
         sql> alter session enable parallel dml;
         sql> insert into emp nologging
         sql> select * from emp_old;
         3.using sql*loader
         sql> sqlldr scott/tiger
         sql> control = ulcase6.ctl
         sql> log = ulcase6.log direct=true
    第七章:reorganizing data
         1.using expoty
         $exp scott/tiger tables(dept,emp) file=c:emp.dmp log=exp.log compress=n direct=y
         2.using import
         $imp scott/tiger tables(dept,emp) file=emp.dmp log=imp.log ignore=y
         3.transporting a tablespace
         sql>alter tablespace sales_ts read only;
         $exp sys/.. file=xay.dmp transport_tablespace=y tablespace=sales_ts
         triggers=n constraints=n
         $copy datafile
         $imp sys/.. file=xay.dmp transport_tablespace=y datafiles=(/disk1/sles01.dbf,/disk2
         /sles02.dbf)
         sql> alter tablespace sales_ts read write;
         4.checking transport set
         sql> DBMS_tts.transport_set_check(ts_list =>’sales_ts’ ..,incl_constraints=>true);
        在表transport_set_violations中查看
         sql> dbms_tts.isselfcontained為true是,表示自包含
    第八章: managing password security and resources
         1.controlling account lock and password
         sql> alter user juncky identified by oracle account unlock;
         2.user_provided password function
         sql> function_name(userid in varchar2(30),password in varchar2(30),
         old_password in varchar2(30)) return boolean
         3.create a profile : password setting
         sql> create profile grace_5 limit failed_login_attempts 3
         sql> password_lock_time unlimited password_life_time 30
         sql>password_reuse_time 30 password_verify_function verify_function
         sql> password_grace_time 5;
         4.altering a profile
         sql> alter profile default failed_login_attempts 3
         sql> password_life_time 60 password_grace_time 10;
         5.drop a profile
         sql> drop profile grace_5 [cascade];
         6.create a profile : resource limit
         sql> create profile developer_prof limit sessions_per_user 2
         sql> cpu_per_session 10000 idle_time 60 connect_time 480;
         7. view => resource_cost : alter resource cost
         dba_Users,dba_profiles
         8. enable resource limits
         sql> alter system set resource_limit=true;
    第九章:Managing users
         1.create a user: database authentication
         sql> create user juncky identified by oracle default tablespace users
         sql> temporary tablespace temp quota 10m on data password expire
         sql> [account lock|unlock] [profile profilename|default];
         2.change user quota on tablespace
         sql> alter user juncky quota 0 on users;
         3.drop a user
         sql> drop user juncky [cascade];
         4. monitor user
         view: dba_users , dba_ts_quotas
     
    第十章:managing privileges
         1.system privileges: view => system_privilege_map ,dba_sys_privs,session_privs
         2.grant system privilege
         sql> grant create session,create table to managers;
         sql> grant create session to scott with admin option;
         with admin option can grant or revoke privilege from any user or role;
         3.sysdba and sysoper privileges:
         sysoper: startup,shutdown,alter database open|mount,alter database backup controlfile,
         alter tablespace begin/end backup,recover database
         alter database archivelog,restricted session
         sysdba: sysoper privileges with admin option,create database,recover database until
         4.password file members: view:=> v$pwfile_users
         5.O7_dictionary_accessibility =true restriction access to view or tables in other schema
         6.revoke system privilege
         sql> revoke create table from karen;
         sql> revoke create session from scott;
         7.grant object privilege
         sql> grant execute on dbms_pipe to public;
         sql> grant update(first_name,salary) on employee to karen with grant option;
         8.display object privilege : view => dba_tab_privs, dba_col_privs
         9.revoke object privilege
         sql> revoke execute on dbms_pipe from scott [cascade constraints];
         10.audit record view :=> sys.aud$
         11. protecting the audit trail
         sql> audit delete on sys.aud$ by access;
         12.statement auditing
         sql> audit user;
         13.privilege auditing
         sql> audit select any table by summit by access;
         14.schema object auditing
         sql> audit lock on summit.employee by access whenever successful;
         15.view audit option : view=> all_def_audit_opts,dba_stmt_audit_opts,dba_priv_audit_opts,
    dba_obj_audit_opts
         16.view audit result: view=> dba_audit_trail,dba_audit_exists,dba_audit_object,
    dba_audit_session,dba_audit_statement
     
    第十一章: manager role
         1.create roles
         sql> create role sales_clerk;
         sql> create role hr_clerk identified by bonus;
         sql> create role hr_manager identified externally;
         2.modify role
         sql> alter role sales_clerk identified by commission;
         sql> alter role hr_clerk identified externally;
         sql> alter role hr_manager not identified;
         3.assigning roles
         sql> grant sales_clerk to scott;
         sql> grant hr_clerk to hr_manager;
         sql> grant hr_manager to scott with admin option;
         4.establish default role
         sql> alter user scott default role hr_clerk,sales_clerk;
         sql> alter user scott default role all;
         sql> alter user scott default role all except hr_clerk;
         sql> alter user scott default role none;
         5.enable and disable roles
         sql> set role hr_clerk;
         sql> set role sales_clerk identified by commission;
         sql> set role all except sales_clerk;
         sql> set role none;
         6.remove role from user
         sql> revoke sales_clerk from scott;
         sql> revoke hr_manager from public;
         7.remove role
         sql> drop role hr_manager;
         8.display role information
         view: =>dba_roles,dba_role_privs,role_role_privs,dba_sys_privs,
    role_sys_privs,role_tab_privs,session_roles
    第十二章: BACKUP and RECOVERY
         1. v$sga,v$instance,v$process,v$bgprocess,v$database,v$datafile,v$sgastat
         2. Rman need set dbwr_IO_slaves or backup_tape_IO_slaves and large_pool_size
         3. Monitoring Parallel Rollback
         > v$fast_start_servers , v$fast_start_transactions
         4.perform. a closed database backup (noarchivelog)
         > shutdown immediate
         > cp files /backup/
         > startup
         5.restore to a different location
         > connect system/manager as sysdba
         > startup mount
         > alter database rename file ‘/disk1/../user.dbf’to ‘/disk2/../user.dbf’;
         > alter database open;
         6.recover syntax
         –recover a mounted database
         >recover database;
         >recover datafile ‘/disk1/data/df2.dbf’;
         >alter database recover database;
         –recover an opened database
         >recover tablespace user_data;
         >recover datafile 2;
         >alter database recover datafile 2;
         7.how to apply redo log files automatically
         >set autorecovery on
         >recover automatic datafile 4;
         8.complete recovery:
         –method 1(mounted databae)
         >copy c:backupuser.dbf c:oradatauser.dbf
         >startup mount
         >recover datafile ‘c:oradatauser.dbf;
         >alter database open;
         –method 2(opened database,initially opened,not system or rollback datafile)
    >copy c:backupuser.dbf c:oradatauser.dbf (alter tablespace offline)
         >recover datafile ‘c:oradatauser.dbf’ or
         >recover tablespace user_data;
         >alter database datafile ‘c:oradatauser.dbf’ online or
         >alter tablespace user_data online;
         –method 3(opened database,initially closed not system or rollback datafile)
         >startup mount
         >alter database datafile ‘c:oradatauser.dbf’ offline;
         >alter database open
         >copy c:backupuser.dbf d:oradatauser.dbf
         >alter database rename file ‘c:oradatauser.dbf’to ‘d:oradatauser.dbf’
         >recover datafile ‘e:oradatauser.dbf’ or recover tablespace user_data;
         >alter tablespace user_data online;
         –method 4(loss of data file with no backup and have all archive log)
         >alter tablespace user_data offline immediate;
         >alter database create datafile ‘d:oradatauser.dbf’as ‘c:oradatauser.dbf”
         >recover tablespace user_data;
         >alter tablespace user_data online
         5.perform. an open database backup
         > alter tablespace user_data begin backup;
         > copy files /backup/
         > alter database datafile ‘/c:/../data.dbf’ end backup;
         > alter system switch logfile;
         6.backup a control file
         > alter database backup controlfile to ‘control1.bkp’;
         > alter database backup controlfile to trace;
         7.recovery (noarchivelog mode)
         > shutdown abort
         > cp files
         > startup
         8.recovery of file in backup mode
         >alter database datafile 2 end backup;
         9.clearing redo log file
         >alter database clear unarchived logfile group 1;
         >alter database clear unarchived logfile group 1 unrecoverable datafile;
         10.redo log recovery
         >alter database add logfile group 3 ‘c:oradataredo03.log’size 1000k;
         >alter database drop logfile group 1;
         >alter database open;
         or >cp c:oradataredo02.log’ c:oradataredo01.log
         >alter database clear logfile ‘c:oradatalog01.log’;
  • linux RPM命令手冊

    作者:wind521
    來自:無名

    一、安裝

    命令格式:

    rpm -i ( or –install) options file1.rpm … fileN.rpm

    參數:

    file1.rpm … fileN.rpm將要安裝的RPM包的文件名

    詳細選項:

    -h (or –hash)安裝時輸出hash記號(“#”)
    –test只對安裝進行測試,並不實際安裝。
    –percent以百分比的形式輸出安裝的進度。
    –excludedocs不安裝軟件包中的文檔文件
    –includedocs安裝文檔
    –replacepkgs強制重新安裝已經安裝的軟件包
    –replacefiles替換屬於其它軟件包的文件
    –force忽略軟件包及文件的衝突
    –noscripts不運行預安裝和後安裝腳本
    –prefix <path>將軟件包安裝到由<path>指定的路徑下
    –ignorearch不校驗軟件包的結構
    –ignoreos不檢查軟件包運行的操作系統
    –nodeps不檢查依賴性關係
    –ftpproxy <host>用<host>作為FTP代理
    –ftpport <port>指定FTP的端口號為<port>

    通用選項

    -v顯示附加信息
    -vv顯示調試信息
    –root <path>讓RPM將<path>指定的路徑做為”根目錄”,這樣預安裝程序和後安
    裝程序都會安裝到這個目錄下
    –rcfile <rcfile>設置rpmrc文件為<rcfile>
    –dbpath <path>設置RPM資料庫存所在的路徑為<path>

    二、刪除

    命令格式:

    rpm -e ( or –erase) options pkg1 … pkgN

    參數

    pkg1 … pkgN :要刪除的軟件包

    詳細選項

    –test只執行刪除的測試
    –noscripts不運行預安裝和後安裝腳本程序
    –nodeps不檢查依賴性

    通用選項

    -vv顯示調試信息
    –root <path>讓RPM將<path>指定的路徑做為”根目錄”,這樣預安裝程序和後安裝
    程序都會安裝到這個目錄下
    –rcfile <rcfile>設置rpmrc文件為<rcfile>
    –dbpath <path>設置RPM資料庫存所在的路徑為<path>

    三、升級

    命令格式

    rpm -U ( or –upgrade) options file1.rpm … fileN.rpm

    參數

    file1.rpm … fileN.rpm軟件包的名字

    詳細選項

    -h (or –hash)安裝時輸出hash記號(“#”)
    –oldpackage允許”升級”到一個老版本
    –test只進行升級測試
    –excludedocs不安裝軟件包中的文檔文件
    –includedocs安裝文檔
    –replacepkgs強制重新安裝已經安裝的軟件包
    –replacefiles替換屬於其它軟件包的文件
    –force忽略軟件包及文件的衝突
    –percent以百分比的形式輸出安裝的進度。
    –noscripts不運行預安裝和後安裝腳本
    –prefix <path>將軟件包安裝到由<path>指定的路徑下
    –ignorearch不校驗軟件包的結構
    –ignoreos不檢查軟件包運行的操作系統
    –nodeps不檢查依賴性關係
    –ftpproxy <host>用<host>作為FTP代理
    –ftpport <port>指定FTP的端口號為<port>

    通用選項

    -v顯示附加信息
    -vv顯示調試信息
    –root <path>讓RPM將<path>指定的路徑做為”根目錄”,這樣預安裝程序和後安裝程序都會安裝到這個目錄下
    –rcfile <rcfile>設置rpmrc文件為<rcfile>
    –dbpath <path>設置RPM資料庫存所在的路徑為<path>

    四、查詢

    命令格式:

    rpm -q ( or –query) options

    參數:

    pkg1 … pkgN :查詢已安裝的軟件包

    詳細選項

    -p <file>(or “-”)查詢軟件包的文件
    -f <file>查詢<file>屬於哪個軟件包
    -a查詢所有安裝的軟件包
    –whatprovides <x>查詢提供了<x>功能的軟件包
    -g <group>查詢屬於<group>組的軟件包
    –whatrequires <x>查詢所有需要<x>功能的軟件包

    信息選項

    <null>顯示軟件包的全部標識
    -i顯示軟件包的概要信息
    -l顯示軟件包中的文件列表
    -c顯示配置文件列表
    -d顯示文檔文件列表
    -s顯示軟件包中文件列表並顯示每個文件的狀態
    –scripts顯示安裝、卸載、校驗腳本
    –queryformat (or –qf)以用戶指定的方式顯示查詢信息
    –dump顯示每個文件的所有已校驗信息
    –provides顯示軟件包提供的功能
    –requires (or -R)顯示軟件包所需的功能

    通用選項

    -v顯示附加信息
    -vv顯示調試信息
    –root <path>讓RPM將<path>指定的路徑做為”根目錄”,這樣預安裝程序和後安裝程序都會安裝到這個目錄下
    –rcfile <rcfile>設置rpmrc文件為<rcfile>
    –dbpath <path>設置RPM資料庫存所在的路徑為<path>

    五、校驗已安裝的軟件包

    命令格式:

    rpm -V ( or –verify, or -y) options

    參數

    pkg1 … pkgN將要校驗的軟件包名

    軟件包選項

    -p <file> Verify against package file <file>
    -f <file>校驗<file>所屬的軟件包
    -a Verify校驗所有的軟件包
    -g <group>校驗所有屬於組<group>的軟件包

    詳細選項

    –noscripts不運行校驗腳本
    –nodeps不校驗依賴性
    –nofiles不校驗文件屬性

    通用選項

    -v顯示附加信息
    -vv顯示調試信息
    –root <path>讓RPM將<path>指定的路徑做為”根目錄”,這樣預安裝程序和後安裝程序都會安裝到這個目錄下
    –rcfile <rcfile>設置rpmrc文件為<rcfile>
    –dbpath <path>設置RPM資料庫存所在的路徑為<path>

    六、校驗軟件包中的文件

    語法:

    rpm -K ( or –checksig) options file1.rpm … fileN.rpm

    參數:

    file1.rpm … fileN.rpm軟件包的文件名

    Checksig–詳細選項

    –nopgp不校驗PGP簽名

    通用選項

    -v顯示附加信息
    -vv顯示調試信息
    –rcfile <rcfile>設置rpmrc文件為<rcfile>

    七、其它RPM選項

    –rebuilddb重建RPM資料庫
    –initdb創建一個新的RPM資料庫
    –quiet盡可能的減少輸出
    –help顯示幫助文件
    –version顯示RPM的當前版本

     

    全文結束

  • SQL命令大全

    –語句功能
    –數據操作

     
    SELECT –從數據庫表中檢索數據行和列
    INSERT –向數據庫表添加新數據行
    DELETE –從數據庫表中刪除數據行
    UPDATE –更新數據庫表中的數據
    –數據定義
    CREATE TABLE –創建一個數據庫表
    DROP TABLE –從數據庫中刪除表
    ALTER TABLE –修改數據庫表結構
    CREATE VIEW –創建一個視圖
    DROP VIEW –從數據庫中刪除視圖
    CREATE INDEX –為數據庫表創建一個索引
    DROP INDEX –從數據庫中刪除索引
    CREATE PROCEDURE –創建一個存儲過程
    DROP PROCEDURE –從數據庫中刪除存儲過程
    CREATE TRIGGER –創建一個觸發器
    DROP TRIGGER –從數據庫中刪除觸發器
    CREATE SCHEMA –向數據庫添加一個新模式
    DROP SCHEMA –從數據庫中刪除一個模式
    CREATE DOMAIN –創建一個數據值域
    ALTER DOMAIN –改變域定義
    DROP DOMAIN –從數據庫中刪除一個域
    –數據控制
    GRANT –授予用戶訪問權限
    DENY –拒絕用戶訪問
    REVOKE –解除用戶訪問權限
    –事務控制
    COMMIT –結束當前事務
    ROLLBACK –中止當前事務
    SET TRANSACTION –定義當前事務數據訪問特徵
    –程序化SQL
    DECLARE –為查詢設定游標
    EXPLAN –為查詢描述數據訪問計劃
    OPEN –檢索查詢結果打開一個游標
    FETCH –檢索一行查詢結果
    CLOSE –關閉游標
    PREPARE –為動態執行準備SQL語句
    EXECUTE –動態地執行SQL語句
    DESCRIBE –描述準備好的查詢
    —局部變量
    declare @id char(10)
    –set @id = ‘10010001’
    select @id = ‘10010001’
    —全局變量
    —必須以@@開頭
    –IF ELSE
    declare @x int @y int @z int
    select @x = 1 @y = 2 @z=3
    if @x > @y
    print ‘x > y’ –打印字符串’x > y’
    else if @y > @z
    print ‘y > z’
    else print ‘z > y’
    –CASE
    use pangu
    update employee
    set e_wage =
    case
    when job_level = ‘1’ then e_wage*1.08
    when job_level = ‘2’ then e_wage*1.07
    when job_level = ‘3’ then e_wage*1.06
    else e_wage*1.05
    end
    –WHILE CONTINUE BREAK
    declare @x int @y int @c int
    select @x = 1 @y=1
    while @x < 3
    begin
    print @x –打印變量x的值
    while @y < 3
    begin
    select @c = 100*@x + @y
    print @c –打印變量c的值
    select @y = @y + 1
    end
    select @x = @x + 1
    select @y = 1
    end
    –WAITFOR
    –例等待1小時2分零3秒後才執行SELECT語句
    waitfor delay ’01:02:03′
    select * from employee
    –例等到晚上11點零8分後才執行SELECT語句
    waitfor time ’23:08:00′
    select * from employee

    ***SELECT***
    select *(列名) from table_name(表名) where column_name operator value
    ex:(宿主)
    select * from stock_information where stockid = str(nid)
    stockname = ‘str_name’
    stockname like ‘% find this %’
    stockname like ‘[a-zA-Z]%’ ——— ([]指定值的範圍)
    stockname like ‘[^FM]%’ ——— (^排除指定範圍)
    ———只能在使用like關鍵字的where子句中使用通配符)
    or stockpath = ‘stock_path’
    or stocknumber < 1000
    and stockindex = 24
    not stocksex = ‘man’
    stocknumber between 20 and 100
    stocknumber in(10,20,30)
    order by stockid desc(asc) ———排序,desc-降序,asc-升序
    order by 1,2 ——— by列號
    stockname = (select stockname from stock_information where stockid = 4)
    ———子查詢
    ———除非能確保內層select只返回一個行的值,
    ———否則應在外層where子句中用一個in限定符
    select distinct column_name form table_name ——— distinct指定檢索獨有的列值,不重複
    select stocknumber ,”stocknumber + 10″ = stocknumber + 10 from table_name
    select stockname , “stocknumber” = count(*) from table_name group by stockname
    ——— group by將表按行分組,指定列中有相同的值
    having count(*) = 2 ——— having選定指定的組
    select *
    from table1, table2
    where table1.id *= table2.id ——–左外部連接,table1中有的而table2中沒有得以null表示
    table1.id =* table2.id ——–右外部連接
    select stockname from table1
    union [all] —– union合併查詢結果集,all-保留重複行
    select stockname from table2
    ***insert***
    insert into table_name (Stock_name,Stock_number) value (“xxx”,”xxxx”)
    value (select Stockname , Stocknumber from Stock_table2)—value為select語句
    ***update***
    update table_name set Stockname = “xxx” [where Stockid = 3]
    Stockname = default
    Stockname = null
    Stocknumber = Stockname + 4
    ***delete***
    delete from table_name where Stockid = 3
    truncate table_name ———–刪除表中所有行,仍保持表的完整性
    drop table table_name —————完全刪除表
    ***alter table*** —修改數據庫表結構
    alter table database.owner.table_name add column_name char(2) null …..
    sp_help table_name —-顯示表已有特徵
    create table table_name (name char(20), age smallint, lname varchar(30))
    insert into table_name select ……… —–實現刪除列的方法(創建新表)
    alter table table_name drop constraint Stockname_default —-刪除Stockname的default約束
    ***function(/*常用函數*/)***
    —-統計函數—-
    AVG –求平均值
    COUNT –統計數目
    MAX –求最大值
    MIN –求最小值
    SUM –求和
    –AVG
    use pangu
    select avg(e_wage) as dept_avgWage
    from employee
    group by dept_id
    –MAX
    –求工資最高的員工姓名
    use pangu
    select e_name
    from employee
    where e_wage =
    (select max(e_wage)
    from employee)
    –STDEV()
    –STDEV()函數返回表達式中所有數據的標準差
    –STDEVP()
    –STDEVP()函數返回總體標準差
    –VAR()
    –VAR()函數返回表達式中所有值的統計變異數
    –VARP()
    –VARP()函數返回總體變異數
    —-算術函數—-
    /***三角函數***/
    SIN(float_expression) –返回以弧度表示的角的正弦
    COS(float_expression) –返回以弧度表示的角的餘弦
    TAN(float_expression) –返回以弧度表示的角的正切
    COT(float_expression) –返回以弧度表示的角的餘切
    /***反三角函數***/
    ASIN(float_expression) –返回正弦是FLOAT值的以弧度表示的角
    ACOS(float_expression) –返回餘弦是FLOAT值的以弧度表示的角
    ATAN(float_expression) –返回正切是FLOAT值的以弧度表示的角
    ATAN2(float_expression1,float_expression2)
    –返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
    DEGREES(numeric_expression)
    –把弧度轉換為角度返回與表達式相同的數據類型可為
    –INTEGER/MONEY/REAL/FLOAT類型
    RADIANS(numeric_expression) –把角度轉換為弧度返回與表達式相同的數據類型可為
    –INTEGER/MONEY/REAL/FLOAT類型
    EXP(float_expression) –返回表達式的指數值
    LOG(float_expression) –返回表達式的自然對數值
    LOG10(float_expression)–返回表達式的以10為底的對數值
    SQRT(float_expression) –返回表達式的平方根
    /***取近似值函數***/
    CEILING(numeric_expression) –返回>=表達式的最小整數返回的數據類型與表達式相同可為
    –INTEGER/MONEY/REAL/FLOAT類型
    FLOOR(numeric_expression) –返回<=表達式的最小整數返回的數據類型與表達式相同可為
    –INTEGER/MONEY/REAL/FLOAT類型
    ROUND(numeric_expression) –返回以integer_expression為精度的四捨五入值返回的數據
    –類型與表達式相同可為INTEGER/MONEY/REAL/FLOAT類型
    ABS(numeric_expression) –返回表達式的絕對值返回的數據類型與表達式相同可為
    –INTEGER/MONEY/REAL/FLOAT類型
    SIGN(numeric_expression) –測試參數的正負號返回0零值1正數或-1負數返回的數據類型
    –與表達式相同可為INTEGER/MONEY/REAL/FLOAT類型
    PI() –返回值為π即3.1415926535897936
    RAND([integer_expression]) –用任選的[integer_expression]做種子值得出0-1間的隨機浮點數

    —-字符串函數—-
    ASCII() –函數返回字符表達式最左端字符的ASCII碼值
    CHAR() –函數用於將ASCII碼轉換為字符
    –如果沒有輸入0 ~ 255之間的ASCII碼值CHAR函數會返回一個NULL值
    LOWER() –函數把字符串全部轉換為小寫
    UPPER() –函數把字符串全部轉換為大寫
    STR() –函數把數值型數據轉換為字符型數據
    LTRIM() –函數把字符串頭部的空格去掉
    RTRIM() –函數把字符串尾部的空格去掉
    LEFT(),RIGHT(),SUBSTRING() –函數返回部分字符串
    CHARINDEX(),PATINDEX() –函數返回字符串中某個指定的子串出現的開始位置
    SOUNDEX() –函數返回一個四位字符碼
    –SOUNDEX函數可用來查找聲音相似的字符串但SOUNDEX函數對數字和漢字均只返回0值
    DIFFERENCE() –函數返回由SOUNDEX函數返回的兩個字符表達式的值的差異
    –0兩個SOUNDEX函數返回值的第一個字符不同
    –1兩個SOUNDEX函數返回值的第一個字符相同
    –2兩個SOUNDEX函數返回值的第一二個字符相同
    –3兩個SOUNDEX函數返回值的第一二三個字符相同
    –4兩個SOUNDEX函數返回值完全相同

    QUOTENAME() –函數返回被特定字符括起來的字符串
    /*select quotename(‘abc’, ‘{‘) quotename(‘abc’)
    運行結果如下
    ———————————-{
    {abc} [abc]*/
    REPLICATE() –函數返回一個重複character_expression指定次數的字符串
    /*select replicate(‘abc’, 3) replicate( ‘abc’, -2)
    運行結果如下
    ———– ———–
    abcabcabc NULL*/
    REVERSE() –函數將指定的字符串的字符排列順序顛倒
    REPLACE() –函數返回被替換了指定子串的字符串
    /*select replace(‘abc123g’, ‘123’, ‘def’)
    運行結果如下
    ———– ———–
    abcdefg*/
    SPACE() –函數返回一個有指定長度的空白字符串
    STUFF() –函數用另一子串替換字符串指定位置長度的子串

    —-數據類型轉換函數—-
    CAST()函數語法如下
    CAST() (<expression> AS <data_ type>[ length ])
    CONVERT()函數語法如下
    CONVERT() (<data_ type>[ length ], <expression> [, style])
    select cast(100+99 as char) convert(varchar(12), getdate())
    運行結果如下
    —————————— ————
    199 Jan 15 2000
    —-日期函數—-
    DAY() –函數返回date_expression中的日期值
    MONTH() –函數返回date_expression中的月份值
    YEAR() –函數返回date_expression中的年份值
    DATEADD(<datepart> ,<number> ,<date>)
    –函數返回指定日期date加上指定的額外日期間隔number產生的新日期
    DATEDIFF(<datepart> ,<number> ,<date>)
    –函數返回兩個指定日期在datepart方面的不同之處
    DATENAME(<datepart> , <date>) –函數以字符串的形式返回日期的指定部分
    DATEPART(<datepart> , <date>) –函數以整數值的形式返回日期的指定部分
    GETDATE() –函數以DATETIME的缺省格式返回系統當前的日期和時間
    —-系統函數—-
    APP_NAME() –函數返回當前執行的應用程序的名稱
    COALESCE() –函數返回眾多表達式中第一個非NULL表達式的值
    COL_LENGTH(<‘table_name’>, <‘column_name’>) –函數返回表中指定字段的長度值
    COL_NAME(<table_id>, <column_id>) –函數返回表中指定字段的名稱即列名
    DATALENGTH() –函數返回數據表達式的數據的實際長度
    DB_ID([‘database_name’]) –函數返回數據庫的編號
    DB_NAME(database_id) –函數返回數據庫的名稱
    HOST_ID() –函數返回服務器端計算機的名稱
    HOST_NAME() –函數返回服務器端計算機的名稱
    IDENTITY(<data_type>[, seed increment]) [AS column_name])
    –IDENTITY()函數只在SELECT INTO語句中使用用於插入一個identity column列到新表中
    /*select identity(int, 1, 1) as column_name
    into newtable
    from oldtable*/
    ISDATE() –函數判斷所給定的表達式是否為合理日期
    ISNULL(<check_expression>, <replacement_value>) –函數將表達式中的NULL值用指定值替換
    ISNUMERIC() –函數判斷所給定的表達式是否為合理的數值
    NEWID() –函數返回一個UNIQUEIDENTIFIER類型的數值
    NULLIF(<expression1>, <expression2>)
    –NULLIF函數在expression1與expression2相等時返回NULL值若不相等時則返回expression1的值

    ————————————————– ——————————
    sql中的保留字
    action add aggregate all
    alter after and as
    asc avg avg_row_length auto_increment
    between bigint bit binary
    blob bool both by
    cascade case char character
    change check checksum column
    columns comment constraint create
    cross current_date current_time current_timestamp
    data database databases date
    datetime day day_hour day_minute
    day_second dayofmonth dayofweek dayofyear
    dec decimal default delayed
    delay_key_write delete desc describe
    distinct distinctrow double drop
    end else escape escaped
    enclosed enum explain exists
    fields file first float
    float4 float8 flush foreign
    from for full function
    global grant grants group
    having heap high_priority hour
    hour_minute hour_second hosts identified
    ignore in index infile
    inner insert insert_id int
    integer interval int1 int2
    int3 int4 int8 into
    if is isam join
    key keys kill last_insert_id
    leading left length like
    lines limit load local
    lock logs long longblob
    longtext low_priority max max_rows
    match mediumblob mediumtext mediumint
    middleint min_rows minute minute_second
    modify month monthname myisam
    natural numeric no not
    null on optimize option
    optionally or order outer
    outfile pack_keys partial password
    precision primary procedure process
    processlist privileges read real
    references reload regexp rename
    replace restrict returns revoke
    rlike row rows second
    select set show shutdown
    smallint soname sql_big_tables sql_big_selects
    sql_low_priority_updates sql_log_off sql_log_update sql_select_limit
    sql_small_result sql_big_result sql_warnings straight_join
    starting status string table
    tables temporary terminated text
    then time timestamp tinyblob
    tinytext tinyint trailing to
    type use using unique
    unlock unsigned update usage
    values varchar variables varying
    varbinary with write when
    where year year_month zerofill

  • Yahoo搜索退出,微軟Bing迎來新世代

    7月29日消息,微軟與雅虎終於就長期懸而未決的搜索業務合作達成了協議,根據協議,在未來的10年裡Yahoo的搜索結果將採用微軟最新一代Bing搜索引擎技術,這意味著Yahoo搜索引擎將不復存在,而Bing搜索引擎將成為僅次於Google的第二大搜索引擎;根據最新數據Google佔整個搜索市場份額的65%,而Yahoo與Bing各佔搜索市場份額的20%和10%;而微軟與雅虎合作之後將占到整個搜索市場份額的30%。

    因此,對於共享軟件行業以及整個網絡營銷行業來說,Yahoo搜索引擎優化將不復存在,而針對於Bing的搜索引擎優化將逐。為了確保新版搜索引擎Bing成為全球化品牌,微軟已經申請了能想到的幾乎所有國家的地理域名。
    bing 這款全新的搜索引擎此前的內側代號為Kumo,如今則被命名為Bing。微軟希望用Bing來代替現有的Live搜索。
    除了通用域名bing.com外,WhoIs查詢結果還顯示,微軟已經拿下瞭如下國家和地區的地理域名:澳大利亞(bing.com.au)、新西蘭(bing.co.nz)、英國(bing.co .uk)、加拿大(bing.ca)、新加坡(bing.sg)、香港(bing.hk)、德國(bing.de)和法國(bing.fr)等。除此之外,微軟還於今年早些時候為Bing申請了註冊商標。
    微軟首席執行官史蒂夫-鮑爾默(Steve Ballmer)將在《華爾街日報》舉辦的“All Things D”大會上揭開Bing的神秘面紗。
    為了確保新的名稱能夠得到廣泛認可,微軟將斥資8000萬至1億美元在全美範圍內的電視、廣播、報紙、互聯網和戶外媒體投放廣告。其創意代理商為WPP旗下的JWT(智威湯遜)。至於美國之外的地區是否會投放規模較小的廣告,目前尚不清楚。 《廣告時代》雜誌稱,微軟這一支出超過大部分消費產品發佈時的廣告支出。谷歌2008年全年的廣告支出也不過2500萬美元。
    另外,微軟的廣告中也不會提及谷歌,而且還會將Bing作為一款全新的具有革命意義的產品來推廣。

     
    Bing-特點
    1. Bing比Live Search速度更快、相關度更好
    當搜索LiveSide時,必應Bing也會在左側的Explorer Pane中顯示更準確的相關搜索(可對比Live Search右側的相關搜索)。
    今早Kip和Stefan Weitz談及了必應Bing的性能改進,甚至是預覽版,Bing的搜索速度也比Live Search更快。你使用時應該也能體會到(前提是你使用過Live Search)。
    2. Bing與Powerset的整合比預想的更深入
    語義搜索,或者說了解用戶的搜索意圖,是搜索引擎所要完成的“下一件大事”之一。我們已知Powerset語義搜索技術(主要針對Wikipedia)將整合至Bing。儘管並不是所有的搜索結果都是由Powerset技術提供,但至少Wikipedia等參考信息,以及Reference Group等新特性是深度基於Powerset技術的。
    3. Bing界面更統一、更酷
    Bing擁有非常統一的用戶界面,這與我們通常見到的微軟產品並不一樣,要知道Windows Live產品仍存在三套用戶界面共存的情況
    在未輸入任何關鍵詞並點擊圖片搜索後,必應Bing將顯示首頁背景“熱點Hotspots”的相關圖片搜索(效果如上圖)。
    另外,Bing首頁的背景翻頁功能也將在必應Bing正式上線當天向全球用戶開放。
    4.精煉搜索結果更輕鬆

    貫穿Bing搜索引擎的左側Explorer Pane還包括Quick Tabs新特性,點擊不同的關鍵詞相關類別將篩選出更精煉的搜索結果。比如下圖中,搜索Google結果頁面左側的News、Downloads、Company Background等類別,點擊某類別後僅顯示與該類別相關的結果:
    5.保存及分享Bing搜索歷史
    這是Bing的新功能之一,Bing的搜索歷史不僅能夠永久保存至SkyDrive或本地文件夾,還能夠通過Windows Live, Facebook或E-mail分享。

  • Linux鳥哥私房菜-基礎學習篇(第二版) 免费下載

    Linux鳥哥私房菜-基礎學習篇(第二版)


    圖書分類:系統管理>> Linux

    圖書語言:繁體/簡體中文
    文件大小: 34.37M
    發布日期: 2009-7-10 13:54:00
    圖書簡介:本書全面而詳細地介紹了Linux操作系統。全書分為5個部分:第一部分著重說明Linux的起源及功能,如何規劃和安裝Linux主機;第二部分介紹Linux的文件系統、文件、目錄與磁盤的管理;第三部分介紹文字模式接口shell和管理系統的好幫手shell腳本,另外還介紹了文字編輯器vi和vim的使用方法;第四部分介紹了對於系統安全非常重要的Linux賬號的管理,以及主機系統與程序的管理,如查看進程、任務分配和作業管理;第五部分介紹了系統管理員(root)的管理事項,如了解系統運行狀況、系統服務,針對登錄文件進行解析,對系統進行備份以及核心的管理等。

    本書內容豐富全面,基本概念的講解非常細緻,深入淺出。各種功能和命令的介紹,都配以大量的實例操作和詳盡的解析。本書是初學者學習Linux不可多得的一本入門好書。打開密碼是:linuxeden

    Linux鳥哥私房菜-http://linux.vbird.org

    Linux鳥哥私房菜-基礎學習篇(第二版)  點擊:我确认要下载!
     

     

     無法下載、網址錯誤請下載以下全部:

     鸟哥的Linux私房菜.part01

    鸟哥的Linux私房菜.part02

    鸟哥的Linux私房菜.part03

    鸟哥的Linux私房菜.part04

     
     
     
  • ithome IT人物:從機車行黑手變成程式開發的黑手

     
    文/李世平 (記者) 2009-05-01

    普奇科技(Potix)框架開發工程組長陳威亨做過車行學徒,也在電子廠當過操作機臺的作業員,憑藉過人的意志力,現在他搖身變為知名軟體開發工具工程師。
     

    IT人物─陳威亨

    普奇科技框架開發工程組長
    ●學經歷:中華大學企業管理學系
    ●工作內容:ZK產品趨勢研究、設計、效能強化及技術支援,並負責領導開發工程組員


     

    曾經有人說,臺灣的軟體業沒前途,在臺灣當程式設計師不如去賣雞排。然而普奇科技已走出一條自己的路,該公司的主力產品ZK,是一套開放源碼Ajax開發框架,從2005年開始研發至今,已有多家財星五百大企業採用,可以說是在臺灣土生土長,從灰姑娘變成大明星的知名軟體。

    不僅如此,讓人更意外的是,在普奇科技擔任開發工程組長的陳威亨本身也是個傳奇,他和他親手開發的產品一樣,曾經是不被大家看好的「壞學生」,後來卻能成為軟體開發團隊的領導者。

    辭去穩定的電子公司工作,走上IT之路
    在求學時代,陳威亨一直都不喜歡讀書。雖然高職念的是資訊科,不過由於貪玩,他沒有吸收書本上的知識,到了大學畢業,對軟體或電腦還是完全沒有概念。陳威亨回憶起年少輕狂,還是覺得有些不好意思。他說在讀高職時,每天下課就是想要騎車往外跑,所以即使資訊科念到畢業,對電腦的認知也只限於點滑鼠上上網而已。那時因為喜歡騎機車,所以也開始對改車有興趣,於是就經常蹺課到車行當學徒,學習如何改車。

    在車行當了2年黑手,並服完兵役的陳威亨,本來想在退伍後繼續待在車行,老闆卻認為他還年輕,應該要試著挑戰自己,所以就開始轉換跑道。

    找工作時處處碰壁的陳威亨,最後終於在朋友的介紹之下,到電子廠擔任作業員。這一待就是四年,雖然陳威亨當時已經升職為幹部,只要負責故障排除,和管理操作機臺的作業員就好,下了班也完全不用再煩惱工作上的事,可以說相當輕鬆。不過由於這樣的工作發展有限,技術可替代性也高,加上做二休二的輪班制常常弄到日夜顛倒、生活不正常,幾年下來身體狀況也越來越差,於是就興起了換工作的念頭。

    起初陳威亨並不清楚自己可以的發展方向,不過知道有朋友參加了IT職業訓練的培訓課程,上課半年之後就順利找到工作,他聽了很心動,也去報名資策會的Java程式設計班。

    經過半年,陳威亨已經對程式設計有了基本的概念,也在畢業時考取了SCJP和SCWCD等兩張Java證照,並順利進入軟體公司擔任程式設計師。陳威亨對此感到很自豪,他說,當時同班的同學中,只有2個人擁有這些證照,不過一位是上課之前就已經取得SCJP,上完課再考SCWCD,算是有既定基礎的學生,他卻是對程式完全一竅不通,從頭開始學。

    自覺要有紮實的基礎,遇到問題才能迎刃而解
    在順利進入IT界之後,陳威亨有些應接不暇,主要是工作上無法配合同事的程度,所以對於先前沒有好好念書感到相當後悔,他自覺不能因為找到工作而鬆懈下來,反而更加倍努力。

    陳威亨說,像他這樣的門外漢,如果想要成為軟體工程師,最重要的就是一定要把基礎語言學好,所以他決心把所有Java的書要看完。恰好先前在意藍科技工作時,同事郭易杰組長很愛買書,陳威亨也經常跟他借書,就算看不懂,也強迫自己翻閱幾次,這樣如果日後遇到問題,才會想到曾經在某本書中看過類似的問題,然後再去把書找出來查,而不致於連答案在哪都不知道。

    不過中文參考書畢竟數量有限,因此他接下來也試著讀原文書,然而,他英文程度差,甚至連「This is a book.」這種簡單的句子也都聽不懂。陳威亨說,剛開始看文件非常痛苦,一張A4大小的英文技術文章,可能就要查超過一百個單字,查完之後又常常因為單字的意義和組成片語之後完全不同,而產生許多誤解。

    在加入普奇科技後,ZK的工作團隊需要面對許多外國客戶,所以只能用英文溝通,對語文能力的挑戰就更大了。不過陳威亨認為,即使一開始很辛苦,但既然當初下定決心要往IT界發展,自然要強迫自己學好英文。於是他在下班之後,每天回家至少念一小時英文,周末則是到外面去運動,邊跑步邊聽英文,或是整天就待在家看英文書。

    除了程式和英文能力外,邏輯觀念也是程式設計師必備的,陳威亨認為,邏輯觀念比較缺乏標準的學習教材,所以可能有些是要靠天份。像當初普奇科技在徵才時,他就先通過了類似GMAT的邏輯和推理測驗,相較於所有應徵者,他即使學歷不如人,不過依然還是可以解出那些他們回答不出的題目。

    自認相當聰明的陳威亨把寫程式、學英文這兩件事結合在一起,成為他個人學習的小技巧,像是寫程式在宣告變數時,故意用不熟的單字當成變數名稱,這樣一來,每次只要用到變數,就要拼一次這個單字,等到一串程式碼寫完,單字也自然背起來了。

    雖然年輕時貪玩,不過陳威亨用自己的決心加倍努力,終於能將過去遺漏的知識彌補回來,而這樣認真的態度,也受到上司的肯定。陳威亨說,雖然在前公司只待了1年半,在普奇科技也不過2年,不過主管都認為他已經有足夠的實力,可以領導其他新進員工了。

    在修機車和機臺的過程中,累積尋找關鍵問題的實力
    開始寫程式之前,陳威亨是繞了一大圈才找到這項目標並培養出興趣。然而,先前的經驗對現在的工作也很有幫助,例如在車行當學徒或是電子廠修機臺,看起來和寫程式沒什麼關係,不過對他來說,這些工作和程式Debug的過程其實是很類似的。

    陳威亨表示,剛開始在車行當學徒時對機車完全不了解,只能做最基本的洗車、換機油等工作,後來才漸漸認識每一款機車的構造,以及該如何使用維修工具。一個有經驗的修車師傅,會先檢查並判斷車子故障的原因,然後一次將需要用到的工具全部準備好才開始修;而沒經驗的學徒,常常會邊修邊看螺絲、螺帽的規格,然後再跑去工具箱裡拿。這中間的差別就在於基本功培養是否紮實。

    修到後來,陳威亨常常只要一看是哪個廠牌的哪個車型,就能猜到大概是什麼地方有問題了,因為每個車型在出廠時,總會有固定的地方設計不佳,有經驗的師傅可以立刻猜出答案,而不用從頭檢查火星塞、油線、皮帶等。

    在寫程式時也有類似的情形,像是寫網頁框架時,如果遇到不遵守W3C網頁標準規範的瀏覽器IE 6,就容易出現排版異常,這時有經驗的程式設計師就會在程式碼中加一行「zoom: 1」指令,強迫瀏覽器重新計算程式碼內容,通常有60%的機率能得到與原本預期相同的結果。

    對於現在很流行的改機車排氣管,陳威亨認為其實對機車的性能幫助不大。他說,雖然改排氣管是最不傷引擎的做法,不過只是造型變化而已,要提升車子的性能,還是要改引擎、化油器等等零件,像他之前騎的50cc機車,改完之後甚至能騎到時速130公里。不過陳威亨也強調,改車只是為了一時的快感而已,其實對車本身的傷害很大,耐用度也會下降。這是由於車體本來就是設計給小馬力的引擎用的,改完之後可能皮帶、彈簧等零件承受不了太高的轉速或馬力,自然損壞的機會也高。

    在程式開發上也有類似狀況。像是有些前端網頁工程師會用CSS hack語法來寫網頁,雖然不用遵照標準可能比較快又方便,但像現在所有瀏覽器都開始遵照標準了,這樣的網頁就會有問題。文⊙李世平

  • ithome新聞:微軟開始接受行動應用程式提交

    文/陳曉莉 (編譯) 2009-07-28

     
    微軟行動平台產品管理總監Todd Brix說明,認證約需10個工作天,由於微軟已釋出相關的驗證工具及標準,因此Brix認為驗證結果將不會有太多意外之事。

     
     
    微軟宣布開始接受行動應用程式的提交,來自29個國家的開發人員或獨立軟體開發商(ISV)可開始上傳應用程式、遊戲或工具到Windows Marketplace平台上,微軟也將啟動應用程式驗證程序。

    微軟行動平台產品管理總監Todd Brix說明,認證約需10個工作天,開發人員可透過儀表盤檢視程式驗證過程,以及提供相關的產品資訊讓微軟協助行銷,以觸及目前市場上逾3000萬的Windows Mobile裝置用戶。

    如果程式未通過驗證,微軟亦會提供詳細的報告說明原因,由於微軟已釋出相關的驗證工具及標準,因此Brix認為驗證結果將不會有太多意外之事。微軟強調,這是因為開發人員曾抗議蘋果的驗證程序不夠透明化。

    Brix指出,微軟的策略很簡單,就是要創造一個全球性的Windows Phones市場,讓開發人員及使用者得以銷售及購買高品質的應用程式,打造一個清楚的程序及機會,供開發人員與ISV得以靠創新賺錢,使用者也將有多種付費的管道。

    為了鼓勵程式開發人員,微軟舉辦了Race to Market Challenge競賽,自Windows Marketplace for Mobile上線到今年底,將評選出最受歡迎的免費應用程式、最有價值、最有用,以及最有趣的應用程式,獎品除了獎座及免費行銷及推廣外,還包括微軟的Surface觸控式電腦一台。

    根據市場研究公司Juniper的預估,由於有愈來愈多鎖定大眾市場的應用程式商店,估計到2014年行動應用程式年度下載量將達到200億。

    微軟自Windows Mobile 6.5開始嵌入Windows Marketplace for Mobile服務,讓未來的Windows Mobile裝置皆可透過該服務直接瀏覽及下載應用程式。Windows Marketplace for Mobile預計在今年下半年上線,首款採用Windows Mobile 6.5作業系統的行動電話則將在今年秋天現身。(編譯/陳曉莉) 

    引用地址:http://ithome.com.tw/itadm/article.php?c=56215

  • 微軟推免費office 揚言功能勝Google

    【明報專訊】微軟的文書處理軟件Office,一直被視為微軟旗下會生金蛋的雞,但在Google網上辦公室軟件Google Docs的強勢進攻下,微軟也意識到面臨嚴峻挑戰。為了作出反擊,微軟也決定向「雲端程式」進軍,宣布會於明年推出免費網上版Office軟件,聲稱功能比Google Docs更多。
    界面一樣 明年推出
    網上版Office包括文字處理、試算表、簡報軟件及一個筆記程式,費用全免,使用的界面將和現時的Office甚為相似。微軟表示,全球Windows Live的4億用戶將可免費使用網上版Office。微軟將於明年上半年推出Office 2010時,一同發布網上版Office。微軟同時亦會推出網上商業版Office,但會向商業用戶收費。這將是微軟和Google這兩大科技巨擘的新戰場。Google剛在上周宣布推出免費作業系統挑戰視窗,微軟上月則發布新搜索引擎Bing,抗衡Google。分析師埃格伯特(Katherine Egbert)說:「微軟最終還是透過以網絡為基礎的世界進行改革。我們先是見到Bing,現在我們看到網上版Office。」另一名分析師麥克什利(Sheri McLeish)預計,若現時上億Office用戶湧往使用網上版Office後,微軟在網上辦公室軟件的用戶量將超越Google。