都是当年我学sql时候记录的笔记
主键:具有唯一性,自动加索引(index),且不能为空索引:加快查询速度
varchar-字符串
int-整数型查看当前主键及更改自增主键
(t_risk_item_rule表名,item_rule_id自增主键字段名)
--查看序列号
select nextval('t_risk_item_rule_item_rule_id_seq');
--修改序列号
select setval('t_risk_item_rule_item_rule_id_seq', 1111);
常规查询:
select * from t_user
丨 丨 丨
查询 字段(*代表查询所有数据)表名模糊查询:
select * from t_user where user_name like '高%'
| 丨 丨 丨
| 字段名 像 模糊查姓高的人(%放置位置决定模糊查询的方式,例:user_name like‘%王%’,该句查名字中间有王字的人)
计数:count
select count (*) from t_user
| 丨 丨
| 计数 字段分组:group by
select count(*),iMonth from wx_hr_salary where cPsn_Name like '高%' group by iMonth
| 丨 丨 丨
| 字段名 (%代表通配符,任意值) 分组求和:sum
select sum(F_1),iMonth from wx_hr_salary where cPsn_Name like '高%' group by iMonth
| 丨 丨
| 求和 要求和的字段名插入:
insert into t_user(user_id,user_name,age,sex)values(1,'关羽',21,'男')
丨 丨 丨 丨
插入数据 表名 需要插入数据的字段名 值 字符型需加单引号,数值型不需要修改:
update t_user set user_pass = '123' where user_id=1 and age=21
丨 丨 丨 丨 丨 丨 丨
修改 表名 放置 需改的字段名 修改的数据 改哪里 改主键是1并且年龄为21的位置(根据实际情况更改,连接用and)
删除:
delete from t_user where user_id=2------删除来自t_user表里字段名为user_id字段数据为2的位置
丨
删除排序:
order by news_id asc(放在where后面)
丨 丨 丨
排序 字段名(asc升序,desc降序)消重复:
select distinct cPsn_Name from wx_hr_salary
| 丨 丨 丨
| 消重 按照字段名消重 表名查看表中从第0条数据开始查询,向后查10条记录
select * from wx_hr_salary limit 0 , 10
| 丨 丨 丨 丨
| 表名 限定范围 从第x条数据开始查 向后查询y条不是主键不允许建立外键
表之间的连接:
select * from t_news inner join t_user on t_news .create_by = t_user.user_no
| 丨 丨 丨 丨 丨 丨 丨
| B表名 连接 A表名 B 表名 字段名 A表名 字段名(inner可替换left,左边表完全显示,右边表符合条件的显示;用right相反)
表之间的联合:
select user_no from t_user union all select create_by from t_news
| 丨 丨 丨 丨
| 字段名 表名 联合 显示所有不消除重复(可不写)select new_id as aa from t_news (as可省略,例 select new_id aa from t_news,效果同上)
| 丨 丨 丨
| 字段名 起的名字 表名子查询:
select * from (select new_id as aa from t_news) t
| 丨 丨
| 在select()中放入另一个select查询语句 必须命名一个表名select 姓名,sum(case 科目 when '语文' then 成绩 else 0 end) as 语文 from score group by 姓名 order by 姓名 desc;
查询姓名字段,求(假如科目是语文则留下该行语文的成绩,否则留下0,进行下一行直到运算结束)所留下的所有数相加,所得结果在命名为语文的字段下显示,显示结果按姓名分组并按姓名倒序排序。
把null换成数字--------ifnull( t2.faka,0)
| 丨 丨 丨
| 表名 字段名 替换的数字max 最大值:(并且运用了case···then···end)
select max(t.A) A,max(t.B) B,max(t.C) C from (select sum(case Db_type when 'A' then Db_value else 0 end) as A,sum(case Db_type when 'B' then Db_value else 0 end) as B,sum(case Db_type when 'C' then Db_value else 0 end) as C from Db_test group by Db_type order by Db_type ) t
select sum(case Db_type when 'A' then Db_value else 0 end)
在select语句中插入一列自增id:
SELECT row_number() over (order by t.serv_id) as row_id, t.serv_id from table t