博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL 必知必会
阅读量:5846 次
发布时间:2019-06-18

本文共 2060 字,大约阅读时间需要 6 分钟。

 

主键(primary key)

  唯一标识表中每行的这个行称为主键。主键列中的值不允许修改或更新。

SQL:

  Structured Query Language,结构化查询语言。

  不区分大小写。为了便于阅读,SQL关键字大写,对所有列和表名小写。

  忽略空格,所以SQL可以分成很多行。

SELECT

  检索数据

SELECT prod_id, prod_name, prod_priceFROM Products;--使用SELECT语句从表Products中选择数据,指定了3个列名,列名之间用逗号分隔。

输出:

prod_id    prod_name        prod_price----------------------------------------------------    BNBG01     Fish bean bag toy   3.4900 ...

FROM 关键字指出从其中检索数据的表名。

 

排序检索数据

子句(clause)通常由一个关键字和数据组成。

ORDER BY

顺序:应保证是SELECT语句中最后一条子句。

多个列排序:

先按其中两个列对结果进行排序,先价格,后名称。

SELECT prod_id, prod_price, prod_nameFROM ProductsORDER BY prod_price, prod_name;

按列位置排序:

SELECT prod_id, prod_price, prod_nameFROM ProductsORDER BY 2,3;

降序排列:

ORDER BY prod_price DESC, prod_name;

升序是默认的。

 

过滤数据

WHERE

SELECT prod_name, prod_priceFROM ProductsWHERE prod_price = 3.49;

BETWEEN AND 组合

高级数据过滤

WHERE  a OR b AND c

有计算次序,a 或者 b+c

AND 比 OR 的计算次序优先级高。

 

IN

SELECT prod_name, prod_priceFROM ProductsWHERE vend_id IN ('DLL01', 'BRS01')ORDER BY prod_name;

IN 较OR的好处,直观,执行快,可以包含(SELECT语句)

not

WHERE NOT

MySQL 中的NOT没有这种用法。

 

用通配符进行过滤

  通配符(wildcard)、搜索模式(search pattern)

谓词:LIKE

SELECT prod_id, prod_nameFROM Products WHERE prod_name LIKE 'Fish%';

接受Fish 后的任意字符

搜索是区分大小写的 'fish%' 与Fish 将不匹配

下划线 (_) 通配符

类似填空题。。。 _ 总是匹配一个字符

方括号 ([] )通配符

  [] 用来指定一个字符集

SELECT cust_contactFROM CustomersWHERE cust_contact LIKE '[JM]%'ORDER BY cust_contact;

输出:

cust_contact----------------Jim JonesJohn SmithMichelle Green

[JM],单个字符,意为开头为J或M

[^JM],否定的意思

 

创建计算字段

  字段(field),基本上等于列(column),用在计算字段的连接上。

  

  拼接(concatenate),将值联结到一起构成单个值。

  Access、SQL Server、Sybase 使用+号

  DB2、Oracle、PostagreSQL、Sybase 使用||号

SELECT vend_name + '(' + vend_country + ')'FROM VendorsORDER BY vend_name;---------------------------Bear Emporium         (USA  )

MySQL 中的拼接,不支持 + 或 || 的拼接,它使用CONCAT() 函数。

 

RTRIM(),格式化数据,去掉值右边的空格。

LTRIM(),去掉左边的空格

TRIM(), 去掉两边的空格

  SELECT RTTIM(vend_name) + '(' + RTRIM(vend_country) + ')'

  ...

 

AS,使用别名

例如:

SELECT RTRIM(vend_name) + '(' + RTRIM(vend_country)+')' AS vend_title

...

意为将 vend_name替换为vend_title

 

转载于:https://www.cnblogs.com/IDRI/p/5791403.html

你可能感兴趣的文章
LVS+keepalived负载均衡
查看>>
YII分页显示数据
查看>>
Android下获取状态栏的高度
查看>>
Start Developing iOS Apps Today系列(六)
查看>>
UITableview中cell重用引起的内容重复的问题
查看>>
stm32 ADC使用 单通道 多通道
查看>>
Windows服务器配置与管理
查看>>
UVA 10003 Cutting Sticks
查看>>
DRP项目总结
查看>>
图的连通性——无向图的连通分量和生成树
查看>>
Linux安装更新JDK
查看>>
VM10.0上创建Windows server 2008 SP2,并且,安装loadrunner11
查看>>
抽象工厂
查看>>
linux下高可用mysql
查看>>
(15)Reactor 3 Operators——响应式Spring的道法术器
查看>>
r710 网卡驱动升级灰常蛋疼,现在在祈祷
查看>>
Microsoft Internet Explorer 数字错误漏洞
查看>>
添加 修改 删除
查看>>
RabbitMQ的远程Web管理与监控工具
查看>>
Linux术语全称
查看>>