More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  STVZXHProfileFriendsBlogMore Tools Explore the Spaces community

Blog

July 24

SQL 语法参考手册

一、资料定义ddldata definition language

  资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。

  1、建表格:

  create table table_name( column1 datatype [not null] [not null primary key], column2 datatype [not null],...)

  说明: 

  datatype --是资料的格式,详见表。

  nut null --可不可以允许资料有空的(尚未有资料填入)。

  primary key --是本表的主键。

  2、更改表格 

  alter table table_name add column column_name datatype

  说明:增加一个栏位(没有删除某个栏位的语法。)

  lter table table_name add primary key (column_name)

  说明:更改表得的定义把某个栏位设为主键。
  
  alter table table_name drop primary key (column_name)

  说明:把主键的定义删除。

  3、建立索引 

  create index index_name on table_name (column_name)

  说明:对某个表格的栏位建立索引以增加查询时的速度。

  4、删除 

  drop table_name

  drop index_name

  二、资料形态 datatypes

  smallint              16 位元的整数。


  interger               32 位元的整数。

  decimal(p,s)       p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数後有几位数。如果没有特别指定,则系统会设为 p=5; s=0

  float                    32位元的实数。


  double                64位元的实数。

  char(n)               n 长度的字串,n不能超过 254

  varchar(n)          长度不固定且其最大长度为 n 的字串,n不能超过 4000

  graphic(n)          char(n) 一样,不过其单位是两个字元 double-bytes n不能超过127。这个形态是为支援两个字元长度的字体,例如中文字。

  vargraphic(n)     可变长度且其最大长度为 n 的双字元字串,n不能超过 2000

  date                   包含了 年份、月份、日期。

  time                   包含了 小时、分钟、秒。

  timestamp         包含了 年、月、日、时、分、秒、千分之一秒。

 

 

 

三、资料操作 dmldata manipulation language

  资料定义好之後接下来的就是资料的操作。资料的操作不外乎增加资料(insert)、查询资料(query)、更改资料(update) 、删除资料(delete)四种模式,以下分 别介绍他们的语法:

  1、增加资料:

  insert into table_name (column1,column2,...) values ( value1,value2, ...)

  说明:

  1.若没有指定column 系统则会按表格内的栏位顺序填入资料。

  2.栏位的资料形态和所填入的资料必须吻合。

  3.table_name 也可以是景观 view_name

  insert into table_name (column1,column2,...) select columnx,columny,... from another_table

  说明:也可以经过一个子查询(subquery)把别的表格的资料填入。

  2、查询资料:

  基本查询

  select column1,columns2,... from table_name

  说明:把table_name 的特定栏位资料全部列出来

  select * from table_name where column1 = xxx [and column2 > yyy] [or column3 <> zzz]

  说明:

  1.'*'表示全部的栏位都列出来。

  2.where 之後是接条件式,把符合条件的资料列出来。

  select column1,column2 from table_name order by column2 [desc]

  说明:order by 是指定以某个栏位做排序,[desc]是指从大到小排列,若没有指明,则是从小到大排列

  组合查询

  组合查询是指所查询得资料来源并不只有单一的表格,而是联合一个以上的表格才能够得到结果的。

  select * from table1,table2 where table1.colum1=table2.column1

  说明:

  1.查询两个表格中其中 column1 值相同的资料。


  2.当然两个表格相互比较的栏位,其资料形态必须相同。

  3.一个复杂的查询其动用到的表格可能会很多个。

  整合性的查询:

  select count (*) from table_name where column_name = xxx

  说明:

  查询符合条件的资料共有几笔。

  select sum(column1) from table_name

  说明:

  1.计算出总和,所选的栏位必须是可数的数字形态。

  2.除此以外还有 avg() 是计算平均、max()min()计算最大最小值的整合性查询。

  select column1,avg(column2) from table_name group by column1 having avg(column2) > xxx

  说明:

  1.group by: column1 为一组计算 column2 的平均值必须和 avgsum等整合性查询的关键字一起使用。

  2.having : 必须和 group by 一起使用作为整合性的限制。

  复合性的查询

  select * from table_name1 where exists ( select * from table_name2 where conditions )

  说明:

  1.where conditions 可以是另外一个的 query

  2.exists 在此是指存在与否。

  select * from table_name1 where column1 in ( select column1 from table_name2 where conditions )

  说明: 

  1. in 後面接的是一个集合,表示column1 存在集合里面。

  2. select 出来的资料形态必须符合 column1

  其他查询

  select * from table_name1 where column1 like 'x%'

  说明:like 必须和後面的'x%' 相呼应表示以 x为开头的字串。

  select * from table_name1 where column1 in ('xxx','yyy',..)

  说明:in 後面接的是一个集合,表示column1 存在集合里面。

  select * from table_name1 where column1 between xx and yy

  说明:between 表示 column1 的值介於 xx yy 之间。

  3、更改资料:

  update table_name set column1='xxx' where conditoins

  说明:

  1.更改某个栏位设定其值为'xxx'

  2.conditions 是所要符合的条件、若没有 where 则整个 table 的那个栏位都会全部被更改。

  4、删除资料:

  delete from table_name where conditions

  说明:删除符合条件的资料。

  说明:关于where条件后面如果包含有日期的比较,不同数据库有不同的表达式。具体如下:

  (1)如果是access数据库,则为:where mydate>#2000-01-01#

  (2)如果是oracle数据库,则为:where mydate>cast('2000-01-01' as date) 或:where mydate>to_date('2000-01-01','yyyy-mm-dd')

  在delphi中写成:

  thedate='2000-01-01';

  query1.sql.add('select * from abc where mydate>cast('+''''+thedate+''''+' as date)');

  如果比较日期时间型,则为:

  where mydatetime>to_date('2000-01-01 10:00:01','yyyy-mm-dd hh24:mi:ss')

 

