MySql数据库
whyfail
编程界崇尚以简洁优雅为美,很多时候,如果你觉得一个概念很复杂,那么很可能是你理解错了!
展开
-
MySQL之三大范式
必须保证数据库设计的合理性数据库设计关系整个系统的架构,关系到后续的开发效率和运行效率数据库的设计主要包含了设计表结构和表之间的联系如何是合理数据库结构合理冗余较小尽量避免插入删除修改异常如何才能保证数据库设计水平遵循一定的规则在关系型数据库中这种规则就称为范式什么是范式(NF= Normal Form)范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必...原创 2019-12-17 20:52:14 · 600 阅读 · 1 评论 -
MySQL之权限管理
1.查看权限 语法:show grants for 'username'@'hostname' 例如:查看root用户的权限 show grants for 'root'@'localhost'2.授予权限 语法:grant 权限类型1,权限类型1.... on 数据库名.表 to 'username'@'hostname' [,'usern...原创 2019-12-17 20:45:00 · 237 阅读 · 0 评论 -
MySQL之用户管理
用户管理1.用户的登录 语法:mysql -h hostname -p port -u username -p dbname -e -h hostname:指定要连接MySQL的主机名或者ip hostname就是具体的主机名或者ip的值 -p port :指定要连接MySQL的端口 默认的端3306 -u username:连接数据库的用户名 -p :提示连接时候要输入...原创 2019-12-17 19:55:32 · 76 阅读 · 0 评论 -
MySQL之视图
视图的简介1.视图的概念视图是从一张或者多张表及或者其他视图中查询的结果构建出来的虚拟表同表一样由一系列的行和列组成数据库中只存放视图的定义,查询的数据并不放在视图中,这些数据依然存放在表中数据库中表的数据发生变化,视图中相应的数据也会发生变化2.为什么要使用视图a.视图能简化用户的操作将复杂的查询创建成视图,查询时直接使用查询视图,大大简化了用户的操作难度b.视图可以对机密数据...原创 2019-12-17 19:47:15 · 233 阅读 · 0 评论 -
MySQL之事物
事物的简介1.事物的概念事物是一个操作序列,该序列中的多个操作要么都做,要么都不做是MySQL5.5之后的存储引擎所支持2.事物的特点a.原子性原子是自然界中最小的颗粒,具有不可再分的特点事物中的所有操作可以看作是一个原子,要么全部执行,要么全不执行b.一致性事物执行的结果必须要保证数据库中数据的一致性c.隔离性隔离性指各个事物的操作是互不干扰的,任意一个事物的内部操作都对其...原创 2019-12-17 19:35:58 · 81 阅读 · 0 评论 -
MySQL之多表查询3
1.列出至少有四位员工的所有部门信息1.查询每个部门的人数 select deptno,count(*) from emp group by deptno2.至少有四位 select deptno,count(*) from emp group by deptno having count(*)>43.部门信息 select d.*,dd.cou ...原创 2019-12-17 17:53:31 · 495 阅读 · 0 评论 -
MySQL之多表查询2
子查询子查询是 MySQL4.1 提供的新功能,在此之前需要使用表的连接查询来实现子查询的功能。在多数情况下,表的连接查询可以优化子查询效率较低的问题。所谓子查询是指将一个查询(内层查询)语句嵌套在另外一个查询(外层查询)语句中,内层查询语句的结果为外层查询语句提供查询条件,内层查询要先于外层循环执行。标量子查询标量子查询指的是子查询(内层查询)返回的结果是一个单一值的标量,如一个数字或者...原创 2019-12-17 17:49:06 · 146 阅读 · 0 评论 -
MySQL之多表查询1
交叉连接查询交叉连接(CROSS JOIN)是对两个或者多个表进行笛卡儿积操作,所谓笛卡儿积就是 关系代数里的一个概念,表示两个表中的每一行数据任意组合的结果。比如:有两个表,左 表有 m 条数据记录,x 个字段,右表有 n 条数据记录,y 个字段,则执行交叉连接后将返回 m*n 条数据记录,x+y 个字段。交叉连接查询使用的是 CROSS JOIN 关键字,语法:select * fro...原创 2019-12-17 17:08:28 · 410 阅读 · 2 评论 -
MySQL之having语句
having语句1.语法: select 查询内容 from 表名 [where 条件] [group by 分组字段] [having 条件] [order by] select from --where过滤---group by--having过滤 2.使用举例 a.每个部门不同岗位的人数,且人数大于2 select coun...原创 2019-12-12 14:07:58 · 374 阅读 · 0 评论 -
MySQL之分组统计
分组统计1.语法:select 查询内容from 表名[where 条件][group by 分组字段名1,分组字段名2…][order by 字段名 asc|desc][limit]2.使用举例a.求每个部门的人数select deptno,count(*) from emp group by deptno;b.求每个部门的平均工资select deptno,avg(s...原创 2019-12-12 14:04:58 · 841 阅读 · 0 评论 -
MySQL之多行函数的使用
多行函数概念:操作一组数据(多行记录) 返回一个结果 也叫分组函数多行函数主要有 (1)count()统计表中记录的数目 count()的使用 a.统计表中记录的总数目count(*) 例如查询雇员表中有多少条记录 select count(*) from emp; b.count(exp)统计exp值非空的记录数目 例如:...原创 2019-12-12 14:03:26 · 726 阅读 · 0 评论 -
MySQL之单行函数的使用
字符函数a.字符函数 (1)concat() 拼接字符串 例如:SELECT CONCAT('地点:',城市或地区,' 人口:',人口(万人),'万人') FROM sheet1; (2)length()计算字符串的长度 例如:SELECT * FROM sheet1 WHERE LENGTH(人口(万人))=6; (3)lower() uppe...原创 2019-12-12 13:59:44 · 109 阅读 · 0 评论 -
MySQL之分页查询
分页查询语法: select 查询内容 from 表名 where 条件 order by 字段名 asc|desc limit a,b (a 表示从第几条记录开始,b 表示显示几条记录) 注意: 1.limit 从哪条记录开始, 每页显示的条数 且 默认第一条的值0 2.如果limit与order by连用时候,先排序再...原创 2019-12-11 15:36:56 · 58 阅读 · 0 评论 -
MySQL之条件查询
条件查询 条件查询:是用户按照一定条件查询,查询满足条件的部分记录 语法:select 查询内容 from 表 where 条件1.比较运算符的使用 = > < >= <= != <>注意:MySQL默认的是不区分大小写的,如果需要区分大小写,则可以使用binary关键字2.[not]between and的使用 ...原创 2019-12-11 15:30:20 · 106 阅读 · 0 评论 -
MySQL之查询结果排序
查询结果排序升序默认的排序方式: 升序 asc 降序 desc 1.在单个字段中排序 语法:select 查询内容 from 表名 order by 字段 asc|desc 2.在多个字段中使用排序 语法:select 查询内容 from 表名 order by 字段名1 asc|desc,字段名2 asc|desc... 注意:排...原创 2019-12-11 15:29:18 · 172 阅读 · 0 评论 -
MySQL之单表查询
单表查询1.查询所有字段 语法:select 字段名1,字段名2... from 表名 2.使用通配符*查询所有字段 语法:select * from 表名3.查询指定字段 语法:select 字段名1,字段名2... from 表名4.去重distinct的使用 语法:select distinct 字段名1,字段名2 ...from 表名 disti...原创 2019-12-11 15:28:52 · 68 阅读 · 0 评论 -
MySQL之删除数据
删除数据1.删除指定数据 语法:delete from 表名 where 条件2.删除全部数据 语法:delete from 表名 3.truncate关键字删除数据 语法: truncate 表名 truncate与delete删除全部记录的区别1.delete是数据操纵语言DML 而truncate是数据定义语言DDL2.delete删除数据是一条一条删...原创 2019-12-11 14:23:38 · 105 阅读 · 0 评论 -
MySQL之更新数据
更新数据1.更新指定数据 语法:update 表名 set 字段名1=值1 [,字段名2=值2....] where 条件2.更新全部数据 语法:update 表名 set 字段名1=值1 [,字段名2=值2....] ...原创 2019-12-11 14:21:15 · 59 阅读 · 0 评论 -
MySQL之插入数据
插入数据1.为所有字段插入数据 语法:insert [into] 表名[(字段名1,字段名2,字段名3,....)] values|value(值1,值2,值3....); 注意:表后面可以加字段名也可以不加字段名,如果没有添加字段名则插入的值顺序要与表结构字段顺序相同 2.为指定字段插入数据 语法:insert [into] 表名(字段名1,字段名2,字段...原创 2019-12-11 14:20:17 · 183 阅读 · 0 评论 -
MySQL之创建索引
创建索引(1)自动创建索引 如果在创建表时,给表添加了主键约束和唯一约束, MySQL数据库会自动为主键约束和唯一约束创建对应的主键索引和唯一索引 查询表中的索引 语法:show index from 表名 (2)手动创建索引 a.创建表时创建索引 1.创建普通索引 语法: create table 表名( 字段...原创 2019-12-10 15:29:04 · 158 阅读 · 0 评论 -
MySQL之索引的简介
索引的简介1.索引的概念是数据库对象,实现数据库快速查询2.为什么使用索引实现数据库快速查询,提高查询速度3.索引的分类a.普通索引最基本的索引,对字段数据的类型和值没有任何限制,数据类型可以任意,字段的值可以空也可以重复b.主键索引给主键字段添加的索引主键特点:非空且唯一c.唯一索引给唯一字段添加的索引 唯一索引和主键索引的区别: 唯一索引:只有唯一 可以有空值...原创 2019-12-10 14:15:39 · 71 阅读 · 0 评论 -
MySQL之外键约束
外键约束(foreign key)外键:某一张表中某字段的值依赖于两一张表中某字段的值主要实现了数据库中的参照完整性将两张表紧密结合,对某张表修改或者删除时候,要保证数据的完整例如:班级(t_class) 学生(t_student) 关系 1:n(1)创建外键约束 注意:虽然MySQL提供了列级添加外键约束,但添加完后不会生效,所以使用表级添加外键约束 语法:create t...原创 2019-12-10 13:56:01 · 177 阅读 · 0 评论 -
MySQL之自动增长约束
自动增长约束指:表中某字段的值会自动增加注意:1.一张表中只能有一个自动增长的字段2.配合主键一起使用 并且只适用于整数类型3.自动增长默认的初始值1,每增加一条记录,该字段的值会增加1(1)创建表时候创建自动增长约束 语法:create table 表名( 字段名 字段类型 auto_increment ) (2)给已有表添加自动增长约束...原创 2019-12-10 13:32:37 · 1970 阅读 · 0 评论 -
MySQL之默认值约束
默认值约束指在没有对某字段插入具体值时候会去默认的值注意:1.只能使用列级约束2.对于使用默认值约束,如果插入的数据为“null”,则不会使用默认值,只有没有插入数据时候,才会使用默认值 (1)列级添加默认值约束 语法:create table 表名( 字段名 字段类型 default value ) (2)给已有表添加默认值约束 语法: alter...原创 2019-12-10 13:30:37 · 1731 阅读 · 0 评论 -
MySQL之非空约束
非空约束指:表中字段的值不能重复(1)列级添加唯一约束 语法:create table 表名( 字段名1 字段类型1 unique, 字段名2 字段类型2, ..... 字段名n 字段类型n)(2)表级添加唯一约束 语法:create table 表名( 字段名1 字段类型1 unique, ...原创 2019-12-10 13:25:54 · 2070 阅读 · 0 评论 -
MySQL之唯一约束
唯一约束指表中字段的值不能重复。(1)列级添加唯一约束 语法:create table 表名( 字段名1 字段类型1 unique, 字段名2 字段类型2, ..... 字段名n 字段类型n); (2) 表级添加唯一约束 语法:create table 表名( 字段名1 字段类型1 unique, ...原创 2019-12-09 21:22:15 · 664 阅读 · 0 评论 -
MySQL之表的删、改、查
查看表# 查看表的基本结构语法:desc 表名;# 查看表的详细结构(还可以查看存储引擎和字符集)语法:show create table 表名;修改表结构# 修改表名语法:alter table 旧表名 rename 新表名;# 修改字段数据类型语法:alter table 表名 modify 列名 新字段类型;# 修改多个字段的数据类型语法:alter table...原创 2019-12-09 20:12:13 · 65 阅读 · 0 评论 -
MySQL之创建表
基本概念数据库和表的关系每个数据库包含n张表,及表示在库中。表(二维表)行和列组成:可以将复杂的数据保存到简单的表中。表中的每一行就是一条完整的记录。表中的列用于保存每条记录中特点的信息。创建表语法:create table 表名( 字段名1 字段类型1 [完整性约束], 字段名2 字段类型2 [完整性约束], ...... 字段名3 字段类型3 [完...原创 2019-12-09 17:18:01 · 109 阅读 · 0 评论 -
MySQL之数据库操作
创建数据库语法: crease database 数据库名;查看数据库# 查看所有数据库语法:show database;# 查看某一个数据库的创建信息语法:show crease database 数据库名;修改数据库语法:alter database 数据库名 character set 新编码;删除数据库注意:数据库一旦删除,则数据库中的表和数据都会被一同删除...原创 2019-12-09 17:00:00 · 139 阅读 · 0 评论 -
MySQL之数据类型
数据类型指创建表是给数据指定的类型常用的数据类型1、数值类型整数1、int 范围四个字节,使用int(m)2、bigint 范围8个字节浮点类型1、单精度float 范围4个字节2、双精度double 范围8个字节使用double(m,d) 其中m表示纵位数(整数位+小数位),d表示小数位数。3、定点数类型decimal特点存储时候非常精确,多数用于金钱使用decimal...原创 2019-12-09 16:44:08 · 92 阅读 · 0 评论