飘飘悠悠 发表于 2015-1-16 22:18:49

MYSQL网页编程之精讲MySQL数据库的SQL语法参考

下面我将描述五个不使用MySQL的响亮理由。1、材料界说ddl(datadefinitionlanguage)
  材料定言语是指对材料的格局和形状下界说的言语,他是每一个材料库要创建时分时起首要面临的,举凡材料分哪些表格干系、表格内的有什麽栏位主键、表格和表格之间相互参考的干系等等,都是在入手下手的时分所必需计划好的。
  1、建表格:
    createtabletable_name(
    column1datatype,
    column2datatype,
    ...);
  申明: 
  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
    
  申明:
  1.*暗示全体的栏位都列出来。
  2.where之後是接前提式,把切合前提的材料列出来。
    selectcolumn1,column2
    fromtable_name
    orderbycolumn2
  申明:orderby是指定以某个栏位做排序,是指从年夜到小分列,若没有指明,则是从小到年夜
  分列
  组合查询
  组合查询是指所查询得材料来历其实不只要单一的表格,而是团结一个以上的表格才干够失掉了局的。
    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独有的功能,但是这个最近新增加的功能使得这个数据库比以前更具吸引力了。

莫相离 发表于 2015-1-19 08:18:35

XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)

山那边是海 发表于 2015-1-25 18:45:15

是要和操作系统进行Socket通讯的场景。否则建议慎重!

深爱那片海 发表于 2015-2-3 13:22:54

如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。

金色的骷髅 发表于 2015-2-9 03:00:21

两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书

海妖 发表于 2015-2-26 19:43:48

需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。

蒙在股里 发表于 2015-3-8 17:08:53

原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。

仓酷云 发表于 2015-3-16 07:51:56

相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐

不帅 发表于 2015-3-22 21:12:15

sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西
页: [1]
查看完整版本: MYSQL网页编程之精讲MySQL数据库的SQL语法参考