SQL 查询 更新 定义命令

SQL Drop Table
 
有时候我们会决定我们需要从数据库中清除一个表格。事实上,如果我们不能这样做的话,那将会是一个很大的问题,因为数据库管理师 (Database Administrator -- DBA) 势必无法对数据库做有效率的管理。还好,SQL 有提供一个 DROP TABLE的语法来让我们清除表格。 DROP TABLE 的语法是:

DROP TABLE "表格名"

我们如果要清除在SQL CREATE 中建立的顾客表格,我们就打入:

DROP TABLE customer.

=============================

SQL Insert Into
2006-12-12 18:11

到目前为止,我们学到了将如何把资料由表格中取出。但是这些资料是如果进入这些表格的呢? 这就是这一页 (INSERT INTO) 和下一页 (UPDATE) 要讨论的。

基本上,我们有两种作法可以将资料输入表格中内。一种是一次输入一笔,另一种是一次输入好几笔。 我们先来看一次输入一笔的方式。

依照惯例,我们先介绍语法。一次输入一笔资料的语法如下:

INSERT INTO "表格名" ("栏位1", "栏位2", ...)
VALUES ("值1", "值2", ...)

假设我们有一个架构如下的表格:

Store_Information 表格

Column Name Data Type
store_name char(50)
Sales float
Date datetime

而我们要加以下的这一笔资料进去这个表格:在 January 10, 1999,Los Angeles 店有 $900 的营业额。我们就打入以下的 SQL 语句:

INSERT INTO Store_Information (store_name, Sales, Date)
VALUES ('Los Angeles', 900, 'Jan-10-1999')

第二种 INSERT INTO 能够让我们一次输入多笔的资料。跟上面刚的例子不同的是,现在我们要用 SELECT 指令来指明要输入表格的资料。如果您想说,这是不是说资料是从另一个表格来的,那您就想对了。一次输入多笔的资料的语法是:

INSERT INTO "表格1" ("栏位1", "栏位2", ...)
SELECT "栏位3", "栏位4", ...
FROM "表格2"

以上的语法是最基本的。这整句 SQL 也可以含有 WHEREGROUP BY、 及 HAVING 等子句,以及表格连接及别名等等。

举例来说,若我们想要将 1998 年的营业额资料放入 Store_Information 表格,而我们知道资料的来源是可以由 Sales_Information 表格取得的话,那我们就可以打入以下的 SQL:

INSERT INTO Store_Information (store_name, Sales, Date)
SELECT store_name, Sales, Date
FROM Sales_Information
WHERE Year(Date) = 1998

