SQL语句
sql基本概念
- structured query language,结构化查询语言
- 是一种在数据库管理系统中,查改数据库中数据的语言
- 不同数据库管理系统的sql语句略有不同
sql语言的特点
- 综合统一
- 高度非过程化
- 面向集合
- 一种语法结构,提供两种使用方式(自含式&嵌入式
- 简单易学
基本语法
数据类型
数据类型 | 解释 |
---|---|
char | 字符串 |
varchar | 边长字符串 |
clob | 字符串大对象 |
blob | 二进制大对象 |
int | 整型 |
smallint | 短整数 |
bigint | 大整数 |
检索数据 select
-
检索单个列
select <column name> from <table name>
-
检索多个列
select <column name1>, <column name2> from <table name>
-
检索所有列
select * from <table name>
- 一般,除非真的需要用到表中的所有列,但是最好避免使用,因为检索不需要的列,通常会降低检索和应用程序的性能
-
去掉重复值
select distinct <column name1> from <table name>
distinct
应用于所有列,不能部分使用
-
限制结果行数
select distinct <column name1> from <table name> limit <num>
select distinct <column name1> from <table name> limit <begin row index>, <row nums>
- 检索出的第一行序号是0,所以,
limit 1, 1
将检索出第二行 - 当行数不够时,mysql只返回能返回的行数
- 检索出的第一行序号是0,所以,
-
排序检索结果
select distinct <column name1> from <table name> order by <column name> asc
select distinct <column name1> from <table name> order by <column name> desc
- asc:升序排序
- desc:降序排序
- 可以使用,不在select语句中出现的属性列作为排序列
-
按多个列排序
select distinct <column name1> from <table name> order by <column name1> desc, <column name2> asc
- 对于每种属性排序,升序和降序可以单独设置
-
过滤数据
- where 子句
select distinct <column name1> from <table name> where <condition> order by <column name>
- 数据如果在应用层过滤,会影响客户机应用处理数据库的工作影响性能,同时使服务器不得不通过网络发送多余的数据,浪费网络带宽
- 同时使用
where
和order by
时,where
在前,order by
在后 where
子句操作符操作符 说明 = 等于 <> 不等于 != 不等于 < 小于 <= 小于等于 > 大于 >= 大于等于 betwenn and 指定两个值之间 is null 是空值 where
子句组合- and
- or
- in
- not
- 通配符
like
%
代表任意字符出现任意次数_
任意字符出现一次
- 正则表达式
- where 子句