MySQL SQL 语法参考

2018-06-17 17:06:47来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

一、资料定义?ddl(data?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?
说明:增加一个栏位(没有删除某个栏位的语法。?
alter?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?
包含了?年、月、日、时、分、秒、千分之一秒。?

三、资料操作?dml?(data?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?的平均值必须和?avg、sum等整合性查询的关键字?
一起使用。?
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');

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:一步一步教你网站同步镜像(转载)

下一篇:常用的MySQL命令以及操作技巧