在这里,我用了 SQL Server 中的函数来由日期中找出年。不同的数据库会有不同的语法。 举个例来说,在 Oracle 上,您将会使用 WHERE to_char(date,'yyyy')=1998。

 

==========================

SQL Update
2006-12-12 18:12

我们有时候可能会需要修改表格中的资料。在这个时候,我们就需要用到 UPDATE 指令。这个指令的语法是:

UPDATE "表格名"
SET "栏位1" = [新值]
WHERE {条件}

最容易了解这个语法的方式是透过一个例子。假设我们有以下的表格:

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999

我们发现说 Los Angeles 在 01/08/1999 的营业额实际上是 $500,而不是表格中所储存的 $300,因此我们用以下的 SQL 来修改那一笔资料:

UPDATE Store_Information
SET Sales = 500
WHERE store_name = "Los Angeles"
AND Date = "Jan-08-1999"

现在表格的内容变成:

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $500 Jan-08-1999
Boston $700 Jan-08-1999

在这个例子中,只有一笔资料符合 WHERE 子句中的条件。如果有多笔资料符合条件的话,每一笔符合条件的资料都会被修改的。

我们也可以同时修改好几个栏位。这语法如下:

UPDATE "表格"
SET "栏位1" = [值1], "栏位2" = [值2]
WHERE {条件}

==========================================

SQL DELETE FROM
2006-12-12 18:12

在某些情况下,我们会需要直接由数据库中去除一些资料。这可以藉由 DELETE FROM 指令来达成。它的语法是:

DELETE FROM "表格名"
WHERE {条件}

以下我们用个实例说明。假设我们有以下这个表格:

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999

而我们需要将有关 Los Angeles 的资料全部去除。在这里我们可以用以下的 SQL 来达到这个目的:

DELETE FROM Store_Information
WHERE store_name = "Los Angeles"

现在表格的内容变成:

Store_Information 表格

store_name Sales Date
San Diego $250 Jan-07-1999
Boston $700 Jan-08-1999

===============================================

SQL CREATE TABLE
2006-12-12 18:07

表格是数据库中储存资料的基本架构。在绝大部份的情况下,数据库厂商不可能知道您需要如何储存您的资料,所以通常您会需要自己在数据库中建立表格。虽然许多数据库工具可以让您在不需用到 SQL 的情况下建立表格,不过由于表格是一个最基本的架构,我们决定包括 CREATE TABLE 的语法在这个网站中。

在我们跳入 CREATE TABLE 的语法之前,我们最好先对表格这个东西有些多一点的了解。表格被分为栏位 (column) 及列位 (row)。每一列代表一笔资料,而每一栏代表一笔资料的一部份。举例来说,如果我们有一个记载顾客资料的表格,那栏位就有可能包括姓、名、地址、城市、国家、生日...等等。当我们对表格下定义时,我们需要注明栏位的标题,以及那个栏位的资料种类。

那,资料种类是什么呢?资料可能是以许多不同的形式存在的。它可能是一个整数 (例如 1),、一个实数(例如 0.55)、一个字串 (例如 'sql')、一个日期/时间 (例如 '2000-JAN-25 03:22:22')、或甚至是 以二进法 (binary) 的状态存在。当我们在对一个表格下定义时,我们需要对每一个栏位的资料种类下定义。(例如 '姓' 这个栏位的资料种类是 char(50)━━代表这是一个 50 个字符的字串)。我们需要注意的一点是不同的数据库有不同的资料种类,所以在对表格做出定义之前最好先参考一下数据库本身的说明。

CREATE TABLE 的语法是:

CREATE TABLE "表格名"
("栏位 1" "栏位 1 资料种类",
"栏位 2" "栏位 2 资料种类",
... )

若我们要建立我们上面提过的顾客表格,我们就打入以下的 SQL:

CREATE TABLE customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date)

======================================================

SQL ALIAS
2006-12-12 18:01

接下来,我们讨论 alias (别名) 在 SQL 上的用处。最常用到的别名有两种: 栏位别名及表格别名。

简单地来说,栏位别名的目的是为了让 SQL 产生的结果易读。在之前的例子中, 每当我们有营业额总合时,栏位名都是 SUM(sales)。 虽然在这个情况下没有什么问题,可是如果这个栏位不是一个简单的总合,而是一个复杂的计算, 那栏位名就没有这么易懂了。若我们用栏位别名的话,就可以确认结果中的栏位名是简单易懂的。

