MySql数据库的使用1 常用函数,操作库、表,增删改查

数据库存储数据的特点

1.将数据放到表中,表再放到库中。

2.一个数据库中可以有多个表,每个表都有一个唯一的名字,用来标识自己,表明具有唯一性

3.表具有一些特性,这些热性定义了数据在表中如何存储,类似java中“类”的设计。

4.表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似java中的“属性”

5.表中的数据是按行存储的,每一行类似于java中的对象。

 

MySQL服务的启动和停止

方式一:计算机-右击管理-服务

方式二:通过管理员身份运行

net start 服务名(启动服务)

net stop 服务名(停止服务)

 

MySQL服务的登录和退出

方式一:通过mysql自带的客户端

只限于root用户

方式二:通过window自带的客户端

登录: mysql【- h主机名  -P端口号】 -u用户名 -p密码

退出:exit或Ctrl+c

select 

特点:

1.查询列表可以是:表中的字段、常量值、表达式、函数

2.查询的结果是一个虚拟的表格

 

给列起别名:

方式一:使用AS

如果别名中有特殊符号

去重:DISTINCT

“+”的作用:

concat连接字段名:

DESC 表名:查看表结构。

IFNULL:如果为空:

LIKE:模糊查询,,有特殊符号,需要自定义转义符(escape)

between and:

1.可以提高语句的简洁度

2.包含临界值

3.两个临界值不可以调换顺序

in:判断某字段的值是否属于in列表中的某一项

特点:

1.使用in提高语句简洁度

2.in列表的值类型必须一致或兼容

‘123’  123

IS NULL:

=<>不能用于判断null值

is null 或者 is not null 可以判断null值

IS NULL VS <=>:

IS NULL:仅仅可以判断NULL值,可读性较高,建议使用

<=>     :既可以判断NULL,又可以判断普通的数值,可读性较差。

order by:按照某字段排序

 

常见函数:将一组逻辑语句封装到方法体中,对外暴露方法名

好处:1、隐藏了实现细节。2、提高代码的重用性

调用:select 函数名(实参列表) 【from 表】;

分类:单行函数:如 concat、length、ifnull等

2、分组函数

功能:做统计使用

 

upper&&lower

substr&&substring

注意:索引从1开始

instr:返回子串第一次出现的索引,如果找不到返回0

trim:去掉字符串前和字符串后的空格或指定字符

lpad:用指定的字符实现左填充指定长度

rpad:用指定的字符实现右填充指定长度

replace:替换

数学函数:

round:四舍五入

ceil:向上取整,返回>=该参数的最小整数

floor:向下取整,返回<=该参数的最大整数

truncate:截断

mod:取余

日期函数:

now:返回当前系统日期+时间

curdate:返回当前系统日期,不包含时间

curtime:返回当前时间,不包含日期

str_to_date 将字符通过指定的格式转换成日期

流程控制函数:

if函数:if else 的效果

case的两种用法:

count函数详细介绍:

特点:

sum、avg一般用于处理数值型

max、min、count可以处理任何类型

2、以上分组函数都忽略null值

3、可以和distinct搭配实现去重的运算

4、count函数的单独介绍

一般使用count(*)用作统计行数

5、和分组函数一同查询的字段要求时group by后的字段

round:四舍五入并保留x位小数

difference:差距

group by分组:

having:用于分组后的条件筛选

特点:

1、分组函数做条件肯定是放在having字句中

2、能用分组前筛选的,就优先考虑用分组前的筛选

3、group by字句支持单个字段分组,多个字段分组(多字段用逗号隔开没有顺序要求),表达式函数

4、也可以添加排序(排序放在整个分组查询的最后)

 

连接查询:

又称多表查询,当查询的字段来着于多个表时,就会用到连接查询笛卡尔积现象:表1有m行,表2有n行,结果=m*n行

发生原因:没有有效的连接条件

避免:添加有效的连接条件

where

group by

having

order by

limit

等值连接,自连接:

表起了别名,select后也只能用别名

内连接:

特点:1、添加排序、分组、筛选

2、inner可以省略

3、筛选条件放在where后面,连接条件放在on后面,提高分离性,便于阅读

4、inner join连接和sql192语法中的等值连接效果是一样的,都是查询多表的交集

非等值内连接:

外连接:

应用场景:用于查询一个表中有,另一个表中没有的记录

特点:

1、外连接的查询结果为主表中的所有记录

           如果从表中有和和它匹配的,则显示匹配的值

           如果从表中没有和和它匹配的,则显示null

           外连接查询结果=内连接结果+主表中有而从表中没有的记录

2、左外连接,left join左边的是主表

     右外连接,right join右边是主表

3、左外连接和右外交换两个表的顺序,可以实现同样的效果

 

左外连接和右外连接实例:

子查询:

比较子查询:IN/NOT IN    EXISTS/NOT EXISTS

分页:

联合查询:union    合并:将多条查询语句的结果合并成一个结果

用于:要查询的结果来自多个表,且多个表没有直接的连接关系,但查询的信息一致

特点:1、要求多条查询语句的查询列数是一致的

2、要求多条查询语句查询的每一列的类型和顺序最好一致

 

insert插入的两种方式:

方式一支持子查询和多行查询

方式二不支持

 

修改表中记录:

修改多表的记录:

多表的删除:

delete PK truncate

1、delete可以加where条件,truncate不可以

2、truncate效率高一点点

3、假如删除的表中有自增长

delete删除,再插入数据,自增长从断电开始,truncate从1开始

4、truncate没有返回值,delete删除有返回值

5、truncate删除不能回滚,delete删除可以回滚

 

库的管理:

创建库:

库名的修改:

更改库的字符集:

库的删除:

创建表:

修改列名:

修改列的类型或约束:

添加新列:

删除列:

修改表名:

 

复制表结构:

仅仅复制表的结构:

复制表的结构+数据:

复制部分数据:

 

整型:tinyint    smallint    mediumint  in/integer   bigint

如果设置无符号的需要加上 unsigned关键字

如果不够最大宽度,左边用零填充,必须搭配zerofill使用

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值