在实际开发中,数据库都是安装在服务器上,很多人都需要去访问这个数据库
一行SQL语句必须要加分号结尾
mysql只是一个数据库系统,如果想要对数据库操作,只能依靠命令行窗口。
有一个缺点:命令无提示,操作繁琐,关闭命令行再打开无历史命令记录。
这时候就需要一个Mysql图形化管理工具
Database(数据库)和Schema是一样的含义,在命令中可以同等替换
创建表:注意:小括号,每个字段后加上英文逗号,最后一个字段不加逗号,创建表最后加分号,不然这个创建表语句不算结束。
数值类型(红色的是最常用的)
字符串类型:(最常用的)
定长用char(长度),不定长用varchar(长度)
日期时间类型(红色的是最常用的)
数据库设计当中要重点关注:创建表(语法、约束、数据类型、设计)
数据库操作当中要重点关注数据的增删改
这里非常重要,关键词、格式、标点符号
mysql语句中now()可以自动获取当前系统时间
修改表的某列属性,用关键字alter
修改表中某行的某个属性用关键字update
删除表中某行用关键字delete
重点重点:增删改
insert to
update
delete from
重点:查询
去除重复记录:查询某个字段下的所有值,然后所有值再去重
分组查询之后select所返回的字段主要包含两类:分组字段和聚合函数
分组为的就是把某一列分成几个不同的组然后分别对这几个组的数据进行统计
难点:分组、过滤(分组之后的过滤用having)
我们先查询出 入职时间在2015-01-01(包含)以前的员工 并 对结果根据职位分组
进一步的,我们需要获取员工数量大于等于2的职位, 这是一个条件判断,根据前面的知识,条件判断应该加在where关键字之后
书写sql语句后发现报错,这是因为where之后是不能使用count等聚合函数的
“获取员工数量大于等于2的职位”, 这个条件是属于分组之后的过滤
分组之后的过滤应该用having过滤
sql语句书写顺序:先分组,再展示,再筛选
面试题
什么时候第二个排序字段才会生效?只有当第一个排序字段相同的时候
可以将属性值替换的表达式,列名替换是用as关键字(as可以省略)
多表查询:
多对多关系中,需要建立第三张表,并且,中间表至少包含两个外键,关联两方的主键
多表查询