第二种别名是表格别名。要给一个表格取一个别名,只要在 FROM 子句 中的表格名后空一格,然后再列出要用的表格别名就可以了。这在我们要用 SQL 由数个不同的表格中 获取资料时是很方便的。这一点我们在之后谈到连接 (join) 时会看到。

我们先来看一下栏位别名和表格别名的语法:

SELECT "表格别名"."栏位1" "栏位别名"
FROM "表格名" "表格别名"

基本上,这两种别名都是放在它们要替代的物件后面,而它们中间由一个空白分开。我们 继续使用 Store_Information这个表格来做例子:

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999

我们用跟 SQL GROUP BY 那一页 一样的例子。这里的不同处是我们加上了栏位别名以及表格别名:

SELECT A1.store_name Store, SUM(A1.Sales) "Total Sales"
FROM Store_Information A1
GROUP BY A1.store_name

结果:

Store Total Sales
Los Angeles $1800
San Diego $250
Boston $700

在结果中,资料本身没有不同。不同的是栏位的标题。这是运用栏位别名的结果。在第二个栏位上,原本我们的标题是 "Sum(Sales)",而现在我们有一个很清楚的 "Total Sales"。很明显地,"Total Sales" 能够比 "Sum(Sales)" 更精确地阐述这个栏位的含意。用表格别名的好处在这里并没有显现出来,不过这在下一页 (SQL Join) 就会很清楚了。

-========================================

SQL SELECT
2006-12-12 17:52

是用来做什么的呢?一个最常用的方式是将资料从数据库中的表格内选出。从这一句回答中,我们马上可以看到两个关键字: 从 (FROM) 数据库中的表格内选出 (SELECT)。(表格是一个数据库内的结构,它的目的是储存资料。在表格处理这一部分中,我们会提到如何使用 SQL 来设定表格。) 我们由这里可以看到最基本的 SQL 架构:

SELECT "栏位名" FROM "表格名"

我们用以下的例子来看看实际上是怎么用的。假设我们有以下这个表格:

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999

若要选出所有的店名 (store_Name),我们就打入:

SELECT store_name FROM Store_Information

结果:

store_name
Los Angeles
San Diego
Los Angeles
Boston

我们一次可以读取好几个栏位,也可以同时由好几个表格中选资料。



 

精妙SQL语句

精妙SQL语句
 
说明:复制表(只复制结构,源表名:a 新表名:b)
SQL: select * into b from a where 1<>1

说明:拷贝表(拷贝数据,源表名:a 目标表名:b)
SQL: insert into b(a, b, c) select d,e,f from b;

说明:显示文章、提交人和最后回复时间
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

说明:外连接查询(表名1:a 表名2:b)
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

说明:日程安排提前五分钟提醒
SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5

说明:两张关联表,删除主表中已经在副表中没有的信息
SQL:
delete from info where not exists ( select * from infobz where info.infid=infobz.infid )

说明:--
SQL:
SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE FROM TABLE1,(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND FROM TABLE2 WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X, (SELECT NUM, UPD_DATE, STOCK_ONHAND FROM TABLE2 WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') ¦¦ '/01','YYYY/MM/DD') - 1, 'YYYY/MM') ) Y, WHERE X.NUM = Y.NUM (+)AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND ) B WHERE A.NUM = B.NUM

说明:--
SQL:
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名称='"&strdepartmentname&"' and 专业名称='"&strprofessionname&"' order by 性别,生源地,高考总成绩

说明:
从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源)
SQL:
SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') AS telyear, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '01', a.factration)) AS JAN, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '02', a.factration)) AS FRI, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '03', a.factration)) AS MAR, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '04', a.factration)) AS APR, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '05', a.factration)) AS MAY, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '06', a.factration)) AS JUE,SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '07', a.factration)) AS JUL, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '08', a.factration)) AS AGU, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '09', a.factration)) AS SEP, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '10', a.factration)) AS OCT, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '11', a.factration)) AS NOV,SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '12', a.factration)) AS DEC FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration FROM TELFEESTAND a, TELFEE b WHERE a.tel = b.telfax) a GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy')

说明:四表联查问题:
SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

说明:得到表中最小的未使用的ID号
SQL:
SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID FROM Handle WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)
 
