SQL语句的基本语法

SQL语句的基本语法 尹红写的,实在忍不主贴在这里间做为查看资料.
因为原来的书文是在word里面写的,段落有一点点乱. 一.Select语句的完全语法为:
Select[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[ASalias1][,[table.]field2[ASalias2][,…]]}
FROMtableexpression[,…][INexternaldatabase] [Where…] [GROUPBY…]
[HAVING…] [ORDERBY…] [WITHOWNERACCESSOPTION] 表明:
用中括号([]State of Qatar括起来的一对代表是可选的,用大括号({}卡塔尔括起来的部分是代表必需从当中选拔中间的一个。
一.1FROM子句
FROM子句钦点了Select语句中字段的起点。FROM子句后边是包括多个或多个的表达式(由逗号分开),在那之中的说明式可为单一表名称、已封存的询问或由INNEEscortJOIN、LEFTJOIN或SportageIGHTJOIN获得的复合结果。若是表或询问存款和储蓄在外表数据库,在IN子句之后指明其总体路径。
例:下列SQL语句再次来到全数有定单的顾客: SelectOrderID,Customer.customerID
FROMOrdersCustomers WhereOrders.CustomerID=Customers.CustomeersID
一.2ALL、DISTINCT、DISTINCTROW、TOP谓词
(1卡塔尔(قطر‎ALL重返满意SQL语句条件的享有记录。若无指明那么些谓词,默以为ALL。
例:SelectALLFirstName,LastName FROMEmployees
(2State of QatarDISTINCT如若有两个记录的选拔字段的数目一致,只回去多少个。
(3卡塔尔国DISTINCTROW就算有重新的记录,只回去叁个(4State of QatarTOP展现查询头尾若干笔录。也可回到记录的百分比,那是要用TOPNPERCENT子句
例:再次来到5%定货额最大的定单 SelectTOP5PERCENT* FROM[OrderDetails]
ORDERBYUnitPrice*Quantity*(1-Discount)DESC
一.3用AS子句为字段取外号
假若想为重回的列取五个新的标题,也许,经过对字段的精兵简政或计算之后,爆发了八个新的值,希望把它内置二个新的列里呈现,则用AS保留。
例:重临FirstName字段取小名称叫NickName
SelectFirstNameASNickName,LastName,City FROMEmployees
例:重回新的一列显示仓库储存价值
SelectProductName,UnitPrice,UnitsInStock,UnitPrice*UnitsInStockASvalueInStock
FROMProducts 二.Where子句钦赐询问条件 二.1比较运算符 比较运算符含义
=等于 大于 小于 =大于等于 =小于等于 不等于 !不大于 !相当大于
例:重回96年11月的定单 SelectOrderID,CustomerID,OrderDate FROMOrders
WhereOrderDate#1/1/96#ANDOrderDate#1/30/96# 注意:
McirosoftJETSQL中,日期用‘#’定界。日期也得以用Datevalue(卡塔尔(قطر‎函数来替代。在相比较字符型的多寡时,要丰裕单引号”,尾空格在相比较中被忽略。
例: WhereOrderDate#96-1-1# 也得以象征为:
WhereOrderDateDatevalue(‘1/1/96’卡塔尔国 使用NOT表明式求反。
例:查看96年14月1日从此现在的定单 WhereNotOrderDate=#1/1/96# 二.2限量
BETWEEN…AND…运算符钦赐了要物色的叁个闭区间。
例:重返96年八月到96年七月的定单。
WhereOrderDateBetween#1/1/96#And#2/1/96# 二.3列表
IN运算符用来相称列表中的别样二个值。IN子句能够代替用O奥迪Q7子句连接的万户千门的尺度。
例:要寻觅住在London、Paris或Berlin的具有客商SelectCustomerID,CompanyName,ContactName,City FROMCustomers
WhereCityIn(‘London’,’Paris’,’Berlin’卡塔尔国 二.4情势相配(LIKE卡塔尔(قطر‎LIKE运算符查验四个带有字符串数据的字段值是还是不是合营一内定情势。
LIKE运算符里使用的通配符 通配符含义 ?任何二个单一的字符
*轻便长度的字符 #0~9之间的单一数字 [字符列表]在字符列表里的任一值
[!字符列表]不在字符列表里的任一值
-钦赐字符范围,两侧的值分别为其上下限
例:重返寄邮资编在555-0000到555-9999时期的顾客SelectCustomerID,CompanyName,City,Phone FROMCustomers
WherePhoneLike‘(171卡塔尔555-####’ LIKE运算符的部分体裁及含义
样式含义不契合 LIKE‘A*’A后跟猖狂长度的字符Bc,c255 LIKE’5 ‘5*5555
LIKE’5?5’5与5之间有专断一个字符55,5wer5 LIKE’5##5’5235,50055kd5,5346
LIKE'[a-z]’a-z间的自由三个字符5,%
LIKE'[!0-9]’非0-9间的人身自由一个字符0,1 LIKE'[[]’1,*
三.用O瑞鹰DERBY子句排序结果
O凯雷德DELacrosse子句按二个或多个字段排序查询结果,能够是升序也足以是降序,缺省是升序。O凯雷德DEXC60子句日常坐落于SQL语句的最终。
OKugaDE奥迪Q7子句中定义了多少个字段,则遵照字段的前后相继顺序排序。 例:
SelectProductName,UnitPrice,UnitInStock FROMProducts
OGL450DERBYUnitInStockDESC,UnitPriceDESC,ProductName
O翼虎DERBY子句中得以用字段在选择列表中的地点号代替字段名,能够混合字段名和地点号。
例:下边包车型客车口舌发生与上列相通的效果与利益。
SelectProductName,UnitPrice,UnitInStock FROMProducts
OEvoqueDERBY1DESC,2DESC,3 四.施用连接关系得以达成多表查询
例:寻找同三个城市中承包商和客商的名字
SelectCustomers.CompanyName,Suppliers.ComPany.Name
FROMCustomers,Suppliers WhereCustomers.City=Suppliers.City
例:搜索付加物仓库储存量大于同一种付加物的定单的数量的产物和定单
SelectProductName,OrderID,UnitInStock,Quantity
FROMProducts,[OrderDeails]
WhereProduct.productID=[OrderDetails].ProductID
ANDUnitsInStockQuantity 另一种办法是用MicrosofJETSQL只有的JNNERAV4JOIN
语法: FROMtable1INNERAV4JOINtable2 ONtable1.田野先生1comparisiontable2.田野先生2
里边comparision就是后面Where子句用到的比较运算符。
SelectFirstName,lastName,OrderID,CustomerID,OrderDate FROMEmployees
INNE中华VJOINOrdersONEmployees.EmployeeID=Orders.EmployeeID 注意:
INNE奥迪Q5JOIN不可能三回九转MemoOLEObjectSingleDouble数据类型字段。
在一个JOIN语句中连连几个ON子句 语法: Select田野同志s
FROMtable1INNE宝马X5JOINtable2 ONtable1.田野(field卡塔尔1compoprtable2.田野(fieldState of Qatar1AND
ONtable1.田野同志2compoprtable2.田野先生2OR
ONtable1.田野3compoprtable2.田野先生3 也能够 Select田野s
FROMtable1INNEHighlanderJOIN (table2INNEEscortJOIN[(]table3
[INNERJOER][(]tablex[INNERJOIN]
ONtable1.field1compoprtable2.田野1 ONtable1.田野同志2compoprtable2.田野2
ONtable1.田野(field卡塔尔(قطر‎3compoprtable2.田野(fieldState of Qatar3
外界连接再次来到越多记录,在结果中保存不协作的记录,不管存不设有满意条件的笔录都要回来另一侧的享有记录。
FROMtable[LEFT|RIGHT]JOINtable2 ONtable1.田野先生1comparisiontable.田野(field卡塔尔国2
用左连接来创设外界连接,在表明式的侧面的表会突显其颇负的数额
例:不管有未有定货量,重临全数商品 SelectProductName,OrderID
FROMProducts LEFTJOINOrdersONProducts.PrductsID=Orders.ProductID
右连接与左连接的间隔在于:不管左边表里有未有同盟的记录,它都从左边表中重返全数记录。
例:假设想精晓客商的消息,并总结各方的客商布满,这个时候能够用八个右连接,即便有个别地点未有客商,也要重返看客新闻。
空值不会相互匹配,能够由别的接连技巧测量试验被接连的有些表的字段是不是有空值。
Select* FROMtalbe1 LEFTJOINtable2ONtable1.a=table2.c
四.1连连查询中利用Iif函数实现以0值显示空值
Iif表达式:Iif(IsNull(Amount,0,AmoutState of Qatar例:无论定货大于或小于¥50,都要回来贰个标识。
Iif([Amount]50,?Bigorder?,?Smallorder?卡塔尔(قطر‎ 陆分组和小结查询结果
在SQL的语法里,GROUPBY和HAVING子句用来对数据开展聚焦。GROUPBY子句指明了如约哪几个字段来分组,而将记录分组后,用HAVING子句过滤那一个记录。
GROUPBY子句的语法 Selectfidldlist FROMtable Wherecriteria
[GROUPBYgroupfieldlist[HAVINGgroupcriteria]]
注:MicrosoftJet数据库Jet不可能对备注或OLE对象字段分组。
GROUPBY字段中的Null值以备分组不过不能够被轻巧。
在任何SQL合计函数中不划算Null值。
GROUPBY子句后最多能够包括十一个字段,排序优先级按从左到右的顺序排列。
例:在‘WA’地区的雇员表中按头衔分组后,寻觅具备相近头衔的雇员数目大于1人的装有头衔。
SelectTitle,Count(Title卡塔尔国asTotal FROMEmployees WhereRegion=‘WA’
GROUPBYTitle HAVINGCount(Title卡塔尔1 JETSQL中的集结函数 聚焦函数意义
SUM(卡塔尔求和 AVG(卡塔尔平均值 COUNT(卡塔尔(قطر‎表明式中著录的数额 COUNT(*卡塔尔(قطر‎总括记录的数量
MAX最大值 MIN最小值 var方差 STDEV规范绝对误差 FIMuranoST第二个值 LAST倒数值
六用Parameters声明成立参数查询 Parameters申明的语法:
PARAMETE奇骏Snamedatatype[,namedatatype[,…]]
个中name是参数的标识符,能够经过标识符援用参数.
Datatype表达参数的多寡类型.
使用时要把PARAMETELANDS证明置于其他别的语句从前. 例:
PARAMETEENCORES[Lowprice]Currency,[Beginningdate]datatime
SelectOrderID,OrderAmount FROMOrders WhereOrderAMount[lowprice]
ANDOrderDate=[Beginningdate] 七功用查询
所谓成效查询,实际上是一种操作查询,它能够对数据库进行高效高效的操作.它以筛选查询为目标,筛选出切合条件的数额,再对数码举行批管理.功效查询包含校正查询,删除查询,增多查询,和生成表查询.
七.1翻新查询
Update子句能够并且改动几个或四个表中的数据.它也能够同时改换多少个字段的值.
更新查询语法: Update表名 SET新值 Where法规例:英国客商的定货量增添5%,货物运输量扩大3% UpdateOEDE奇骏S
SETOrderAmount=OrderAmount*1.1 ,Freight=Freight*1.03
WhereShipCountry=‘UK’ 七.2刨除查询
Delete子句能够使顾客删除多量的不适合时机的或冗于的数据.
注:删除查询的对象是全方位记录. Delete子句的语法: Delete[表名.*]
FROM来源表 Where法则 例:要去除全体94年前的定单 Delete* FROMOrders
WhereOrderData#94-1-1# 七.3追加查询
Insert子句能够将二个或一组记录追加到三个或两个表的尾巴.
INTO子句内定选择新记录的表 valueS关键字钦命新记录所含有的数码值.
Insert子句的语法: INSETCR-VINTO指标表或询问(字段1,字段2,…卡塔尔国valueS(数值1,数值2,…State of Qatar 例:扩充八个顾客InsertINTOEmployees(FirstName,LastName,title卡塔尔valueS(‘Harry’,’华盛顿’,’Trainee’卡塔尔(قطر‎ 七.4生成表查询
能够二遍性地把全部满意条件的笔录拷贝到一张新表中.日常制作笔录的备份或别本或作为报表的底工.
SelectINTO子句用来创立生成表查询语法: Select字段1,字段2,…
INTO新表[IN外界数据库] FROM来源数据库 Where准绳例:为定单制作一个存档备份 Select* INTOOrdersArchive FROMOrders
八联合查询 UNION运算能够把四个查询的结果合併到七个结实集里展现.
UNION运算的相通语法: [表]查询1UNION[ALL]查询2UNION…
例:重返足球王国具有必要商和客商的名字和城市 SelectCompanyName,City
FROMSuppliers WhereCountry=‘Brazil’ UNION SelectCompanyName,City
FROMCustomers WhereCountry=‘Brazil’ 注:
缺省的图景下,UNION子句不回来重新的记录.假诺想显示全数记录,能够加ALL选项
UNION运算须求查询全部同等数量的字段.但是,字段数据类型不必雷同.
每三个询问参数中能够利用GROUPBY子句或HAVING子句举行分组.要想以钦赐的相继来彰显重回的数目,能够在末了叁个询问的尾巴使用OREERBY子句.
九交*查询
交*查询能够对数码进行总额,平均,计数或别的总和计算法的计量,这么些数量经过三种音信举办分组:贰个出示在表的左部,另一个呈现在表的顶端.
MicrosoftJetSQL用TRANSFROM语句创设交*表查询语法: TRANSFORMaggfunction
Select语句 GROUPBY子句 PIVOTpivot田野先生[IN(value1[,value2[,…]])]
Aggfounction指SQL会集函数, Select语句接收作为标题的的字段, GROUPBY分组
表明:
Pivot田野在询问结果集中创设列标题时用的字段或表明式,用可选的IN子句节制它的取值.
value代表成立列标题标长久值.
例:呈现在一九九八年里每一季度每一位职工所接的定单的数据:
TRANSFORMCount(OrderID卡塔尔(قطر‎ SelectFirstName&”&LastNameASFullName
FROMEmployeesINNETiguanJOINOrders ONEmployees.EmployeeID=Orders.EmployeeID
WhereDatePart(“yyyy”,OrderDate卡塔尔(قطر‎=‘壹玖玖捌’ GROUPBYFirstName&”&LastName
OENCOREDERBYFirstName&”&LastName POVOTDatePart(“q”,OrderDate卡塔尔&’季度’
十.子查询 子查询能够领略为套查询.子查询是二个Select语句.
十.1表明式的值与子查询再次回到的单纯值做比较 语法:
表明式comparision[ANY|ALL|SOME](子查询卡塔尔国 表达:
ANY和SOME谓词是同义词,与比较运算符(=,,,,=,=State of Qatar一同使用.再次回到贰个布尔值True或False.ANY的意趣是,表明式与子查询重回的一文山会海的值逐个相比,只要在那之中的二次比较发生True结果,ANY测量检验的归来True值(既Where子句的结果卡塔尔(قطر‎,对应于该表达式的当前记录将跻身主查询的结果中.ALL测量试验则需求表明式与子查询再次回到的一雨后春笋的值的可比都爆发True结果,才回重临True值.
例:主查询再次回到单价比其它一个折扣大于等于百分之四十的出品的单价要高的装有产品Select*FROMProducts WhereUnitPriceANY
(SelectUnitPriceFROM[OrderDetails]WhereDiscount0.25卡塔尔国十.2反省表明式的值是还是不是相称子查询重临的一组值的某部值 语法:
[NOT]IN(子查询卡塔尔国 例:重返仓库储存价值高于等于1000的付加物.
SelectProductNameFROMProducts WhereProductIDIN
(SelectPrdoctIDFROM[OrderDEtails] WhereUnitPrice*Quantity=1000State of Qatar十.2检查测量试验子查询是还是不是重返任何笔录 语法: [NOT]EXISTS(子查询卡塔尔例:用EXISTS检索英帝国的顾客 SelectComPanyName,ContactName FROMOrders
WhereEXISTS (Select* FROMCustomers WhereCountry=‘UK’AND
Customers.CustomerID=Orders.CustomerID)

重在是为着解决二个select语句,因为语法相比奇怪,没看懂,百度了有个别结果

1.导出整个数据库
mysqldump -u 客商名 -p –default-character-set=latin1 数据库名 >
导出的文件名(数据库暗中同意编码是latin1卡塔尔
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出三个表
mysqldump -u 顾客名 -p 数据库名 表名> 导出的文书名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出二个数据库布局
mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc
>d:wcnc_db.sql
-d 未有数据 –add-drop-table 在种种create语句在此之前扩大叁个drop table
4.导入数据库
A:常用source 命令
进去mysql数据库调节台,
如mysql -u root -p
mysql>use 数据库
然后采纳source命令,后边参数为脚本文件(如这里运用的.sqlState of Qatar
mysql>source wcnc_db.sql

    select的事物一定于一个不时表,as就给那有的时候表取个名字。

B:使用mysqldump命令


mysqldump -u username -p dbname < filename.sql

 

C:使用mysql命令

SELECT语句的完全语法

mysql -u username -p -D dbname < filename.sql

SELECT语句的协同身体语言法为: SELECT[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS
alias2][,…]]} FROM tableexpression[,…][IN externaldatabase]
[WHERE…] [GROUP BY……
SELECT语句的完好语法为:
SELECT[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS
alias2][,…]]}
FROM tableexpression[,…][IN externaldatabase]
[WHERE…]
[GROUP BY…]
[HAVING…]
[ORDER BY…]
[WITH OWNERACCESS OPTION]
说明:
用中括号([]卡塔尔(قطر‎括起来的有的代表是可选的,用大括号({}State of Qatar括起来的片段是象征必得从当中选用之中的几个。

一、运行与脱离
1、步入MySQL:运维MySQL Command Line
Client(MySQL的DOS分界面),直接输入安装时的密码就能够。那时候的唤醒符是:mysql>
2、退出MySQL:quit或exit
二、库操作
1、、成立数据库
指令:create database <数据库名>
譬喻:创设多个名称叫xhkdb的数据库
mysql> create database xhkdb;
2、展现全数的数据库
指令:show databases (注意:最终有个s)
mysql> show databases;
3、删除数据库
一声令下:drop database <数据库名>
诸如:删除名称为 xhkdb的数据库
mysql> drop database xhkdb;
4、连接数据库
指令: use <数据库名>
举例:借使xhkdb数据仓库储存在,尝试存取它:
mysql> use xhkdb;
荧屏提示:Database changed
5、查看当前使用的数据库
mysql> select database();

1 FROM子句

FROM子句钦赐了SELECT语句中字段的来源。FROM子句前边是带有二个或四个的表明式(由逗号分开卡塔尔国,此中的表明式可为单一表名称、已保存的询问或由
INNEENCORE JOIN、LEFT JOIN 或 KoleosIGHT JOIN
获得的复合结果。如若表或询问存款和储蓄在外表数据库,在IN
子句之后指明其完整路线。
例:下列SQL语句再次回到全数有定单的顾客:
SELECT OrderID,Customer.customerID
FROM Orders Customers
WHERE Orders.CustomerID=Customers.CustomeersID

6、当前数据库包罗的表新闻:
mysql> show tables; (注意:最终有个s)

2 ALL、DISTINCT、DISTINCTROW、TOP谓词

(1卡塔尔国 ALL
再次来到满足SQL语句条件的有所记录。若无指明这些谓词,暗中同意为ALL。
例:SELECT ALL FirstName,LastName
FROM Employees
(2State of Qatar DISTINCT 假使有两个记录的挑精拣肥字段的多寡一致,只回去叁个。
(3卡塔尔(قطر‎ DISTINCTROW 如若有双重的记录,只回去叁个
(4卡塔尔(قطر‎ TOP突显查询头尾若干记下。也可回到记录的比重,那是要用 TOP N
PERCENT子句(在那之中N 表示百分比)
例:重临5%定货额最大的定单
SELECT TOP 5 PERCENT*
FROM [ Order Details]
ORDER BY UnitPrice*Quantity*(1-Discount) DESC

三、表操作,操作早前应连接某些数据库
1、建表
命令:create table <表名> ( <字段名1> <类型1>
[,..<字段名n> <类型n>]);

3 用 AS 子句为字段取小名 

假定想为重返的列取叁个新的标题,恐怕,经过对字段的测算或总括之后,产生了一个新的值,希望把它内置四个新的列里呈现,则用AS保留。
例:再次回到FirstName字段取别称字为NickName
SELECT FirstName AS NickName ,LastName ,City
FROM Employees
例:再次回到新的一列展现仓库储存价值
SELECT ProductName ,UnitPrice ,UnitsInStock ,UnitPrice*UnitsInStock AS
valueInStock
FROM Products

二 .WHERE 子句钦命询问条件

1 比较运算符
正如运算符 含义
= 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
<> 不等于
!> 不大于
!< 不小于
例:再次回到96年十二月的定单
SELECT OrderID, CustomerID, OrderDate
FROM Orders
WHERE OrderDate>#1/1/96# AND OrderDate<#1/30/96#
注意:
Mcirosoft JET SQL
中,日期用‘#’定界。日期也得以用Datevalue(卡塔尔国函数来代替。在比较字符型的多寡时,要增加单引号’’,尾空格在比较中被忽视。
例:
WHERE OrderDate>#96-1-1#
也能够表示为:
WHERE OrderDate>Datevalue(‘1/1/96’)
利用 NOT 表明式求反。
例:查看96年11月1日从今以往的定单
WHERE Not OrderDate<=#1/1/96#
2 范围(BETWEEN 和 NOT BETWEEN)
BETWEEN …AND…运算符钦命了要搜求的一个闭区间。
例:重回96年十一月到96年1月的定单。
WHERE OrderDate Between #1/1/96# And #2/1/96#
3 列表(IN ,NOT IN)
IN
运算符用来相配列表中的别的贰个值。IN子句能够代替用O酷路泽子句连接的一体系的标准化。
例:要搜索住在 London、Paris或Berlin的装有客商
SELECT CustomerID, CompanyName, ContactName, City
FROM Customers
WHERE City In(‘London’,’ Paris’,’ Berlin’)

mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default ‘0’,
> degree double(16,2));
2、获取表布局
命令: desc 表名,或者show columns from 表名
mysql>DESCRIBE MyClass
mysql> desc MyClass;
mysql> show columns from MyClass;
3、删除表
命令:drop table <表名>
例如说:删除表名叫 MyClass 的表
mysql> drop table MyClass;
4、插入数据
命令:insert into <表名> [( <字段名1>[,..<字段名n >
])] values ( 值1 )[, ( 值n )]
诸如,往表 MyClass中插入二条记下,
那二条记下代表:编号为1的名字为汤姆的战表为96.45, 编号为2 的名称叫Joan
的成就为82.99,编号为3 的名称叫Wang 的大成为96.5.
mysql> insert into MyClass values(1,’Tom’,96.45),(2,’Joan’,82.99),
(2,’Wang’, 96.59);
5、查询表中的数据
1卡塔尔(قطر‎、查询全部行
命令: select <字段1,字段2,…> from < 表名 > where <
表达式 >
诸如:查看表 MyClass 中有所数据
mysql> select * from MyClass;
2)、查询前几行数据
例如:查看表 MyClass 中前2行数据
mysql> select * from MyClass order by id limit 0,2;

4 情势相配(LIKEState of Qatar

LIKE运算符核实二个蕴涵字符串数据的字段值是不是同盟一钦赐形式。
LIKE运算符里使用的通配符
通配符 含义
? 任何贰个十足的字符
* 任性长度的字符
# 0~9之间的单纯数字
[字符列表] 在字符列表里的任一值
[!字符列表] 不在字符列表里的任一值

  • 点名字符范围,两侧的值分别为其上下限
    例:重临寄邮资编在(171)555-0000到(171)555-9999里边的客户
    SELECT CustomerID ,CompanyName,City,Phone
    FROM Customers
    WHERE Phone Like ‘(171)555-####’
    LIKE运算符的一些体裁及意义
    样式 含义 不符合
    LIKE ‘A*’ A后跟大肆长度的字符 Bc,c255
    LIKE’5
    ’ 5*5 555
    LIKE’5?5’ 5与5中间有专断三个字符 55,5wer5
    LIKE’5##5’ 5235,5005 5kd5,5346
    LIKE’[a-z]’ a-z间的任性八个字符 5,%
    LIKE’[!0-9]’ 非0-9间的轻松一个字符 0,1
    LIKE’[[]’ 1,*
    三 .用OTiggoDE讴歌MDX BY子句排序结果
    OPAJERODEQashqai子句按一个或四个(最多14个)字段排序查询结果,能够是升序(ASC)也得以是降序(DESC),缺省是升序。OLacrosseDEGL450子句普通位于SQL语句的末梢。
    O中华VDE昂Cora子句中定义了七个字段,则依据字段的前后相继顺序排序。
    例:
    SELECT ProductName,UnitPrice, UnitInStock
    FROM Products
    ORDER BY UnitInStock DESC , UnitPrice DESC, ProductName
    OTiguanDEEvoque BY
    子句中能够用字段在采纳列表中的地点号代替字段名,能够混合字段名和地方号。
    例:下边包车型客车言辞发生与上列相像的效果与利益。
    SELECT ProductName,UnitPrice, UnitInStock
    FROM Products
    ORDER BY 1 DESC , 2 DESC,3
    四 .运用连接关系达成多表查询
    例:寻找同二个都会中经销商和顾客的名字
    SELECT Customers.CompanyName, Suppliers.ComPany.Name
    FROM Customers, Suppliers
    WHERE Customers.City=Suppliers.City
    例:搜索付加物仓库储存量大于同一种付加物的定单的多少的付加物和定单
    SELECT ProductName,OrderID, UnitInStock, Quantity
    FROM Products, [Order Deails]
    WHERE Product.productID=[Order Details].ProductID
    AND UnitsInStock>Quantity
    另一种办法是用 Microsof JET SQL 唯有的 JNNEENVISION JOIN
    语法:
    FROM table1 INNER JOIN table2
    ON table1.field1 comparision table2.field2
    此中comparision 就是前方WHERE子句用到的可比运算符。
    SELECT FirstName,lastName,OrderID,CustomerID,OrderDate
    FROM Employees
    INNER JOIN Orders ON Employees.EmployeeID=Orders.EmployeeID
    注意:
    INNE途乐 JOIN不能够三回九转Memo OLE Object Single Double 数据类型字段。
    在四个JOIN语句中连连多个ON子句
    语法:
    SELECT fields
    FROM table1 INNER JOIN table2
    ON table1.field1 compopr table2.field1 AND
    ON table1.field2 compopr table2.field2 OR
    ON table1.field3 compopr table2.field3
    也可以
    SELECT fields
    FROM table1 INNER JOIN
    (table2 INNER JOIN [( ]table3
    [INNER JOER] [( ]tablex[INNER JOIN]
    ON table1.field1 compopr table2.field1
    ON table1.field2 compopr table2.field2
    ON table1.field3 compopr table2.field3
    外界连接重返越多记录,在结果中保留不相称的记录,不管存不设有满足条件的笔录都要回到另一侧的具备记录。
    FROM table [LEFT|RIGHT]JOIN table2
    ON table1.field1comparision table.field2
    用左连接来建构外部连接,在表明式的右臂的表会展现其具有的数量
    例:不管有未有定货量,再次回到全体商品
    SELECT ProductName ,OrderID
    FROM Products
    LEFT JOIN Orders ON Products.PrductsID=Orders.ProductID
    右连接与左连接的差别在于:不管右边表里有未有拾贰分的记录,它都从侧边表中重返全数记录。
    例:假使想询问顾客的音信,并总结每个地区的顾客布满,那时候能够用一个右连接,纵然有个别地点没有顾客,也要赶回想客音讯。
    空值不会互般合营,能够经过外接连技能测量试验被连接的某部表的字段是还是不是有空值。
    SELECT *
    FROM talbe1
    LEFT JOIN table2 ON table1.a=table2.c
    1 连接查询中使用Iif函数实现以0值突显空值
    Iif表达式: Iif(IsNull(Amount,0,Amout)
    例:无论定货大于或低于¥50,都要赶回二个申明。
    Iif([Amount]>50,?Big order?,?Small order?)

或者:

五. 分组和小结查询结果

在SQL的语法里,GROUP BY和HAVING子句用来对数码实行汇总。GROUP
BY子句指明了如约哪多少个字段来分组,而将记录分组后,用HAVING子句过滤那么些记录。
GROUP BY 子句的语法
SELECT fidldlist
FROM table
WHERE criteria
[GROUP BY groupfieldlist [HAVING groupcriteria]]
注:Microsoft Jet数据库 Jet 不能够对备注或OLE对象字段分组。
GROUP BY字段中的Null值以备分组不过不能够被总结。
在此外SQL合计函数中不总结Null值。
GROUP BY子句后最多能够满含十三个字段,排序优先级按从左到右的顺序排列。
例:在‘WA’地区的雇员表中按头衔分组后,搜索装有同等头衔的雇员数目大于1人的具有头衔。
SELECT Title ,Count(Title) as Total
FROM Employees
WHERE Region = ‘WA’
GROUP BY Title
HAVING Count(Title)>1
JET SQL 中的集合函数
聚焦函数 意义
SUM ( ) 求和
AVG ( ) 平均值
COUNT ( 卡塔尔 表达式中著录的数目
COUNT (* 卡塔尔国 计算记录的多寡
MAX 最大值
MIN 最小值
VAR 方差
STDEV 规范抽样误差
FI本田CR-VST 第三个值
LAST 最终一个值

mysql> select * from MyClass limit 0,2;
6、删除表中数据
命令:delete from 表名 where 表达式
比方:删除表 MyClass中编号为1 的记录
mysql> delete from MyClass where id=1;
7、改过表中多少:update 表名 set 字段=新值,… where 条件
mysql> update MyClass set name=’Mary’ where id=1;
7、在表中增加字段:

六. 用Parameters阐明创设参数查询

Parameters评释的语法:
PARAMETERS name datatype[,name datatype[, …]]
个中name 是参数的标识符,能够透过标识符引用参数.
Datatype表明参数的数据类型.
动用时要把PARAMETE讴歌ZDXS 注脚置于别的别的语句早前.
例:
PARAMETERS[Low price] Currency,[Beginning date]datatime
SELECT OrderID ,OrderAmount
FROM Orders
WHERE OrderAMount>[low price]
AND OrderDate>=[Beginning date]

命令:alter table 表名 add字段 类型 其他;
比如:在表MyClass中增添了三个字段passtest,类型为int(4卡塔尔国,私下认可值为0
mysql> alter table MyClass add passtest int(4) default ‘0’
8、改善表名:
命令:rename table 原表名 to 新表名;
比方说:在表MyClass名字改成为YouClass
mysql> rename table MyClass to YouClass;

七. 作用查询

所谓效能查询,实际上是一种操作查询,它能够对数据库进行急迅便捷的操作.它以选拔查询为目标,筛选出切合条件的多少,再对数据开展批管理.功效查询包涵立异查询,删除查询,加多查询,和生成表查询.
1 更新查询
UPDATE子句能够相同的时候改良一个或几个表中的数据.它也足以相同的时候改变多少个字段的值.
改进查询语法:
UPDATE 表名
SET 新值
WHERE 准则
例:英国客户的定货量扩张5%,货物运输量扩充3%
UPDATE OEDERS
SET OrderAmount = OrderAmount *1.1
Freight = Freight*1.03
WHERE ShipCountry = ‘UK’
2 删除查询
DELETE子句能够使顾客删除多量的老式的或冗于的数据.
注:删除查询的对象是全方位记录.
DELETE子句的语法:
DELETE [表名.*]
FROM 来源表
WHERE 准则
例: 要删除全部94年前的定单
DELETE *
FROM Orders
WHERE OrderData<#94-1-1#
3 追加查询
INSERT子句能够将一个或一组记录追加到三个或八个表的尾巴部分.
INTO 子句内定选择新记录的表
valueS 关键字钦命新记录所富含的数量值.
INSERT 子句的语法:
INSETCR-V INTO 指标表或询问(字段1,字段2,…卡塔尔(قطر‎
valueS(数值1,数值2,…)
例:扩张多少个顾客
INSERT INTO Employees(FirstName,LastName,title)
valueS(‘Harry’,’Washington’,’Trainee’)
4 生成表查询
能够一次性地把持有满意条件的记录拷贝到一张新表中.日常制作笔录的备份或别本或充作报表的底工.
SELECT INTO子句用来创制生成表查询语法:
SELECT 字段1,字段2,…
INTO 新表[IN 外界数据库]
FROM 来源数据库
WHERE 准则
例:为定单制作贰个存档备份
SELECT *
INTO OrdersArchive
FROM Orders

更新字段内容
update 表名 set 字段名 = 新内容
update 表名 set 字段名 = replace(字段名,’旧内容’,’新内容’);

八. 联合查询

UNION运算能够把两个查询的结果归并到三个结出集里展现.
UNION运算的雷同语法:
[表]查询1 UNION [ALL]查询2 UNION …
例:再次回到巴西联邦共和国颇负供给商和客户的名字和都市
SELECT CompanyName,City
FROM Suppliers
WHERE Country = ‘Brazil’
UNION
SELECT CompanyName,City
FROM Customers
WHERE Country = ‘Brazil’
注:
缺省的动静下,UNION子句不回去重新的记录.假使想体现全部记录,可以加ALL选项
UNION运算须要查询全体相似数量的字段.不过,字段数据类型不必相似.
每二个查询参数中能够使用GROUP BY 子句 或 HAVING
子句举办分组.要想以钦命的次第来呈现再次来到的数目,能够在最后二个询问的尾巴部分使用OREER
BY子句.

小说前面参与4个空格
update article set content=concat(‘  ’,content);

九. 交叉查询

时断时续查询能够对数据举办总额,平均,计数或其余总和总计法的精兵简政,这一个多少经过二种新闻实行分组:壹人展览馆示在表的左部,另三个出示在表的顶端.
Microsoft Jet SQL 用TRANSFROM语句创立交叉表查询语法:
TRANSFORM aggfunction
SELECT 语句
GROUP BY 子句
PIVOT pivotfield[IN(value1 [,value2[,…]]) ]
Aggfounction指SQL集合函数,
SELECT语句选择作为题指标的字段,
GROUP BY 分组
说明:
Pivotfield在查询结果集中创制列标题时用的字段或表达式,用可选的IN子句限定它的取值.
value代表创制列标题标一直值.
例:展现在1998年里每一季度每个人职工所接的定单的多寡:
TRANSFORM Count(OrderID)
SELECT FirstName&’’&LastName AS FullName
FROM Employees INNER JOIN Orders
ON Employees.EmployeeID = Orders.EmployeeID
WHERE DatePart(“yyyy”,OrderDate)= ‘1996’
GROUP BY FirstName&’’&LastName
ORDER BY FirstName&’’&LastName
POVOT DatePart(“q”,OrderDate)&’季度’

字段类型
1.INT[(M)] 型: 寻常尺寸整数类型
2.DOUBLE[(M,D)] [ZEROFILL] 型: 平常尺寸(双娇小State of Qatar浮点数字类型
3.DATE
日期类型:援救的界定是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式来呈现DATE值,但是允许你选取字符串或数字把值赋给DATE列
4.CHA宝马7系(M)型:定长字符串类型,当存储时,总是是用空格填满侧边到内定的长短
5.BLOB TEXT类型,最大尺寸为65535(2^16-1卡塔尔(قطر‎个字符。
6.VARCHA途达型:变长字符串类型

十 .子查询

子查询能够领略为 套查询.子查询是叁个SELECT语句.
1 表明式的值与子查询重回的纯净值做相比
语法:
表达式 comparision [ANY|ALL|SOME](子查询)
说明:
ANY和SOME谓词是同义词,与比较运算符(=,<,>,<>,<=,>=State of Qatar一同使用.重临三个布尔值True或False.ANY的情趣是,表达式与子查询重返的一三种的值逐条相比,只要在这之中的二次比较发生True结果,ANY测量试验的回来
True值(既WHERE子句的结果卡塔尔,对应于该表明式的此时此刻记下将跻身主查询的结果中.ALL测量试验则须要表明式与子查询再次来到的一体系的值的可比都爆发True结果,才回再次回到True值.
例:主查询重回单价比任何一个倒扣大于等于三分之一的成品的单价要高的具备成品
SELECT * FROM Products
WHERE UnitPrice>ANY
(SELECT UnitPrice FROM[Order Details] WHERE Discount>0.25)

2 检查表明式的值是还是不是匹配子查询再次来到的一组值的某部值
语法:
[NOT]IN(子查询)
例:重返库存价值大于等于1000的产物.
SELECT ProductName FROM Products
WHERE ProductID IN
(SELECT PrdoctID FROM [Order DEtails]
WHERE UnitPrice*Quantity>= 1000)

3检验子查询是或不是再次来到任何笔录
语法:
[NOT]EXISTS (子查询)
例:用EXISTS检索United Kingdom的客户
SELECT ComPanyName,ContactName
FROM Orders
WHERE EXISTS
(SELECT *
FROM Customers
WHERE Country = ‘UK’ AND
Customers.CustomerID= Orders.CustomerID)

5.导入数据库表
   (1)创建.sql文件
   (2)头阵生贰个库如auction.c:mysqlbin>mysqladmin -u root -p
creat auction,会提示输入密码,然后成功创办。
   (2)导入auction.sql文件
   c:mysqlbin>mysql -u root -p auction < auction.sql。
  
通过上述操作,就能够创制了一个数码库auction以致中间的贰个表auction。
   6.改进数据库
   (1)在mysql的表中扩充字段:
   alter table dbname add column userid int(11) not null primary key
auto_increment;
   那样,就在表dbname中增添了三个字段userid,类型为int(11卡塔尔(قطر‎。
   7.mysql数据库的授权
   mysql>grant select,insert,delete,create,drop
   on *.* (或test.*/user.*/..)
   to 用户名@localhost
   identified by ‘密码’;
   如:新建八个客户帐号以便能够访问数据库,须求展开如下操作:
   mysql> grant usage
   -> ON test.*
   -> TO
[email protected];
   Query OK, 0 rows affected (0.15 sec)
  
从此就创造了七个新客商叫:testuser,那一个客商只好从localhost连接到数据库并得以络绎不绝到test
数据库。下一步,大家必得钦赐testuser那些客户能够施行什么样操作:
   mysql> GRANT select, insert, delete,update
   -> ON test.*
   -> TO
[email protected];
   Query OK, 0 rows affected (0.00 sec)
  
此操作使testuser可以在每一个test数据库中的表实行SELECT,INSERT和DELETE以致UPDATE查询操作。以往大家结束操作并退出MySQL顾客程序:
   mysql> exit
   Bye9!

1:使用SHOW语句搜索在服务器上脚下设有何样数据库:
mysql> SHOW DATABASES;
2:2、创设一个数据库MYSQLDATA
mysql> Create DATABASE MYSQLDATA;
3:选用你所创立的数据库
mysql> USE MYSQLDATA; (按回车键现身Database changed
时表达操作成功!卡塔尔(قطر‎
4:查看未来的数据库中设有何样表
mysql> SHOW TABLES;
5:创设一个数码库表
mysql> Create TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:显示表的构造:
mysql> DESCRIBE MYTABLE;
7:往表中步向记录
mysql> insert into MYTABLE values (“hyq”,”M”);
8:用文件方式将数据装入数据库表中(比方D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;
9:导入.sql文件命令(比方D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:删除表
mysql>drop TABLE MYTABLE;
11:清空表
mysql>delete from MYTABLE;
12:更新表中数据
mysql>update MYTABLE set sex=”f” where name=’hyq’;

以下是无心中在互连网看见的运用MySql的田间管理资历,
摘自:

在windows中MySql以服务形式存在,在利用前应保障此服务一度运维,未运行可用net
start mysql命令运转。而Linux中运行时可用“/etc/rc.d/init.d/mysqld
start”命令,注意运转者应持有管理员权限。
刚安装好的MySql满含贰个含空密码的root帐户和一个无名氏帐户,那是十分的大的安全祸患,对于一些至关心注重要的运用我们应将安全性尽恐怕提升,在那间应把佚名帐户删除、
root帐户设置密码,可用如下命令实行:
use mysql;
delete from User where User=””;
update User set Password=PASSWORD(‘newpassword’) where User=’root’;
要是要对客商所用的记名终端进行界定,能够更新User表中相应顾客的Host字段,在开展了以上改进后应重新开动数据库服务,那时登陆时可用如下相同命令:
mysql -uroot -p;
mysql -uroot -pnewpassword;
mysql mydb -uroot -p;
mysql mydb -uroot -pnewpassword;
地方命令参数是常用参数的一局地,详细情状可参看文书档案。此处的mydb是要登入的数据库的名目。
在开展支付和骨子里运用中,客商不该只用root客商展开一而再再而三数据库,尽管选拔root客户展开测量试验时很有利,但会给系统带给主要安全隐患,也不低价管理技能的滋长。大家给一个利用中利用的客商付与最合适的数据库权限。如叁个只进行数量插入的客户不应付与其删除数据的权杖。MySql的用户管理是经过
User表来实现的,增多新客商常用的措施有八个,一是在User表插入相应的多寡行,同不平日候安装相应的权能;二是通过GRANT命令创制具备某种权力的客户。个中GRANT的常用用法如下:
grant all on mydb.* to
[email protected]
identified by “password” ;
grant usage on *.* to
[email protected]
identified by “password”;
grant select,insert,update on mydb.* to
[email protected]
identified by “password”;
grant update,delete on mydb.TestTable to
[email protected]
identified by “password”;
若要给此顾客给与他在对应对象上的权柄的田间管理技巧,可在GRANT前面增加WITH
GRANT OPTION选项。而对此用插入User表增添的顾客,Password字段应用PASSWO奥迪Q7D
函数进行翻新加密,防止不轨之人窃看密码。对于那多少个早就毫无的客商应给与解除,权限过界的客户应及时回收权限,回笼权限能够经过更新User表相应字段,也足以利用REVOKE操作。
上边给出本身从任何素材(www.cn-java.com卡塔尔(قطر‎得到的对常用权力的分解:
全局管理权限:
FILE: 在MySQL服务器上读写文件。
PROCESS: 展现或杀死归于其余顾客的服务线程。
RELOAD: 重载访问调控表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
数据库/数据表/数据列权限:
Alter: 改过已存在的数据表(比方增添/删除列卡塔尔和目录。
Create: 建构新的数据库或数据表。
Delete: 删除表的记录。
Drop: 删除数据表或数据库。
INDEX: 创立或删除索引。
Insert: 扩大表的记录。
Select: 展现/搜索表的笔录。
Update: 修改表中已存在的笔录。
专程的权柄:
ALL: 允许做此外交事务(和root同样卡塔尔。
USAGE: 只同意登陆–此外什么也不容许做。


MYSQL常用命令
有为数不稀有相恋的人即便设置好了mysql但却不知如何使用它。在此篇小说中大家就从一连MYSQL、改过密码、扩张顾客等地点来上学有个别MYSQL的常用命令。
  有一数不胜数有相爱的人即便设置好了mysql但却不知怎样行使它。在这里篇文章中大家就从接二连三MYSQL、校正密码、扩张顾客等地点来读书有个别MYSQL的常用命令。
 

  一、连接MYSQL 

  格式: mysql -h主机地址 -u顾客名 -p顾客密码   

  1、例1:连接到本机上的MYSQL

  首先在张开DOS窗口,然后踏入目录 mysqlbin,再键入命令mysql -uroot
-p,回车的后边提示您输密码,借使刚安装好MYSQL,一级顾客root是未有密码的,故间接回车就能够步入到MYSQL中了,MYSQL的唤醒符是:mysql>
  

  2、例2:连接到长途主机上的MYSQL

  就算远程主机的IP为:110.110.110.110,客户名字为root,密码为abcd123。则键入以下命令: