![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sql
试着生存
北京不相信眼泪
展开
-
创建表后设置了主键,没有设置自增
alter table csdtest modify id int(11) auto_increment;原创 2021-08-30 09:42:19 · 417 阅读 · 0 评论 -
索引优化。
原创 2019-09-02 22:17:15 · 84 阅读 · 0 评论 -
SQL SELECT DISTINCT 语句
原创 2021-06-24 10:21:29 · 84 阅读 · 0 评论 -
大数据技术Hive的学习
1.学习Hive时,最好把mysql先过一下,这样就通俗易懂了原创 2021-01-26 13:43:59 · 87 阅读 · 0 评论 -
创建唯一索引
alter table scm_purchase_contract add unique index(org_id,contract_name);原创 2020-12-25 09:50:38 · 546 阅读 · 0 评论 -
日期时间函数
/*日期时间函数*/#获取当前的系统时间SELECT NOW(),SYSDATE()SELECT CURRENT_DATE(),CURRENT_TIME()#查询当前的年份SELECT YEAR(CURRENT_DATE())#查询满足40岁的员工SELECT * FROM t_employee WHERE YEAR(NOW()) - YEAR(birthday) > 40...原创 2020-10-26 11:42:29 · 216 阅读 · 0 评论 -
sql流程控制函数
在Java中有if…else,switch…case等流程控制语句结构mysql中有对应的函数(1)ifnull(x,value):如果x是null,就用value计算,否则还是用x计算(2)CASEWHEN 条件1 THEN result1WHEN 条件2 THEN result2…[ELSE resultn]END#查询员工的姓名,薪资,奖金比例,实发工资#实发工资 = 薪资 + 薪资 * 奖金比例SELECT ename,salary,commission_pct, salary原创 2020-08-19 10:24:49 · 438 阅读 · 0 评论 -
日期时间函数
#获取当前的系统时间SELECT NOW(),SYSDATE()SELECT CURRENT_DATE(),CURRENT_TIME()#查询当前的年份SELECT YEAR(CURRENT_DATE())#查询满足40岁的员工SELECT * FROM t_employee WHERE YEAR(NOW()) - YEAR(birthday) > 40#查询入职已经满5年的员工SELECT * FROM t_employeeWHERE YEAR(NOW()) - YEAR(hire原创 2020-08-19 10:23:39 · 112 阅读 · 0 评论 -
单行函数:字符串函数
/*字符串函数*/#查询每个员工的姓,不考虑复姓SELECT ename AS “姓名”, LEFT(ename,1) AS “姓” FROM t_employee;/*java:下标从0开始,str.substring(index)str.substring(start,end)mysql:下标从1开始substring(str,index)substring(str,st...原创 2020-08-19 09:09:36 · 149 阅读 · 0 评论 -
limit m,n
/*limit m,nm = (page - 1)*每页的记录数n = 每页的记录数*/#查询员工信息,每页显示10条,显示第一页SELECT * FROM t_employee LIMIT 0,10#查询员工信息,每页显示10条,显示第二页SELECT * FROM t_employee LIMIT 10,10#查询员工信息,每页显示5条,显示第三页SELECT * FROM...原创 2020-08-17 10:13:15 · 1037 阅读 · 0 评论 -
order by(排序)---入门使用
/*order by:排序order by 字段名/统计结果 【DESC/ASC】, 字段名/统计结果 【DESC/ASC】 …*/#查询员工的姓名和薪资,按照薪资的从高 DES C到 低 ASC;排序SELECT ename,salary FROM t_employee ORDER BY salary DESC;#查询员工的编号,姓名和薪资,按照薪资的从高到低排序,如果...原创 2020-08-17 10:05:05 · 908 阅读 · 0 评论 -
having:写条件
/*having:写条件where和having的区别:(1)where后面是不允许使用分组函数,having后面可以加分组函数(2)where是用于“原”表中的记录的筛选,而having是用于“统计结果”的筛选*/#查询每个部门的平均工资,只显示平均工资在12000以上的SELECT did,AVG(salary) FROM t_employee GROUP BY did HAV...原创 2020-08-17 09:48:35 · 1634 阅读 · 0 评论 -
分组统计
/*group by:分组统计*/#查询每个部门的平均工资SELECT did,AVG(salary) FROM t_employee GROUP BY did;#查询每个部门的平均工资,排除没有部门的员工SELECT did,AVG(salary) FROM t_employee WHERE did IS NOT NULL GROUP BY did ;#查询每个部门编号,部门名称,...原创 2020-08-17 09:37:15 · 207 阅读 · 0 评论 -
分组函数
/*分组函数(1)sum(2)count(3)avg(4)max(5)min*/#查询全公司本月要发多少钱,暂时不考虑奖金和扣除的钱#即查询全公司所有员工的工资总数SELECT SUM(salary) AS “工资总数” FROM t_employee;#查询全公司的员工总数SELECT COUNT(eid) AS “总人数” FROM t_employee;如果coun...原创 2020-08-17 09:16:05 · 81 阅读 · 0 评论 -
单行函数和分组函数
/*单行函数和分组函数:只对某一行的记录做运算,分组函数是多行一起统计/合计运算。分组函数:sum,count,avg,max,min都是针对多行求一个结果数学函数:round(x,y):小数点后取y位,并且四舍五入truncate(x,y):直接截掉,保留x的小数点后取y位*/#查询员工的姓名,薪资,薪资保留小数点后一位SELECT ename,salary,ROUND(sa...原创 2020-01-25 18:11:45 · 347 阅读 · 0 评论 -
子查询
/*某些情况下,当进行一个查询时,需要的条件或数据要用另外一个 select 语句的结果,这个时候,就要用到子查询。先于当前查询执行的,并且是嵌套在当前查询中的查询叫做子查询。子查询分为:(1)where型子查询嵌套在where里面条件的运算符分为两类:=,>,>=,<,<=,!= 后面接子查询的结果必须是“单值”in, = any, >all,&...原创 2020-01-25 18:10:20 · 127 阅读 · 0 评论 -
直接配置连接池对象
但是直接写死在这里不太好,所以就有了引入。。。能写父类型,不能写子类型。。。获取连接对象,声明异常。。。原创 2020-01-18 21:38:15 · 132 阅读 · 0 评论 -
Parameter 'cityId1' not found. Available parameters are [arg1, arg0, param1, param2]异常问题解决
在自己写sql时需要in,此时有两个参数传递。。。主要把@param写好。原创 2020-01-18 20:07:47 · 278 阅读 · 0 评论 -
自连接
/*特例:自连接联合查询需要两张表,现在自连接,就一张表当两张表用。通过给表取别名的方式,把一张表变成“两张表”表的别名不要加""*/#查询员工的编号,员工的姓名,领导的编号,领导的姓名#因为员工的信息和领导的信息都在t_employee表SELECT emp.eid,emp.ename,emp.mid,mgr.enameFROM t_employee AS emp INNER ...原创 2020-01-12 22:04:37 · 95 阅读 · 0 评论 -
union实现全连接
/*使用union实现全连接的效果(1)A ∪ Bselect 字段列表from A表 left join B表on 关联条件unionselect 字段列表from A表 right join B表on 关联条件(3)A ∪ B - A ∩ Bselect 字段列表from A表 left join B表on 关联条件where 从表的关联字段 is nulluni...原创 2020-01-12 22:00:50 · 1069 阅读 · 0 评论 -
左连接
/*左连接:第一种结果:Aselect 字段列表from A表 left join B表on 关联条件第二种结果:A - A∩Bselect 字段列表from A表 left join B表on 关联条件where 从表的关联字段 is null左连接和右连接的区别:(1)left换成right(2)以左边的表为主还是以右边的表为主右连接第一种结果:Bselect ...原创 2020-01-12 21:55:30 · 11081 阅读 · 0 评论 -
内连接 inner jion
/*内连接(1)形式一select 字段列表from A表 inner join B表on关联条件【where 其他筛选条件】说明:如果不写关联条件,会出现一种现象:笛卡尔积笛卡尔积关联条件的个数 = n - 1,n是几张表关联on只能和join一起用(2) 形式二select 字段列表from A表 , B表where 关联条件 【and 其他筛选条件】*/...原创 2020-01-12 21:51:13 · 144 阅读 · 0 评论 -
关联查询-----高级讲效率,初级讲实现
面试会问:关联查询:1、内连接:inner join2、外连接(1)左外连接:left join(2)右外连接:right join(3)全外连接:full join mysql不支持关联查询的结果一共有七种:关联查询必须有两张或两张以上,以下用两张来示例:(1)A ∩ B用内连接(2)A(3)A - A ∩ B(2)和(3)用左连接(4)B(5)B - A ∩ B...原创 2020-01-12 21:21:53 · 87 阅读 · 0 评论 -
模糊查询
/*模糊查询like ‘xx’xx可以用占位符:_:代表确定的一个字符%:代表是任意个数的字符,0~n个*/#查询名字中,第二个字是“冰”SELECT * FROM t_employeeWHERE ename LIKE ‘_冰%’;...原创 2020-01-12 21:09:06 · 4390 阅读 · 0 评论 -
区间范围和集合运算符- in查询
/*区间范围和集合运算符区间范围:between xx and yy:[xx,yy]not between xx and yy: 小于xx 或 大于yy集合范围:in (值列表)not in(值列表)*/#查询薪资大于等于10000 并且小于等于15000的员工SELECT * FROM t_employeeWHERE salary BETWEEN 10000 AND 15...原创 2020-01-12 21:06:05 · 465 阅读 · 0 评论 -
逻辑运算符
/*逻辑运算符与:&& 或 and或:|| 或 or非:! 或 not*/#查询薪资高于10000 并且低于15000的女员工SELECT * FROM t_employeeWHERE salary > 10000 && salary <15000 AND gender = ‘女’#查询薪资高于20000 或者 籍贯是 浙江SE...原创 2020-01-12 21:00:43 · 57 阅读 · 0 评论 -
比较运算符
/*比较运算符大于:>小于:<大于等于:>=小于等于:<=等于:=赋值和比较都是用= Mysql 只有 = 没有 ==不等于:!= 或 <>安全等于:<=>*/#查询薪资大于20000的员工SELECT * FROM t_employee WHERE salary > 20000;#查询薪资等于9...原创 2020-01-12 20:49:12 · 3477 阅读 · 1 评论 -
算术运算符
/*算术运算符:加:+减:-乘:*除:/ 或 divdiv只保留整数部分模:% 或 mod*/#查询员工的姓名和薪资SELECT ename,salary FROM t_employee;#查询员工的姓名和原来的薪资和涨薪1000元后的薪资SELECT ename,salary,salary + 1000 FROM t_employee;#查询9/4的结果SEL...原创 2020-01-12 20:47:56 · 88 阅读 · 0 评论 -
可视化工具的使用
原创 2020-01-12 20:39:21 · 119 阅读 · 0 评论 -
外键约束-策略
外键约束(了解)外键约束不是必须的。(一)概述1、关键字:foreign key2、特点:(1)约束的是两张表的关系需要两张表,或者一张表虚拟成两张表(2)两张表分为主表(父表)和从表(子表)外键的建立/指定是在从表(子表)上建立。 (3)被参考的表称为主表,主表的被参考列必须是主键或唯一键 (4)一个表可以有多个外键(二)如何指定外键1、在建表时指定外键要求:(1)建...原创 2020-01-12 19:11:53 · 1713 阅读 · 0 评论 -
自增约束
自增约束1、关键字:auto_increment2、特点:(1)一个表只能有一个自增列(2)自增列必须是整型的(3)自增列必须是键列,例如:主键,唯一键3、如何指定自增create table emp(eid int primary key auto_increment,ename varchar(20) not null);insert into emp values(2,...原创 2020-01-12 19:10:36 · 2630 阅读 · 0 评论 -
非空和默认值约束
非空和默认值约束1、如何指定非空约束(1)建表时create table emp(eid int primary key, #员工编号ename varchar(20) not null, #姓名cardid varchar(18) unique key not null , #身份证号tel varchar(11) unique key not null,gender ...原创 2020-01-12 19:07:56 · 823 阅读 · 0 评论 -
唯一键约束--查看索引
唯一键约束(一)概述1、关键字:unique key2、特点:指定了唯一键的列的值必须唯一,不能重复3、作用:给主键以外的列,限定唯一性4、唯一键分类单列的唯一复合唯一唯一键和主键的区别:(1)主键不能为空,唯一键可以为空(2)主键约束,一个表只能有一个,而唯一键可以有很多个(二)使用唯一键1、如何创建/指定唯一键(1)在建表时create table 【数据库名.】表...原创 2020-01-12 18:56:48 · 1164 阅读 · 0 评论 -
主键约束----复合主键
主键约束(一)概述1、关键字 :primary key2、特点:增加主键约束的列(字段)的值必须是非空 + 唯一的,一个表只有一个主键约束3、作用:保证表中不会出现两条无法区分的记录4、要求:每一张表都必须有主键约束5、分类单列主键约束复合主键约束(二)使用主键约束1、创建主键约束(1)在建表时指定主键约束create table 【数据库名.】表名称(字段1 数据类型 ...原创 2020-01-12 18:33:29 · 2864 阅读 · 0 评论 -
约束
两条都一样。。。没有约束就会加进去。。约束目的:使得数据更准确,更完整。约束的分类:1、键约束(1)主键约束(2)唯一键约束(3)外键约束2、非空约束3、默认值约束4、自增约束5、检查约束(mysql暂时没有支持)...原创 2020-01-12 18:08:12 · 86 阅读 · 0 评论 -
mysql基础复习
复习:一、如何连接(登录)mysql服务器mysql -h 主机地址 -P 端口号 -u 用户名 -p回车Enter Password:密码二、MySQL的数据类型1、整型xxxIntint(M),这个M必须结合zerofill unsigned来使用2、浮点型float,doubledouble(M,D):表示总位数不超过M,小数点后的精度是D位3、定点型decimal,...原创 2020-01-12 17:46:49 · 97 阅读 · 0 评论 -
mysql基本语法
1、创建一个test库,并创建一个表部门表dept,包含字段:id(int),name(varchar),description(varchar)create database test;create table dept(id int,name varchar(20),description varchar(100));2、使用添加语句的多种形式,给test库的dept表添加几条记录i...原创 2020-01-12 17:31:05 · 250 阅读 · 0 评论 -
sql子查询
子查询某些情况下,当进行一个查询时,需要的条件或数据要用另外一个 select 语句的结果,这个时候,就要用到子查询。例如:为了给主查询(外部查询)提供数据而首先执行的查询(内部查询)被叫做子查询。一般根据子查询的嵌入位置分为,where型子查询,from型子查询,exists型子查询。1、where型子查询where型子查询即把内层sql语句查询的结果作为外层sql查询的条件. ...原创 2019-10-21 18:53:21 · 1003 阅读 · 0 评论 -
数据库介绍
原创 2019-10-19 21:57:21 · 59 阅读 · 0 评论