June 21

毕业论文写作方法

毕业论文写作方法 

撰写毕业论文是开放教育学生综合运用所学知识进行基础训练的重要教学环节,毕业论文应能表明学生确已较好地掌握本门学科的基础理论、专门知识和基本技能,并具有从事科学研究工作的初步能力。

一、毕业设计论文的特点:

毕业论文属科技论文,它应具有以下特点

1、科学性

科学性――就描述对象而论,是指论文只涉及科学与技术领域的命题;就描述内容来看,是指它要求文章的论述具有可信性。科技论文不能凭主观臆断或个人好恶随意舍取素材或得出的结论。论点的推理要求严密、并正确可信。揭示的是普遍规律或特殊规律。

2、逻辑性

辩证逻辑揭示内在规律和联系

形式逻辑揭示外部规律和联系

逻辑性是文章的结构特点,它要求论文的脉络清晰、结构严谨、推论合理、演算正确、符号规范、文字通顺、前呼后应、自成系统。不论文章所涉及的专题大小如何,都应该有自己的前提或假说、论证素材和推断结论,不应该是一堆堆数据罗列或一串串现象的自然描绘。

3、首创性

首创性是对描述的内容区别于其它文献的一种特殊要求,创新是科技论文的灵魂。它要求论文所提示的事物现象、属性、特点、以及事物变化时所遵循的规律,必须是前所未见的、首创的、或部分是首创的,而不是对他人工作的复述或解释。

首创性就是要说出别人没有说过的话,道出别人没有道出的理,有新意,有独道。

4、继承性

就是要站在巨人的肩膀上去看旧问题发现新问题。

论文的特征就是论说、阐明道理,揭示某种规律和特征。因而不是记事状物,也不是叙述过程,更不是抒发情感。

 

二、准备材料

材料是构成论文的基础,它既是形成主题的基础,又是表现表现主题的支柱,有充实的材料,才能形成正确的观点,才能对观点进行详实阐述和科学论证。

1、材料的收集和积累

一篇文章是否切合实际,是否具有指导作用,在很大程度上取决于作者材料掌握的多少,在写作前,应重视材料的收集积累。材料积累的方式主要有:

1)、深入实际进行实地调查,获得第一手材料。

2)、阅读资料全面收集根据写作目的广泛而全面在查阅文件、档案和书刊上的文献资料。

2、材料的选择和使用

收集到的材料仅仅是写作素材,必须根据文章的需要对收集积累的材料进行选择。筛选最有参考利用价值的材料应用到文章中。

①、               围绕主题选择材料。

②、               选择有代表性的材料。

③、               选择真实准确的材料。

④、               选择新颖生动的材料。

 

三、确定主题

确定主题就是立论。确立中心论点和分论点。

主题是文章的中心思想,是作者要说明问题的基本观点,是文章全部思想内容的调度概括,是作者写作目的的集中体现。是主题在文章中是贯穿首尾、支配一切的中心,是文章的统帅和灵魂。文章内在的逻辑关系、材料的取舍、结构的安排设计、语言的选择运用等无一不受主题的制约和支配。

1、  主题的提炼

主题的提炼就是将初步形成的写作目的和意图置于一定的高度,经过从现象到本质、从感性认识到理性认识的逐歧深化,提示社会生活的本质和客观事物的发展规律,从而升华初始的写作目的和写作意图,形成实事求是、深刻透彻的见解或主张。

主题提炼的原则和方法:

     以真实而全面的材料为基础。在主题的提炼中,材料是第一位的,主题不是主观的产物,而是从客观存在的材料中,经过去伪存真、去粗取精,由此及彼,由表及里的提炼而形成的,因此,掌握第一手材料对形成主题很重要。

     以科学分析方法为主导。主题的形成需经过归纳综合的思维过程,因此要以辩证唯物主义的观点为指导,善于抓住事物的共同点,发掘事物的本质,把握事物的发展规律,使主题科学、正确、严谨、具有实用价值。

     以实现社会价值为目的。主题的提炼都要符合社会主义市场经济的发展规律,以实现最大的社会价值和经济效益为目的,没有实用价值的主题则无意义。

2、  主题的确立

①、              主题确立在成文之前。

②、              主题要正确鲜明。

