热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

精讲MySQL数据库的SQL语法参考_MySQL

一、资料定义ddl(datadefinitionlanguage)W!}{ud?D-)}H8pi资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候
一、资料定义 ddl(data definition language) W!}{ud?D
-)"}H8pi
  资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。 g&z 0I-vD
 {~ h3Ga
  1、建表格: ^|5'0~l/.
+& KEn|K
create table table_name( sZM c-
column1 datatype [not null] [not null primary key], :KZt]*mO.
column2 datatype [not null], -9JZ`X
...); "Ei\x0
kG.?sW
  说明:  $baT~
K`TF
datatype --是资料的格式,详见表。 $_Mz*UYC
nut null --可不可以允许资料有空的(尚未有资料填入)。 TVu ]-;
primary key --是本表的主键。 rxSWd
5lVzo%th$
  2、更改表格  f'@3`i@fz
" 9'.l(s
alter table table_name gw6O|DuC
add column column_name datatype W <#so
D !~`CcWl
  说明:增加一个栏位(没有删除某个栏位的语法。 :;PJ`+*ru
FuZ)`zzb
alter table table_name dFKsQEF3"_
add primary key (column_name) |?/zk
M]1Fg\Q&
  说明:更改表得的定义把某个栏位设为主键。 hj\bDz
&yAn
alter table table_name Y_ZH"7@
drop primary key (column_name) \,}Vb-x(
~W|P`a
  说明:把主键的定义删除。 W DsCzJHQ
cGV ,` $r1
  3、建立索引  |;-
f@- l+2
create index index_name on table_name (column_name) 7P0x2+w&
Sx8_y&LN
  说明:对某个表格的栏位建立索引以增加查询时的速度。 &?AG95 8]d
cVR']Q
  4、删除  @Ge/l=cc4
p.N5?.t 
drop table_name rXtckd0m
drop index_name Ud>m,%,-
])54k
二、资料操作 dml (data manipulation language) ,D:DtgD2
nCuJ#v x q
  资料定义好之後接下来的就是资料的操作。资料的操作不外乎增加资料(insert)、查询资料(query)、更改资料(update) 、删除资料(delete)四种模式,以下分 别介绍他们的语法:  SUj u]
YZiOY<
  1、增加资料: 0yiK}t-6
jb8I%*
insert into table_name (column1,column2,...) 7pwpa8
values ( value1,value2, ...) DYO /WN
)-(0)Bo Z{
  说明: FxBH3c1JY
b9n?'e 2
  1.若没有指定column 系统则会按表格内的栏位顺序填入资料。 6 q2$ox1p
R:?@,R}HL
  2.栏位的资料形态和所填入的资料必须吻合。 )m&?/F
"A-/#ERc
  3.table_name 也可以是景观 view_name。 D@ 'p?=
b2'imt4xWI
insert into table_name (column1,column2,...) wLvp|
select columnx,columny,... from another_table M!Sqqi=S
0}EDVDA
  说明:也可以经过一个子查询(subquery)把别的表格的资料填入。 e=U |7yJ
 \{%>Oa J
  2、查询资料: LX3
#Ta
  基本查询 6i/(;W [
[H ;(R"
select column1,columns2,... I!.s6UH;
from table_name :`6^nfg)S
{LNm='.P
  说明:把table_name 的特定栏位资料全部列出来 9.Nco@hMW
Gy:J%:
select * i#,R'0 
from table_name ~zp|a"Q6
where column1 = xxx xnK.E59c[
[and column2 > yyy] [or column3 <> zzz] L9`d^y-H>
9{7[ U3
  说明: Y#d 
BB4,Z>Jjv
  1.*表示全部的栏位都列出来。 ?:D&0SJ3
lr?g)i
  2.where 之後是接条件式,把符合条件的资料列出来。 @GkWb Q
D=/"0$ w
select column1,column2 | 6({' Du@
from table_name /=v FJj
order by column2 [desc] 9>M4c0@^
:.?:@j`\
  说明:order by 是指定以某个栏位做排序,[desc]是指从大到小排列,若没有指明,则是从小到大 YnA@ )TqF
LLqRU2r]_;
  排列 L}_V
$R l=C
  组合查询 ?WHUfR
/Nh6&2q
  组合查询是指所查询得资料来源并不只有单一的表格,而是联合一个以上的表格才能够得到结果的。 _7G^JvKR 5
dQ:9DhlBp)
select * ~=|iH_f8}S
from table1,table2 CR9D4V
where table1.colum1=table2.column1 pB CbNEpI
#$t-7JPgcX
  说明: SoA],B4v
4NY}t`,/
  1.查询两个表格中其中 column1 值相同的资料。 TV`pFs
fAyX]Vx|^
  2.当然两个表格相互比较的栏位,其资料形态必须相同。 =A qU @a
