常用SQL语句

1.查询
  1.1全表查询
格式:select  *  from 表名
例如:SELECT * from tm_atms_supplier 
1.2 查询某个字段
格式:select  字段名  from 表名
例如:SELECT  supplier_id  from tm_atms_supplier 
 1.3按某个字段排序查询
格式:select  *  from 表名  ORDER BY 字段 desc/asc(倒序/正序)(默认正序)
例如:select * from tm_atms_supplier  ORDER BY modify_time desc;
例如:select * from tm_atms_supplier  ORDER BY supplier_id ;
 1.4 单个条件查询
格式:select  *  from 表名 where 字段名=’条件’
例如:select * from tm_atms_supplier  where   dept_code=‘755R‘;
 1.5 多个条件查询
格式:select  *  from 表名 where 字段1=’条件1’ and  字段2=’条件2’(and:并且的关系,满足两个条件才能查出来)
例如:select * from tm_atms_supplier  where   dept_code=‘755R‘  and  supplier_name=’汕头航空有限公司’;
格式:select  *  from 表名 where 字段1=’条件1’ or  字段2=’条件2’(or:或的关系,满足其中一个条件,就可以查出来)
例如:select * from tm_atms_supplier  where   dept_code=‘755R‘  and  supplier_name=’汕头航空有限公司’;

 1.6 模糊匹配
格式:select  *  from 表名 where 字段1like ’%条件1%’ 
例如:SELECT * from  tm_atms_supplier where supplier_name like ‘%梁巧星%‘ 查询出供应商名称中包含“梁巧星“所有信息)
 1.7分组查询
 格式: select  字段名  from 表名  GROUP BY 字段名 HAVING条件
     例如:select dept_code,supplier_name from tm_atms_supplier GROUP BY supplier_name ,dept_code HAVING  supplier_name like ‘%梁巧星%‘ (根据供应商名称和网点分组,查询出供应商名称中包含“梁巧星”的供应商名称和网点数据)
。
1.8查询结果过滤了重复内容
  格式: select  DISTINCT  字段名  from 表名 where 字段名=’条件’
      例如:SELECT  DISTINCT supplier_name  from  tm_atms_supplier where supplier_name like ‘%梁巧星%‘(统计出供应商名称中包含“梁巧星”的所有供应商名称,重复的名称不显示)
1.9统计查询结果的条数
格式: select  count(*) from 表名 where 字段名=’条件’
例如:SELECT  count(*)  from  tm_atms_supplier where supplier_name like ‘%梁巧星%‘ (统计出供应商名称中包含“梁巧星”的所有供应商数量)
例如:select DISTINCT supplier_code, count(*) as count  from tm_atms_supplier GROUP BY supplier_name ,dept_code HAVING count >1(根据供应商名称和网点分组,统计出条数大于1的供应商编码和条数)
1.1连接查询
  格式: select  * from 表A,表B where  A.字段名=B.字段名(两表连接的条件)) and 条件
例如:SELECT  b.supplier_code,b.supplier_name ,a.dept_code from tm_atms_supplier_info a,tm_atms_supplier b where a.supplier_id is  not null and a.pm_code is  null and a.supplier_id=b.supplier_id and b.dept_code<>‘001‘ and a.pm_code not like ‘%ACP%‘;
1.11连接查询-左连接:左边有,右边没有的也查询出来
   格式: select  * from 表A left 表B  on A.字段名=B.字段名 where 条件
SELECT b.announcement_number,b.count(%) as count from tt_atms_supplier_tender_announcement a LEFT tt_atms_route_bidding_info b JOIN  on a.announcement_number= b.announcement_number where  a.state=‘1‘ GROUP BY announcement_number  HAVING count>30;

1.12连接查询-右连接:右边有,左边没有的也查询出来
   格式: select  * from 表A right 表B  on A.字段名=B.字段名 where 条件
SELECT b.announcement_number,b.count(%) as count from tt_atms_supplier_tender_announcement a right tt_atms_route_bidding_info b JOIN  on a.announcement_number= b.announcement_number where  a.state=‘1‘ GROUP BY announcement_number  HAVING count>30;


2.删除(不要随便用)
2.1在不删表的情况下删除所有行数据 
  格式:delete   from 表名  或者delete  *   from 表名 或者  TRUNCATE  table 表名
 
  例如:delete  from  A;
TRUNCATE  table  B; 

2.2删除某一条件下的数据
  格式:delete   from 表名 where 字段=条件
  例如:delete  from  A  where  id =1

3.新增
3.1插入数据
  格式: INSERT INTO 表名 (字段名)  VALUES  (字段值)(PS:字段名和字段值要一一对应)
  例如:INSERT INTO `acps`.`ts_acps_user` (`USER_ID`, `USER_CODE`, `TELEPHONE`, `EMAIL`, `NICKNAME`, `NAME`, `USER_TYPE`, `PASSWORD`, `PWD_MODIFY_TM`, `VALID_FLAG`, `REMARK`, `CREATOR`, `CREATED_TM`, `MODIFIER`, `MODIFIED_TM`) VALUES (‘2058‘, ‘ACP202008220037‘, ‘DEEQAVToSHe6r2f6WiGCEdj6apav4%3D‘, ‘DEGAC1TrM5tvEVROBzwLF%2FS%2Fr9F%2FWbSrsI%2BPWPfyqdE99Ng6DC‘, ‘中运达-北京‘, ‘王鹏浩‘, ‘1‘, NULL, NULL, ‘1‘, NULL, ‘ADMIN‘, ‘2020-08-22 13:18:04‘, ‘ADMIN‘, ‘2020-08-22 13:18:04‘);


4.修改
4.1 修改表数据
  格式:  UPDATE  表名  set  字段名=‘内容’where  条件
 例如:UPDATE ts_acps_thr_data_auth  set pm_code=‘ACP202008020005‘ WHERE  pm_CODE=‘SP2017101200264‘

5.创建表:
格式:CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)

例如:参考测试库的表结构数据

6.备份表数据:
格式:create table A1 like  A (创建一个和A一样的表A1)
Insert into A1 select * from  A (把A的数据插入到A1中)
例如:
create table ts_acps_thr_data_auth_0821 like  ts_acps_thr_data_auth;
insert into ts_acps_thr_data_auth_0821select * from ts_acps_thr_data_auth;


7.删除表(表结构+表数据一起删)
 格式:drop table 表名
 例如:drop table A

 

常用SQL语句

上一篇:Oracle 日期格式记录


下一篇:7种SQL走索引or不走索引的优化,你竟然还不了解?