sql入门

作者: XIAO_CC | 来源:发表于2019-10-10 10:02 被阅读0次

    安装与配置

    1、平时也会用数据库,不过都是自己装自己用的,每次都是直接输入ip,端口加上用户名密码就可以登录,第一次遇到SSH,我的理解就是SSH登录会保证数据传输的时候更加安全。

    2、除了SSH我还有一点新的体会,那就是原来原来多个人可以用同一个账号密码来连接服务器,有时间要详细了解一下是如何实现的。

    数据库基础

    1、一直以来对于主键的设置都存在疑问,主键的作用应该主要体现在数据更新和插入等操作的时候吧,还有其他什么好处吗?

    2、看到很多书和文章里都写着最好要设置主键,那么设置一个主键和多个主键有什么区别,是不是设置的主键越多越好?

    使用MYSQL

    1、在navicat里有一个命令列界面,在这个界面里可以和mysql workbench的命令行界面比较类似。

    2、use 命令不会返回结果,但是回返回日志。

    3、对于日志的解读很重要,在mysql workbench中有5列,第一列标识日志的行的编码,第二列是任务开始时间,第三列是action标识运行了哪些代码,第四列是message就是错误信息了,第五列是任务的持续时间。

    4、运行完一个命令出现对勾,只能代表可以正确的运行命令,但是并不能代表就能返回我们想要的结果,所以还是要看返回的结果怎样。

    5、本身命令关键字比如select是不分大小写的,但是表的名称如果出现大小写是要区分的,要不然计算机是没有办法正确识别的。

    检索命令

    1、我们在检索数据库里表的时候,最好要在表的前面加上数据库的名字,这样不仅可以增加可读性,也可以减少出错率,因为你不能什么时候都能记得很清楚自己当前使用的数据库是哪个。

    2、不能部分使用distinct这个要注意。

    3、select col1 from table limit 10,5 (10为开始位置,5为行数)  其中的10是索引值,是表行的索引值,这个值是隐性的,而且是从0开始的,所以如果你想提取第一个那么开始位置应该是0。

    排序检索数据

    1、不一定要用显示的列进行排序,也就是说我可以select col1 但是order by col2。

    2、desc 和 asc要跟着每个排序的列, 比如select * from table order by col1 desc,col2 asc;。

    过滤数据

    1、过滤条件必须在from之后给出;

    2、范围检索 between num1 and num2;这个范围是闭合的,也就是说如果between 1 and 3 那么返回的结果是包含1 和 3的。

    3、在有很多个过滤条件的情况下,圆括号代表着优先级。

    4、in 和 between的区别我理解是,in其实是可以处理字符型的数据,而between只能处理数值型的数据,in不能代表一个范围,而between是可以代表一个范围的,也就是说in(1,3)那么就是说我要过滤的就是1和3,而between 1 and 3是说我要过滤的是1到3,是包含2的。

    通配符

    1、通配符是不区分大小写的。也就是说'a%'和 'A%'是一样的。

    2、通配符会使检索速度降低,而且对于空格是敏感的。

    数据处理函数

    1、数据处理函数在不同DBMS之间的差别很大,这一点要注意。

    2、数据处理函数对某一列进行操作以后一般情况下会返回一个新值,所以为了能够比较清晰的标识新值的含义最好能有一个新名字,在给新的值一个新名字的时候可以用as 关键字,也可以不用。

    3、在计算以后生成的新列,即使给了一个新名字,但是也不能对它进行其他的操作,因为它并不真实存在于数据库中。

    4、数据处理函数的位置会比较灵活,这一点要多注意。

    5、在文本处理函数中,Substring()里会有3个参数(1,2,3)  1是字段名,2是从哪个位置开始(索引值),3是取几个字符,还有要注意索引值也是从0开始的。

    6、日期处理函数中,diffdate()是有顺序的,是第一个参数的日期减去第二个参数的日期,所以调整顺序的话可能会出现负值。

    7、diffdate()返回的是间隔的天数,如果想要返回相差多少小时,如何操作呢?有时间去实践一下。

    8、dayofweek()中,周日是一个星期的开始。

    汇总数据

    1、与数据处理函数相比,聚合函数作用在行组上,也就是处理多行,但是只返回一行。

    2、有个小疑问,使用聚合函数的时候,会忽略null值,当然除了count(*),那么如果是缺失或者空格呢?有时间再实践一下。

    3、很复杂的代码会涉及到执行顺序,所以要在以后的学习中多注意。

    相关文章

      网友评论

        本文标题:sql入门

        本文链接:https://www.haomeiwen.com/subject/tqcopctx.html