z"K\4 
  3.一个复杂的查询其动用到的表格可能会很多个。 1{),LH9
g60w/n
  整合性的查询: Zp#_}
LA$SLiM_g
select count (*) U$*#mlab+%
from table_name :A{W2
where column_name = xxx  TW^/Uh3
0{qa8%t
  说明: o/LM
RBt''m
  查询符合条件的资料共有几笔。 V}xG%> 
l{"^cOB:!
select sum(column1) SC=
from table_name F HjeQ#
QE||
  说明: %5 4 1[u`R
gY`!.<
  1.计算出总和,所选的栏位必须是可数的数字形态。 vy 0cQ  g
b],MA_pI?=
  2.除此以外还有 avg() 是计算平均、max()、min()计算最大最小值的整合性查询。 Ir Qjy`CZb
yb%
select column1,avg(column2) W4L. '~o
from table_name P;ny"Fbw
group by column1 ]UeJ2,?p
having avg(column2) > xxx N_" toQ)U
h88A(D
  说明: 9~e9|{\$^
?%?~@0xac
  1.group by: 以column1 为一组计算 column2 的平均值必须和 avg、sum等整合性查询的关键字一起使用。 Wvek?8de
CN-<*XBF
  2.having : 必须和 group by 一起使用作为整合性的限制。 o[yoc'K{:
o!'$ix?"
  复合性的查询 a -z %Gd
 oEF]<'
select * @+3i }Y |\
from table_name1 ]`R^A2PO\
where exists ( >`1 E=j
select * ;d\k?j[
from table_name2  m@GF
where conditions ) "r4hKi
rc4Q.\/
  说明: &+=j7[v%
[pH0?6
  1.where 的 conditions 可以是另外一个的 query。 q\bjmR;JI}
b\8w*T3
  2.exists 在此是指存在与否。 5/uyT>w 5U

select * IBG@ NXH
from table_name1 &>k d}N
where column1 in ( -T`wjeA8N
select column1 XTxaGE
from table_name2 K
where conditions ) vZq''L
mE$N|3Km}Y
  说明:  r> yt8gO
@y/r`
  1. in 後面接的是一个集合,表示column1 存在集合里面。 @l.xGVn;>e
1J|D44p
  2. select 出来的资料形态必须符合 column1。 #VL :48p@
d]j^a
  其他查询 w;g_.JRM4
iYQH>6r
select * [{i:M^
from table_name1 { OwNw
where column1 like x% 'S ME -d
BbnA*eTj8
  说明:like 必须和後面的x% 相呼应表示以 x为开头的字串。 iT;}R,Y>;
ikdBbd2
select * 91w&{+dX
from table_name1 nKVFx{hF@
where column1 in (xxx,yyy,..) |x(Weeb
-}$h%Og
  说明:in 後面接的是一个集合,表示column1 存在集合里面。 +t
 Ga{L/:DG
select * FO
from table_name1 \  Hl,6
where column1 between xx and yy z[sE RG'O
>p` Ti
  说明:between 表示 column1 的值介於 xx 和 yy 之间。 `V2a5al
hUSCST\<5
  3、更改资料: U.Q?F
h  {VK
update table_name 3&og5]X
set column1=xxx zCXE)o
where conditoins sq?'CH =N)

  说明: 7!V@I4Ae
a 8'u=aD
  1.更改某个栏位设定其值为xxx。 Lz2U"7
x}H2j,;ar
  2.conditions 是所要符合的条件、若没有 where 则整个 table 的那个栏位都会全部被更改。 -rQ? T*E:
ks#p b[:j
  4、删除资料: Wrl(cXsc7
vcz`d*S<
delete from table_name bG-2wDc
where conditions JCUgVEBlzB
2k`uuzl
  说明:删除符合条件的资料。 (!d%rU
4I(w3F 0
  说明:关于where条件后面如果包含有日期的比较,不同数据库有不同的表达式。具体如下: 2P-A$
J3;>*,KN
  (1)如果是access数据库,则为:where mydate>#2000-01-01# !,%BQ>
blKEV6%{
  (2)如果是oracle数据库,则为:where mydate>cast(2000-01-01 as date) 或:where mydate>to_date(2000-01-01,yyyy-mm-dd) f3 FD-8h>
在delphi中写成: pT?w#j7md
a_QKi9y
thedate=2000-01-01; !Y6UWmK (
query1.sql.add(select * from abc where mydate>cast(++thedate++ as date)); ?At5vUdq
alTyce6;a
  如果比较日期时间型,则为: Vg }t(Y[F'
& H:
where mydatetime>to_date(2000-01-01 10:00:01,yyyy-mm-dd hh24:mi:ss);
推荐阅读
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
author-avatar
俺是糊涂人一个
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有