| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 只需一文,带你吃透数据库及SQL语句(上) -> 正文阅读 |
|
[大数据]只需一文,带你吃透数据库及SQL语句(上) |
一、SQL,DB,DBMS及三者关系?DBMS 数据库管理系统 DB 数据库:数据库实际上是在硬盘上以文件的形式存在的 SQL 结构化查询语言 这是一个标准的SQL语言适合于所有的数据库产品。 SQL语句在执行的时候,实际上内部也会先进行编译,然后再执行SQL。(SQL语句的编译由DBMS完成) (注意SQL语句每一条SQL语句独立执行,且前期在cmd中进行使用SQL语句可以明显感受到,一条SQL语句分号只能出现一次,分号出现,被编译检测到,立刻到此结束,类似方法中写一个return,检测到,秒结束,秒中断!) DBMS负责执行SQL语句,通过执行SQL语句来操作DB当中的数据。 数据库管理系统通过执行SQL语句来对数据库进行操作! 而且SQL语句一定要小心翼翼,很多操作是直接对硬盘进行操作的,不可逆,例如update 和 delete 一定要加删除条件,不然把客户数据整丢了你可废废了 二、什么是表table 是DB中组织数据的基本数据单元 表:table,是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强。 每一列,也叫每一个字段 应该包括 : 字段名,数据类型,相关的约束 三、SQL语句分类DQL????????查询语句? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 就是一句select查询 DML????????对数据进行操作增删改? ? ? ? ? ?delete update insert DDL????????数据定义语言? ? ? ? ? ? ? ? ? ? ? ? create drop alter TCL????????事务控制语言? ? ? ? ? ? ? ? ? ? ? ? commit rollback 事务提交,事务回滚 DCL????????数据控制语言? ? ? ? ? ? ? ? ? ? ? ? grank授权? revoke取消授权 四、初识数据库:带你用小黑框(cmd)轻松拿捏~~~进入cmdwindows+r 输入 cmd 回车? 登录mysql有人在旁边
其中u是username 用户名 p是password 密码 也可以如下:直接显示密码登录
mysql退出?显示电脑硬盘上所有的数据库?
创建数据库
删除数据库注意是 drop,drop,drop!!!!! 删除表也是使用drop 关于删除操作的叮嘱:但是对表中一条或者多条数据进行操作就是delete了,一定记得限制范围! 不然业务中把客户数据删除了可白给了。 还有,drop前一定要反复确认客户需求,刻在磁盘上的,啪的一下就没了! 切换要使用的数据库显示数据库内的表
?查询自己用的mysql版本,便于后续配相应版本jar包: 查询正在使用的数据库:查询当前使用的数据库: select databases(); 显示当前使用的数据库的所有表名:
查询建表语句:注意,从查库,到查表,到查建表语句,这些都是一个show走天下,但是这些show 都不是SQL命令,是MySQL自带的! ?向数据库中导入数据:使用source导入:sql脚本?此时导入的文件时sql脚本。 比如电商双十一夜里客户的数据,那个大脚本,你记事本打得开? 这时候就需要知道什么是sql脚本了:
五、具体的sql语句sql语句不区分大小写 以分号结尾sql语句不区分大小写,但是对于表中的数据,是严格区分大小写的 如字段column? name这一列:大写的史密斯Smith和小写的smith有区别 Oracle语法和SQL语句很严密Mysql语法还是很松散的,不是很严谨严格 规范起见,为了程序健壮性 请在字符串中使用单引号 另外注意,字符串虽然Mysql支持双引号,且高版本不加单引号、双引号也可以 但是MySQl毕竟只是操作数据库的工具,为了程序的健壮性 还是建议字符串用单引号括起来 between and在内连接之非等值连接中也有出现,区间范围。 左小右大 ,数字方面左右都是闭区间,如[10,20]就是大于等于10,小于等于20 大于等于and小于等于 也可以用于字符,在字符中左闭右开 ,但是用的非常少 is NULL, is not NULL此处注意 这里不能用 等号 和 !=? 在MySQL中等号是等量关系,NULL就不是量。是空的。 and 和 or 的优先级and 和 or 连起来 and优先级更高 or 优先级低,但是可以加括号 like是模糊查询其中百分号是任意多个字符? ? % 下划线是任意一个字符? ? ? ? ?_ 如果要转义,转义字符用斜杠,输出 关于排序排序要注意语法规范 要排序的列? 排序方式 如 :studenNO? ?DESC 默认是升序排列 asc 降序排列desc 按照两个字段排序 , order by a,b的意思是先按照a字段排序,如果排序中分不出来前后,再按照b的条件排 分组函数 count sum max avg min这五个组合函数。 五个聚合函数(max,min,avg,sum,count) 这五个函数是不能作为聚合条件的,这五个函数是不能作为where的子句的,因为你的一条sql语句的执行顺序就是,from,where,group,having,select,order by 也就是说你前面的执行按照顺序应该是你在后面的语句 这在语法严格的Oracle里是不可行的,所以Mysql的语法还是很松散的!~ 特点 分组函数 不能直接出现在 where 的后面 where 语句的 嵌套子查询可以避免这种 情况,例如? 查询高于平均工资的人的姓名 把查询的avg作为筛选条件放入 where where salary >(select avg(salary) from table) //但是注意这里的嵌套子查询语句不能加分号,上文我提到过,一条SQL语句检测到分号立马停止斩立决! 分组函数分组函数 group by 是分组 分组之后才能用,每分组您去哪儿用分组函 分组函数还有一个机制是自动忽略NULL,不需要我们手动去除 不想去除NULL 就 加限制条件。 分组查询能按照一个或者多个字段联合分组 如果一条语句有group by 的话 select 后面 只能跟 参加分组的 字段 或者就是分组函数 在Oracle中直接报错了 而且group by 和 having 是兄弟俩 不见group by having 是不能用的 having的出现就是为了 group by 服务!~ 所以总结到这里,一条SQL语句的执行顺序就是 先from 定你要去的地方,哪个表 然后 where 去哪个表的哪儿 (这里插一句,99版本的join on 这个连接条件真的巧妙,节省出来where用于下一次过滤) 接着group分组 再用 group的亲兄弟 having 分组筛选 最后返回select 查询出来 的结果集 如果需要排序,就order by? 不写默认升序排序 ASC ,写了DESC是降序排序! 再输出出来. 本部分内容属于本人的牛客刷题记录,掌握了上述知识点,这些题真可谓手到擒来! 六、牛客刷题记录
查询结果只有universiy这一列,可以用group by 去重 , 但是本题考查的思想主要是是关键字distinct去重 其中关于distinct 关键字还要一个妙用 那就是在一个表格中,查询不同的ID有多少条 可以使用语句 select count(distinct id)from tablename; 其中count方法真的是懂英文就知道它的功能,如名所示是用来count的 它也是一个组合函数(MAX,MIN,SUM,AVG,COUNT) 再次强调当筛选方法的条件中含有这五个组合方法时,不能写在where的子句中哦 要写在having子句中,此外 having 和 group by 这个真的是亲兄弟方法, 两个捆绑在一起,必须先分组 group by ,才能再用having筛选,如果
select device_id from user_profile limit 0,2; 或者 select device_id from user_profile limit 2; 都可以实现输出前两行
select device_id as user_infos_example from user_profile limit 2;
排序方式在后面,升序排列为asc,降序排列为desc。
七、小结初识数据库,总结本文,一起学习,共同进步! ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:29:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |