加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql实例MySQL SQL 语法参考

发布时间:2020-12-12 02:27:37 所属栏目:MySql教程 来源:网络整理
导读:《Mysql实例MySQL SQL 语法参考》要点: 本文介绍了Mysql实例MySQL SQL 语法参考,希望对您有用。如果有疑问,可以联系我们。 一、资料定义?ddl(data?definition?language)? 资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首

《Mysql实例MySQL SQL 语法参考》要点:
本文介绍了Mysql实例MySQL SQL 语法参考,希望对您有用。如果有疑问,可以联系我们。

一、资料定义?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,...)?
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');

编程之家PHP培训学院每天发布《Mysql实例MySQL SQL 语法参考》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读