首页
Github
友链
壁纸
更多
关于我
Search
1
基于php laravel框架,mvc模式的员工管理系统
131 阅读
2
基于前端z轴的三维动画
102 阅读
3
前端canvas实现的微信飞机大战练习
89 阅读
4
SqlServer数据库
72 阅读
5
前后端分离vue+axios调用网络api的音乐播放器
63 阅读
默认分类
编程
登录
Search
标签搜索
学习
python
html
mysql
sql
bai1hao
累计撰写
19
篇文章
累计收到
1
条评论
首页
栏目
默认分类
编程
页面
Github
友链
壁纸
关于我
搜索到
1
篇与
的结果
2024-07-21
MySql数据库入门
数据库dos命令查询所有服务sc query查询指定服务 eg: mysql80sc query mysql80高级查询(查询更多信息,如:PID)sc queryex mysql80查询如二进制路径之类的信息sc qc mysql80查询网络状态netstat -ano查询当前运行的任务列表tasklist | findstr "mysqld"查询mysql的网络状态 PID 见sc queryexnetstat -aon | findstr "[PID]"mysqld 表示数据库服务MySql\! [dos命令] 在mysql里面调用系统命令desc [表名] 查询表格结构 select * from [表名] 查询表信息更改发送信息的列名select id as 编号 from employees;计数select count(*) from employees;函数最大值select max(列名) from 表名最小值select min(列名) from 表名平均值select avg(列名) from 表名保留两位小数select round(avg(列名),2) from 表名统计不重复的值select distinct 列名 from 表名拼接concat(salary,'元')条件select * from employees where birth_data>'1949-12-31' order by birth_datashow columns from [表名] 和desc [表名] 类似分组select gender,count(*) from emps group by gender;逐级分组select department,gender,count(*) from emps group by department,gender;以年份分组select year(birth_date) as birth_year,count(*) from emps group by birth_year;以同年代分组(floor()向下取整求年代数,concat()拼接,\转义字符,as birth_year 用 birth_year 当表头)select concat(floor(year(birth_date)/10)10,'\'s') as birth_year,count() fromm emps group by birth_yearlimit分页跳过第20条拿10条select * from emps limit 10 offset 20(简写,参数位置相反)select * from emps limit 20,10join使用交集(可省略inner)select * from cities inner join guests on cities.id=guests.from_city_id;交集+左侧剩余数据select * from cities left outer join guests on cities.id=guests.from_city_id;交集+右侧剩余数据select * from cities right outer join guests on cities.id=guests.from_city_id;并集(mysql没有outer join, 将 left,right join union 即可得并集)select * from cities left outer join guests on cities.id=guests.from_city_idunionselect * from cities right outer join guests on cities.id=guests.from_city_id;用truncate 删除表的所有数据TRUNCATE TABLEhaving筛选总薪资大于500000的分组select distinct education,sum(salary) from employees group by education having sum(salary)>500000;serialbigint unsigned auto_increment数据库设计模范化(1)修改异常(Modication)表一编号姓名部门部门电话1王娟人事0871-123456772李强人事0871-123456772张三公关0871-12345677修改李强的电话信息后表二编号姓名部门部门电话1王娟人事0871-123456772李强人事0871-123456892张三公关0871-12345677人事部门的数据出现了不一致(Inconsistence),这就是修改异常(2)删除异常(Deletion)从表一删除张三表三编号姓名部门部门电话1王娟人事0871-123456772李强人事0871-12345689部门公关信息丢失(3)插入异常(Insertion)新员工未定部门,无法插入(假定信息必须完整)模范化数据库设计业界标准第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式第四范式(4NF)第五范式(5NF)三个基本范式第一范式(1NF)1.数据列的数据类型必须一致2.数据要有原子性(atomic)指信息不能再细分,是相对的,与业务需求有关,如果业务需求需要将姓氏和名字分开处理,则姓名作为一个数据就不够原子性修正:将姓名拆分成姓氏和名字3.一个表的单元格不能出现重复数据编号姓名电话1王娟0871-12345677,0871-123452312修正:联系人信息编号姓名1李娜联系电话联系人编号电话10871-123456771871-123452312出现了联系人编号参照编号的情况4.不能出现同性质的表格列编号姓名课程1成绩1课程2成绩2课程3成绩31王娟html100css100js100几个成绩和几个课程就是同性质的表格列修正:学生信息编号姓名1王娟成绩学生编号课程成绩1html1005.必须有一列或几列数据的组合将表格行区分开姓名性别电话李强男18575896321李强男17563548596李强不知道是不是同一个人修正:添加一列或多列组合在业务上能够将记录分开的数据姓名身份证号性别电话李强530111200256879623男18575896321李强530111200506125893男17563548596在业务上能够将每行记录区分开的一列或多列组合被称为(可做主键primary key的)候选键(candiadte key)候选键:: 在业务上,他们的数据具有唯一性要求主键: 可被其他表参照的候选键有候选键的情况下,为方便数据处理,我们有时会添加一个具有唯一值的"人工候选键"第二范式1.满足第一范式2.所有候选键列都依赖于全部候选键员工编号姓名出生日期项目编号项目名称工时1王娟2002-06-011产品设计262李四2002-05-052产品推广301王娟2002-06-012产品推广10姓名 取决于 员工编号项目名称 取决于 项目编号候选键应该是员工编号和项目编号的组合除了工时外,其余列出现了部分依赖修正员工信息表员工编号姓名出生日期1王娟2002-06-012李四2002-05-05项目信息项目编号项目名称1产品设计2产品推广工时员工编号部门编号工时11262230第三范式1.满足第二范式2.所有非候选键列都直接依赖于候选键列消除传递依赖员工编号姓名城市省份国家1李强昆明云南中国2LinawashiontonD.CUSA国家依赖于省份省份依赖于城市来自城市依赖于员工编号因此,所有列都依赖于全部候选键列,但出现了非直接依赖——传递依赖修正:员工信息员工编号姓名来自城市编号1李强12Lina2城市信息城市编号名称省份国家1昆明云南中国2WashiontonD.CUSA总结1.不要在一张表中描述多个事物2.要有主键3.数据的原子性由业务决定4.拆分的多种表具有参照关系实体(Entity)实体,是一张表所表述的业务对象每个实体应该有一个主键(primary key)如果一个实体需要参照其他实体,则需要有一个外键(Foreign Key),用于参照那个实体的主键。与主键对应的外键,在数据类型上必须严格与主键一致实体关系实体间由业务类型决定了他们之间的关系1.一对一关系一个实体对应着另一个实体,他们之间有主外键参照。一对一关系通常用于拆分一个实体的多个方面eg. 一名员工,对应着一个银行账户(用于公司发放工资)。一对一的设计,要求外键具有唯一性2.一对多关系有主外键参照关系,eg. 一名顾客的多个邮寄地址分两类,一类是紧密的关系(组合,composition),另一类是松散的(聚合,aggregation)紧密关系:一方被删除,多方无存在意义松散关系:一方被删除,多方仍存在3.多对多关系A 对应多个 BB 也对应多个 A无法用主外键建立,但可拆分为两个多对多关系数据库设计过程1.实体及其关系的识别通过描述,找到设计的事物名词,从中找到实体并确立他们之间的关系2.确定实体的属性确定原子性的列,列名,数据类型3.确定数据约束确定数据约束如唯一性不可空4.绘制实体关系图(entity-relation,e-r图)er图能从整体上看到实体间的关系5.建立数据字典是建立数据表及例程的依据举例例一:一对多客户 和 邮递信息客户属性编号: 用于区分客户(候选键列),字符串或整数姓名: 姓名,字符串,必填电话: 电话,字符串,必填邮递信息的属性编号: 用于区分每个记录,主键。省: 字符串,必填市(县): 字符串,必填详细地址: 字符串,必填
2024年07月21日
27 阅读
0 评论
0 点赞