|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一些典型的RDBMS功能并不总是在DBaaS系统中可用。例如MySQL学习教程,WindowsAzureSQLDatabase(以前的SQLAzure)是微软的DBaaS产品,提供了一个类似于SQLServer的数据库平台。 1、材料界说ddl(datadefinitionlanguage)
材料定言语是指对材料的格局和形状下界说的言语,他是每一个材料库要创建时分时起首要面临的,举凡材料分哪些表格干系、表格内的有什麽栏位主键、表格和表格之间相互参考的干系等等,都是在入手下手的时分所必需计划好的。
1、建表格:
createtabletable_name(
column1datatype[notnull][notnullPRimarykey],
column2datatype[notnull],
...);
申明:
datatype--是材料的格局,详见表。
nutnull--可不成以同意材料有空的(还没有有材料填进)。
primarykey--是本表的主键。
2、变动表格
altertabletable_name
addcolumncolumn_namedatatype
申明:增添一个栏位(没有删除某个栏位的语法。
altertabletable_name
addprimarykey(column_name)
申明:变动表得的界说把某个栏位设为主键。
altertabletable_name
dropprimarykey(column_name)
申明:把主键的界说删除。
3、创建索引
createindexindex_nameontable_name(column_name)
申明:对某个表格的栏位创建索引以增添查询时的速率。
4、删除
droptable_name
dropindex_name
2、材料操纵dml(datamanipulationlanguage)
材料界说好之後接上去的就是材料的操纵。材料的操纵不过乎增添材料(insert)、查询材料(query)、变动材料(update)、删除材料(delete)四种形式,以下分别先容他们的语法:
1、增添材料:
insertintotable_name(column1,column2,...)
values(value1,value2,...)
申明:
1.若没有指定column体系则会按表格内的栏位按次填进材料。
2.栏位的材料形状和所填进的材料必需符合。
3.table_name也能够是景不雅view_name。
insertintotable_name(column1,column2,...)
selectcolumnx,columny,...fromanother_table
申明:也能够经由一个子查询(subquery)把其余表格的材料填进。
2、查询材料:
基础查询
selectcolumn1,columns2,...
fromtable_name
申明:把table_name的特定栏位材料全体列出来
select*
fromtable_name
wherecolumn1=xxx
[andcolumn2>yyy][orcolumn3zzz]
申明:
1.*暗示全体的栏位都列出来。
2.where之後是接前提式,把切合前提的材料列出来。
selectcolumn1,column2
fromtable_name
orderbycolumn2[desc]
申明:orderby是指定以某个栏位做排序,[desc]是指从年夜到小分列,若没有指明,则是从小到年夜
分列
组合查询
组合查询是指所查询得材料来历其实不只要单一的表格,而是团结一个以上的表格才干够失掉了局的。
select*
fromtable1,table2
wheretable1.colum1=table2.column1
申明:
1.查询两个表格中个中column1值不异的材料。
2.固然两个表格互相对照的栏位,其材料形状必需不异。
3.一个庞大的查询其动用到的表格大概会良多个。
整合性的查询:
selectcount(*)
fromtable_name
wherecolumn_name=xxx
申明:
查询切合前提的材料共有几笔。
selectsum(column1)
fromtable_name
申明:
1.盘算出总和,所选的栏位必需是可数的数字形状。
2.除此之外另有avg()是盘算均匀、max()、min()盘算最年夜最小值的整合性查询。
selectcolumn1,avg(column2)
fromtable_name
groupbycolumn1
havingavg(column2)>xxx
申明:
1.groupby:以column1为一组盘算column2的均匀值必需和avg、sum等整合性查询的关头字一同利用。
2.having:必需和groupby一同利用作为整合性的限定。
复合性的查询
select*
fromtable_name1
whereexists(
select*
fromtable_name2
whereconditions)
申明:
1.where的conditions能够是别的一个的query。
2.exists在此是指存在与否。
select*
fromtable_name1
wherecolumn1in(
selectcolumn1
fromtable_name2
whereconditions)
申明:
1.in後面接的是一个汇合,暗示column1存在汇合内里。
2.select出来的材料形状必需切合column1。
其他查询
select*
fromtable_name1
wherecolumn1likex%
申明:like必需和後面的x%相照应暗示以x为开首的字串。
select*
fromtable_name1
wherecolumn1in(xxx,yyy,..)
申明:in後面接的是一个汇合,暗示column1存在汇合内里。
select*
fromtable_name1
wherecolumn1betweenxxandyy
申明:between暗示column1的值介於xx和yy之间。
3、变动材料:
updatetable_name
setcolumn1=xxx
whereconditoins
申明:
1.变动某个栏位设定其值为xxx。
2.conditions是所要切合的前提、若没有where则全部table的谁人栏位城市全体被变动。
4、删除材料:
deletefromtable_name
whereconditions
申明:删除切合前提的材料。
申明:关于where前提前面假如包括有日期的对照,分歧数据库有分歧的表达式。详细以下:
(1)假如是access数据库,则为:wheremydate>#2000-01-01#
(2)假如是Oracle数据库,则为:wheremydate>cast(2000-01-01asdate)或:wheremydate>to_date(2000-01-01,yyyy-mm-dd)
在delphi中写成:
thedate=2000-01-01;
query1.sql.add(select*fromabcwheremydate>cast(++thedate++asdate));
假如对照日期工夫型,则为:
wheremydatetime>to_date(2000-01-0110:00:01,yyyy-mm-ddhh24:mi:ss);
MySQL部署迅速,因此移植过程不会导致生产中断。而且,较短的学习曲线可以让你的系统管理员迅速掌握它的运行和维护。而且,MySQL的易于维护和管理意味着目前的职员可以处理目前的工作。 |
|