3、  主题的表现

经济类论文与艺术文章不同,主题表现要集中概括、明白显露。

①、              集中概括。就是说一篇文章只能有一中心,所有材料要围绕一个主题展开说明和论述,要遵循一文一事的行文原则,不能把关系不大或毫不相关的问题写到一篇文章里去,形成多主题、多中心,主题要调度概括、周密、严谨。

②、明白显露。主题要素除包括中心思想、原委背景外,还要有写作目的,写作目的一般都采取自我说明的方式在文中直接陈述表露。主要有篇前提要和篇末显意两种表现形式。这两种形式都是以简明的文字、概括的语言,在篇首或篇尾直接表述,提示出文章的主要内容和中心思想,使主题表现显露扼要。

③标题直接揭示主题,使主题更加醒目突出。

 

四、构思结构

结构是文章的经脉。选取了材料,只解决了言之有物的问题,确立了主题,也只是实现了言之有理,如何把观点和材料有机地组织在一起,使之言之有序,是文章结构要解决的问题。结构就是文章的内部构造,是作者对如何运用材料以表现主题的组织安排,经过逻辑思维所形成的思路在文章中的表现。结构在形式上表现为层次,段落等文章的构成框架;内容的内在联系方面,表现为文章的逻辑结构,即文章的思想体系和它的组成要素、各部分之间的关系。

1、结构的基本内容

文章结构的内容主要由标题、层次、段落、过渡、照应、开头、结尾等部分构成。

①选取标题。标题就是题目。是文章主题的集中概括和高度浓缩。标题和主题具有一致性。文章的题目大小适中,太大在则难以驾驭,容易出现大帽子,没内容。太小则难以展开,容易跑题、不切题。

标题不要过长,科技论文标题的字数一般不应超过16个字,特殊情况另论。个人意见,尽量少用并列连词。标题中出现并列连词容易使文章有两个中心。最后哪个也说不透。要把握住一文一事,一文一理的原则。论说一定要清楚明白。

②层次。就是内容的组成顺序。是文章结构的干部分。主要有递进式、并列式、总分式、纵横式等几种形式。

③段落。段落是文章结构的最小单位,也叫自然段,以换行和开头空两格为标志。段落构成要求内容要相对集中,一个段落要表达一个完整的意思,长短要适度。

④过渡。过渡即文章内容的转承与衔接,是文章承上启下的形式,层次与段落之间的桥梁。用好过渡会使上下文之间的衔接转换自然顺畅,文章结构紧凑,逻辑性强。常用的过渡方式有过渡段、过渡句、过渡词、关联词语等。

⑤照应。即文章内容的关照呼应,是文章结构的技艺之一。照应可以使前后内容衔接紧凑,文章结构完整清晰,重点突出,有助于表现主题。照应主要有首尾照应、题文照应、前后照应等几种形式。

⑥、开头。开头是文章结构的起点,是文章内容表述的入笔处。开头的方式有很多种,科技论文的开头一般是开宗明义,表明目的。还可以概述式开头,开头概述 主要内容和基本情况,然后再具体叙述和说明。

⑦、结尾。结尾是文章结构的终结,是文章表述的结束处。是文章结构的重要组成部分,好的结尾往往能深化主题,加深读者对文章的理解。

科技论文的结尾一般用总结归纳式结尾,对全文内容作进一步概括总结,与开头相呼应,起强调主题的作用。

2、结构的原则和要求

①围绕主题安排结构。主题是文章的灵魂,它决定材料的取舍,也决定结构的安排,谋篇布局、起承转合,都要考虑到是否有助于主题的表达,结构安排必须为表达主题服务。

②结构安排要周密严谨、完整连贯。不能出现松散无序、前后矛盾或无故残缺、支离破碎的现象,应通过逻辑关系表现文章各部分的内在联系,使内容形式完善结合,形成一个统一的有机体。

 

 

五、语言表述。

语言表述要适应科研论文说理、揭示规律的需要。总体要求就是简练、准确、明白、晓畅,其中主要是准确。不能有含混语。简练而不离论文体,无需修饰和雕琢。

 

六、起草和修改

有了充分的材料,确立了明确的主题,就进入了成文阶段,这一阶段主要包括编写提纲、起草文稿、修改文稿等环节。

写作基本要求