暂时只想起来这些,有需要补充的或者文章内出现的错误欢迎指正(评论 or 私信)。 请努力提升自己! 划重点 点击下面连接,直接查看我的日常笔记,比csdn更新快,内容更丰富。 不断更新完善的笔记
1、数据库常见的概念: DB:数据库,存储数据的容器。 DBMS:数据库管理系统,又称为数据库软件或数据库管理产品,用于创建或管理DB。 SQL:结构化查询语言,数据库通信语言。不是某个数据库软件独有的,而是主流数据库软件之间通用的语言。 2、数据库存储数据的特点。 数据先存储到表中,在存储到数据库中。 一个数据库中可以有多个表,每张表都有唯一的表明来标识自己。 一个表中可以有一个或者多个列,列又称为“字段”,相当于JavaBean中的属性。 表中的每一行数据都相当于Java中的一个对象(一行数据就是一个对象)。
1、模糊查询通配符%。 %代表一个或者多个字符。 like不仅仅限于字符型,在数值型也一样通用。 实列:查找last_name 包含a的员工。
select * from employees where last_name like '%a%';2、模糊查询通配符_。 _代表一个字符。 实列:查找last_name 第二个字符为a,第五个字符为b的员工。
select * from employees where last_name like '_a__b%';3、MySQL转义符 \ 。 MySQL中 \ 代表转义符。 实列:查找last_name 第二个字符为下划线 _ 的员工。
select * from employees where last_name like '_\_%';4、MySQL自定义转义符。 ESCAPE 关键字可实现自定义转义符。 实列:自定义转义符。
select * from employees where last_name like '_$_%' ESCAPE '$';5、Between and 关键字。 Between and 代表查找某个到某个范围的关键字。 实例:查询年龄在20岁到30岁之间的员工(不包含20岁和30岁)。
select * from employees where age between 21 and 29;Between and 关键字注意事项: 使用Between and 可以提高语句的简洁度。 两个临界值不能调换顺序。 可理解为:and 前面是起点,and 后面为终点。 两个临界值的数据类型必须一致。 同理使用逻辑运算符也可以做到。 实例:查询年龄在20岁到30岁之间的员工(不包含20岁和30岁)。
select * from employees where age > 20 and age < 30;拓展:not between and 关键字 指不在某个范围区间的数据。 6、in关键字。 in关键字作用:判断某字段的值是否属于in列表中的值相等。 实列:查找岗位为前端、UI美工、JAVA开发的员工的所有信息。
select * from employees where operating_post in ('前端', 'UI美工', 'JAVA开发');in关键字使用注意事项: in关键字的功能 or关键字也能实现,使用in关键字代码简洁度高。 in关键字列表中的值数据类型必须一致或者兼容(隐式转换)。 7、is null 关键字。 is null 判断某一段的值是否为null,为null则展示 is not null 则反之。 实例:查询没有奖金的员工的所有信息。
select * from employees where bonus IS NULL;8、is not null 关键字。 is not null 关键字判断某一字段的值是否不为空。 实例:查询没有奖金的员工的所有信息。
select * from employees where bonus IS NOT NULL;9、order by 关键字: 作用:排序。 order by 关键字 默认排序方式为从高到低 DESC:从高到低 ASC:从低到高
#asc 从高到低 select * from employess where salary != 0 order by salary desc; #asc 从低到高 select * from employess where salary != 0 order by salary asc;order by 按表达式排序:
select last_name, salary*12 as 年薪, salary as 月薪 from employess order by salary*12 desc;order by 按字段别名排序: 注意:不要使用单引号括起来别名:‘字段别名’,会引起排序出错。
select last_name, salary*12 as 年薪, salary as 月薪 from employess order by 年薪 desc;order by 按函数排序:
select length(last_name) as 字节长度, last_name from employess order by 字节长度;order by 多个字段排序: 先按第个order by 的字段排序,然后再按照第二个,以此类推。
select * from employess order by bonus desc, id asc;常用函数: 1、concat函数: 功能:拼接字符。
select concat('字符1','字符2','字符3');实例:字符串拼接。
select concat(last_name,'的奖金为:',bonus) from employess;2、ifnull函数: 功能:判断字段是否有值,有值则显示本身的值,为null则显示null或者自己指定的字符或者数值。 #字符类型
select IFNULL(bonus,'a') as 奖金 from employess;#数值类型
select IFNULL(bonus,0) as 奖金 from employess;3、isnull函数: 功能:判断字段是否有值,有值返回0,为null返回1(类似boolean类型,0为true,1为false)。
select bonus,ISNULL(bonus) as 'isnull_函数' from employess;4、大小写转换函数: upper函数: upper将字符转换为大写。 如果本身就是大写则不变,小写就被转换为大写。 lower函数: lower将字符转换为小写。 如果本身就是小写则不变,大写就被转换为小写。 5、length函数: 作用:返回字符的字节长度(在字符编码为UTF-8时,一个汉字返回3个字节。其它字符编码集中,一个汉字返回2个字节)。 查询last_name 字段值的字节长度。
select length(last_name) from employess;查询 ‘abc’ 的字节长度:
select length('abc');6、substr函数: 作用:截取字符。 MySQL的索引从1开始。 第一个参数为要截取的字符,第二个参数为从那个位置开始。
select substr('最美的烟火总是最先坠落',10);第一个参数为要截取的字符,第二个参数为从那个位置开始,第三个参数限制截取的长度。
select substr('最美的烟火总是最先坠落',4,2);7、instr函数: 作用:返回子串第一次出现的索引位置。 如果存在返回索引位置,不存在则返回0。 参数一为字符,参数二为子串。
select instr('最美的烟火总是最先坠落','烟火') as 索引位置;8、trim函数: 作用:去除字符首尾的空格。 原始字符长度为:22
select length(' 独孤求败 ') as 原始字符长度;去除首尾空格后长度为:12
select length(trim(' 独孤求败 ')) as 去除空格后的长度;trim函数去除首尾位置的指定字符:
select trim('a' from '东邪西毒aaa');9、lpad函数: 作用:lpad为左填充。 参数一为要填充的字符,参数二填充后索引长度,参数三为使用什么进行填充。 如果第二个参数你给出的长度果断,lpad函数会截断字符串,只显示靠前索引位置的字符。
select lpad('武夷山大红袍',10,'*'); //****武夷山大红袍10、rpad函数: 作用:lpad为右填充。 参数一为要填充的字符,参数二填充后索引长度,参数三为使用什么进行填充。 如果第二个参数你给出的长度果断,lpad函数会截断字符串,只显示靠前索引位置的字符。
select lpad('武夷山大红袍',10,'*'); //武夷山大红袍****11、replace替换函数: 作用:替换指定字符。
select replace('勿忘国耻,我辈自强','我','吾') as 振兴中华; //勿忘国耻,吾辈自强12、if函数: 作用:流程控制函数,相当于Java中的if
select if(10>5,'大','小') as 流程控制函数;实例:查找有奖金的员工信息。
select last_name, bonus, if(bonus is not null,'有奖金','无奖金')from employess;13、case when表达式: 查询员工名字、月薪、岗位编号。将岗位编号为1的月薪提高1.4倍,将岗位编号为2的月薪提高1.6倍,将岗位编号为3的月薪提高1.5倍,其他岗位编号月薪提高1.3倍。
select last_name, salary,department_id as 原始工资, case department_id when 1 then salary*1.4 when 2 then salary*1.6 when 3 then salary*1.5 else salary*1.3 end as 调整后的薪资 from employess;case when 第二种使用方式:
select last_name, salary,department_id as 原始工资, case when department_id = 1 then salary*1.4 when department_id = 2 then salary*1.6 when department_id = 3 then salary*1.5 else salary*1.3 end as 调整后的薪资 from employess;1、round 函数: 作用:四舍五入,取整函数。
select round(1.65) as 四舍五入; //2保留两位小数:
select round(1.657,2) as 四舍五入; //2、ceil函数: 作用:向上取整。
select ceil(1.02); //23、floor函数: 作用:向下取整。
select floor(9.99); //94、truncate函数: 作用:截断函数(该函数不会进行四舍五入运算)。 参数一为要截断的数值,参数二为保留几位小数。
select truncate(3.666666,2) as 保留两位小数; //3.665、mod函数: 作用:取余数的函数,和%的作用一样(%也是取余数)。
select mod(10,3); //1 //计算公式为 a-a/b*b日期格式符:
序号格式符功能1%Y四位的年份2%y二位的年份3%m月份 0-114%c月份 1-125%d日期0-316%H小时(24小时制)7%h小时(12小时制)8%i分钟00-599%s秒00-591、now函数。 作用:返回当前时间
select now(); //2020-10-04 21:55:142、curdate函数。 作用:返回当前日期/不带时间
select curdate(); //2020-10-043、curtime函数。 作用:返回当前时间/不带日期
select curtime(); //21:54:554、year函数: 作用:只返回年份的时间。 实例:查询员工表中员工的入职时间,只显示年份。
select year(birthday) as 入职时间 from employess;5、month函数: 作用:返回月份。
select month(now()); //返回阿拉伯数字 select monthname(now()); //返回英文月份6、str_to_date函数: 作用:将指定字符转换为指定的日期格式。 实例:查询入职时间为2020-9-1的员工的所有信息。
select * from employess where birthday = str_to_date('2020-9-1', '%Y-%c-%d');将特殊格式字符转换为日期类型:
select * from employess where birthday = str_to_date('9-1-2020', '%c-%d-%Y');7、date_format函数: 作用:将指定的日期转换为字符
select date_format('2020/10/10', '%Y年%c月%d日'); //2020年10月10日1、查看当前数据库: select database();
2、查看所有数据库: show databases;
3、查看当前用户: select user();
4、查看当前MySQL的版本: select version();
1,Ctrl+q就会弹出一个sql输入窗口 2,Ctrl+r就执行sql了 3,按f6会弹出一个命令窗口 4,Ctrl+/ 注释 5,Ctrl +Shift+/ 解除注释 6,Ctrl+R 运行选中的SQL语句 7,Ctrl+Shift+R 只运行选中的sql语句 8,Ctrl+L 删除选中行内容 9,Ctrl+D 表的数据显示显示页面切换到表的结构设计页面,但是在查询页面写sql时是复制当前行并粘贴到下一行 10,Ctrl+N 打开一个新的查询窗口 11,Ctrl+W 关闭当前查询窗口 12,鼠标三击选择当前行