MYSQL语法

一、资料定义ddl(data definition language) <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>
  资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。<o:p></o:p>
  1、建表格:<o:p></o:p>
  create table table_name( 
  column1 datatype [not null] [not null primary key], 
  column2 datatype [not null], 
  ...);<o:p></o:p>
 
  说明:<o:p></o:p>
  datatype --是资料的格式,详见表。<o:p></o:p>
  nut null --可不可以允许资料有空的(尚未有资料填入)。<o:p></o:p>
  primary key --是本表的主键。<o:p></o:p>
  2、更改表格<o:p></o:p>
  alter table table_name 
  add column column_name datatype<o:p></o:p>
 
  说明:增加一个栏位(没有删除某个栏位的语法。<o:p></o:p>
  alter table table_name 
  add primary key (column_name)<o:p></o:p>
 
  说明:更改表得的定义把某个栏位设为主键。<o:p></o:p>
  alter table table_name 
  drop primary key (column_name)<o:p></o:p>
 
  说明:把主键的定义删除。<o:p></o:p>
3 、建立索引 <o:p></o:p>
   create index index_name on table_name (column_name)<o:p></o:p>
 
  说明:对某个表格的栏位建立索引以增加查询时的速度。 <o:p></o:p>
   4 、删除 <o:p></o:p>
   drop table_name 
   drop index_name<o:p></o:p>
 
   二、资料操作 dml(data manipulation language) <o:p></o:p>
  资料定义好之後接下来的就是资料的操作。资料的操作不外乎增加资料 (insert) 、查询资料 (query) 、更改资料 (update)  、删除资料 (delete) 四种模式,以下分别介绍他们的语法: <o:p></o:p>
   1 、增加资料: <o:p></o:p>
   insert into table_name (column1,column2,...) 
   values ( value1,value2, ...)<o:p></o:p>
 
  说明: <o:p></o:p>
   1. 若没有指定 column  系统则会按表格内的栏位顺序填入资料。 <o:p></o:p>
   2. 栏位的资料形态和所填入的资料必须吻合。 <o:p></o:p>
   3.table_name  也可以是景观  view_name <o:p></o:p>
   insert into table_name (column1,column2,...) 
   select columnx,columny,... from another_table<o:p></o:p>
 
  说明:也可以经过一个子查询 (subquery) 把别的表格的资料填入。 <o:p></o:p>
   2 、查询资料: <o:p></o:p>
  基本查询 <o:p></o:p>
   select column1,columns2,... 
   from table_name<o:p></o:p>
 
  说明:把 table_name  的特定栏位资料全部列出来 <o:p></o:p>
资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的 <o:p></o:p>
   select * 
   from table_name 
   where column1 = xxx 
   [and column2 > yyy] [or column3 <> zzz]<o:p></o:p>
 
  说明: <o:p></o:p>
   1.* 表示全部的栏位都列出来。 <o:p></o:p>
   2.where  之後是接条件式,把符合条件的资料列出来。 <o:p></o:p>
   select column1,column2 
   from table_name 
   order by column2 [desc]<o:p></o:p>
 
  说明: order by  是指定以某个栏位做排序, [desc] 是指从大到小排列,若没有指明,则是从小到大 <o:p></o:p>
  排列 <o:p></o:p>
  组合查询 <o:p></o:p>
  组合查询是指所查询得资料来源并不只有单一的表格,而是联合一个以上的表格才能够得到结果的。 <o:p></o:p>
   select * 
   from table1,table2 
   where table1.colum1=table2.column1<o:p></o:p>
 
  说明: <o:p></o:p>
   1. 查询两个表格中其中  column1  值相同的资料。 <o:p></o:p>
   2. 当然两个表格相互比较的栏位,其资料形态必须相同。 <o:p></o:p>
   3. 一个复杂的查询其动用到的表格可能会很多个。 <o:p></o:p>
  整合性的查询: <o:p></o:p>
   select count (*) 
   from table_name 
   where column_name = xxx<o:p></o:p>
 
  说明: <o:p></o:p>
  查询符合条件的资料共有几笔。 <o:p></o:p>
   select sum(column1) 
   from table_name<o:p></o:p>
 
  说明: <o:p></o:p>
   1. 计算出总和,所选的栏位必须是可数的数字形态。 <o:p></o:p>
   2. 除此以外还有  avg()  是计算平均、 max() min() 计算最大最小值的整合性查询。 <o:p></o:p>
   select column1,avg(column2) 
   from table_name 
   group by column1 
   having avg(column2) > xxx<o:p></o:p>
 
  说明: <o:p></o:p>
   1.group by:  column1  为一组计算  column2  的平均值必须和  avg sum 等整合性查询的关键字一起使用。 <o:p></o:p>
   2.having :  必须和  group by  一起使用作为整合性的限制。 <o:p></o:p>
  复合性的查询 <o:p></o:p>
   select * 
   from table_name1 
   where exists ( 
   select * 
   from table_name2 
   where conditions )<o:p></o:p>
 
  说明: <o:p></o:p>
   1.where   conditions  可以是另外一个的  query <o:p></o:p>
   2.exists  在此是指存在与否。 <o:p></o:p>
   select * 
   from table_name1 
   where column1 in ( 
   select column1 
   from table_name2 
   where conditions )<o:p></o:p>
 
  说明: <o:p></o:p>
   1. in 後面接的是一个集合,表示 column1  存在集合里面。 <o:p></o:p>
   2. select 出来的资料形态必须符合  column1 <o:p></o:p>
其他查询 <o:p></o:p>
   select * 
   from table_name1 
   where column1 like x%<o:p></o:p>
 
  说明: like 必须和後面的 x% 相呼应表示以 x 为开头的字串。 <o:p></o:p>
   select * 
   from table_name1 
   where column1 in (xxx,yyy,..)<o:p></o:p>
 
  说明: in 後面接的是一个集合,表示 column1  存在集合里面。 <o:p></o:p>
   select * 
   from table_name1 
   where column1 between xx and yy<o:p></o:p>
 
  说明: between  表示  column1  的值介於  xx   yy  之间。 <o:p></o:p>
   3 、更改资料: <o:p></o:p>
   update table_name 
   set column1=xxx 
   where conditoins<o:p></o:p>
 
  说明: <o:p></o:p>
   1. 更改某个栏位设定其值为 xxx <o:p></o:p>
   2.conditions  是所要符合的条件、若没有  where  则整个  table  的那个栏位都会全部被更改。 <o:p></o:p>
   4 、删除资料: <o:p></o:p>
   delete from table_name 
   where conditions<o:p></o:p>
 
  说明:删除符合条件的资料。 <o:p></o:p>
  说明:关于 where 条件后面如果包含有日期的比较,不同数据库有不同的表达式。具体如下: <o:p></o:p>
   (1) 如果是 access 数据库,则为: where mydate>#<?xml:namespace prefix = st2 ns = "urn:schemas-microsoft-com:office:smarttags" /><st2:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="1" Month="1" Year="2000"><?xml:namespace prefix = st1 ns = "Tencent" /><st1:RTX w:st="on">2000</st1:RTX>-01-01</st2:chsdate>#<o:p></o:p>
   (2) 如果是 oracle 数据库,则为: where mydate>cast(<st2:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="1" Month="1" Year="2000"><st1:RTX w:st="on">2000</st1:RTX>-01-01</st2:chsdate> as date)  或: where mydate>to_date(<st2:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="1" Month="1" Year="2000"><st1:RTX w:st="on">2000</st1:RTX>-01-01</st2:chsdate>,yyyy-mm-dd)<o:p></o:p>
  在 delphi 中写成: <o:p></o:p>
   thedate=<st2:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="1" Month="1" Year="2000"><st1:RTX w:st="on">2000</st1:RTX>-01-01</st2:chsdate>; 
   query1.sql.add(select * from abc where mydate>cast(++thedate++ as date));<o:p></o:p>
 
  如果比较日期时间型,则为: <o:p></o:p>
   where mydatetime>to_date(<st2:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="1" Month="1" Year="2000"><st1:RTX w:st="on">2000</st1:RTX>-01-01</st2:chsdate> 10:00:01,yyyy-mm-dd hh24:mi:ss);<o:p></o:p>
 <o:p>  </o:p>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值