SQL语句(一)
PyxYuYu opened this issue · 0 comments
PyxYuYu commented
If you do what you love, you'll never work a day in your life.
0x01 SQL
SQL
语句对大小写不敏感- 查询
select * from 表名
- 查询表中所有(列)数据
select distinct 列名 from 表名
- 查询列中所有数据,返回唯一不同的值(去除重复值)
select 列名 from 表名 where 列 运算符 值
- 运算符:
= 、<> 、> 、< 、>= 、<= 、between 、like
<>
在某些版本的SQL
中,也可以写成!=
- 例如:
select * from Persons where FirstName='aa'
SQL
使用单引号包裹文本值(大部分数据库系统也可用双引号),如果是数值,不使用引号and
和or
运算符用于基于一个以上条件对数据进行过滤- 在
where
子语句中把两个或多个条件结合起来
- 在
- 运算符:
select 列名 from 表名 order by 列名
order by
语句用于根据指定的列对结果集进行排序,默认按照升序对数据进行排序(asc
升序关键字),如果需要按照降序进行排序,可以使用desc
关键字
- 分页查询
select top number|percent 列名 from 表名
(适用于MsSQL
)- 表中返回的规定数目的数据,用
top
规定返回的数据的数目 select top 每页显示的条数 * from 表名 where id not in (select top (当前页-1)*每页显示条数 id from 表名)
- 每页要显示的条数,条件 id 不在(先查询出上一页的 id)
MsSQL
支持top
子句,MySQL
和Oracle
不支持,相同功能的语句如下MySQL
select 列名 from 表名 limit number
Oracle
select 列名 from 表名 where rownum <= number
//分页显示 select * from (select A.*, rownum RN from (select * from B) A where rownum <= curpage*pagesize) where RN >= (curpage-1)*pagesize+1
- 表中返回的规定数目的数据,用
- 模糊查询
select 列名 from 表名 where 列名 like '%值%'
like
操作符用于在where
子句中搜索列中的指定模式,上面就是搜索字符中包含一个"值"的数据,不管是在什么位置- 通配符,替代字符的符号,类似正则
%
,替代一个或多个字符_
,仅替代一个字符[charlist]
,字符列中的任何单一字符[^charlist]
或[!charlist]
,不在字符列中的任何单一字符
- 通过使用
not
关键字,可以选取不包含指定模式的数据
- `select 列名 from 表名 where 列名 in ('值1', '值2', ......)
in
操作符允许我们在where
子句中规定多个值,即符合in
中条件的数据都被查询出来
select 列名 from 表名 between '值1' and '值2'
between...and...
会选取两个值之间的数据,这些值可以是数值、文本或日期,可以结合not
关键字显示范围之外的数据- 不同数据库对
between...and...
操作符的处理方式不同,有的介于之间不包括两者,有的包括,有的包括之前的
select 列名 from 表名 as 别名
- 为表名称指定别名
select 列名 as 别名 from 表名
- 为列名指定别名
- 添加
insert into 表名 values ('值1', '值2', ......)
- 向表中插入新的一行
insert into 表名 (列1, 列2, ......) values ('值1', '值2', ......)
- 向表中指定列插入数据
alter table 表名 add 列名 类型
- 向表中插入新的一列
- 修改
update 表名 set 列名 = 新值, 列名 = 新值 where 列名 = 某值
- 更新某一行中的列值,可以修改多个列值,不加
where
,修改全部
- 更新某一行中的列值,可以修改多个列值,不加
alter table 表名 alter clolumn 列名 属性
- 修改表中列的属性
- 删除
delete from 表名 where 列名 = 值
- 删除表中的行,不加
where
,删除所有行,不会删除表,意味着表的结构、属性、索引都是完整的
- 删除表中的行,不加
drop database 库名
- 删除数据库
drop table 表名
- 删除表
truncate table 表名
- 删除表格中的数据
truncate / delete / drop
区别truncate
:删除内容、释放空间,不删除定义delete
:删除内容,不释放控件,不删除定义drop
:删除内容,删除控件,删除定义