MYSQL学习笔记(一)

突然想起来MarkDownPad里面还有点MYSQL的笔记,整合下发出来。


MySQL服务的启动和停止

  方式一:计算机--右击管理--服务
  方式二:通过管理员身份运行cmd
    net start mysql57
    net stop mysql57 
	mysql57替换成自己的就行

MySQL服务的登录和退出

   方式一:通过mysql自带的客户端
   只限于root用户
    
   方式二:通过windows自带的客户端
   登录:
   mysql 【-h主机名 -P端口号】 -u用户名 -p密码
   exit或ctrl+c

MySQL的常见命令

1.查看当前所有的数据库
show database
2.打开制定的库
use 库名
3.查看当前库的所有表
show tables;
4.查看其他库的所有表
show tables from 库名;
5.创建表
create table 表名(
   
       列名 列类型,
       列名 列类型,
       ...       
   );
6.查看表结构
desc 表名;

7.查看服务器的版本
方式一:登录到mysql服务器
select version();
方式二:没有登录到mysql服务器
mysql --version
或
mysql --V

MySQL的语法规范

1.不区分大小写,但建议关键字大写,表名,列名小写
2.每条命令最好用分号结尾
3.每条命令可以根据需要,可以进行缩进或换行
4.注释
    单行注释:#注释文字
	单行注释:-- 注释文字
	多行注释:/*注释文字*/  




3.查询所有字段
select * from 表名

4.查询常量
select 常量值
注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要

5.查询函数
select 函数名(实参列表)

6.查询表达式
select 100/1234

7.起别名
as
空格

8.去重
select distinct 字段名 from 表名

9.+
作用:做加法运算

select 数值+数值:直接运算
select 字符+数值:先试图将字符转换为数值,如果转换成功,则继续运算否则转换成0,再做运算
select null+值:结果都为null

10.【补充】concat函数
功能:拼接字符
select concat(字符1,字符2,字符3...);


11.【补充】ifnull函数
功能:判断某字段是否为null,如果为null 返回指定的值,否则返回原本的值

select ifnull(commission_pct,0)from exployees;


12.【补充】isnull函数
功能:判断某字段或表达式是否为null,如果是 返回1;否则返回0;



一、语法
select 查询列表
from	表明	
where 筛选条件

二、筛选条件的分类
1.简单条件运算符
> < = <> != >= <= <=> 安全等于

2.逻辑运算符
&& and
|| or
! not
3.模糊查询
like:一般搭配通配符使用,可以判断字符型或数值型
通配符:%任意多个字符,_任意多个字符


BETWEEN AND
IN
IS NULL/IS NOT NULL:用于判断null值
	
is null PK <=>
			普通类型的数值	null值	可读性
	is null      ×			√          √	
	<=>		     √          √          ×

排序查询

一.语法
	select 查询列表
	from   表
	where  筛选条件	
	order by 排序列表【asc升序||desc降序】

二.特点
	1.排序列表支持单个字段,多个字段,函数,表达式,别名
	2.order by的位置一般放在查询语句的最后(除limit语句之外)

排序函数

一.概述
	功能:类似java中的方法
	好处:提高重用性和隐藏实现细节
	调用:select 函数名(实参列表)

二.单行函数
	1.字符函数
		concat:连接
		substr:截取子串
		upper :变大写
		lower :变小写
		replace:替换
		length:获取字节长度
		trim  :去除前后空格
		lpad  :左填充
		rpad  :右填充
		instr :获取子串第一次出现的索引
	2.数学函数
		ceil  :向上取整
		round :四舍五入
		mod   :取模
		floor :向下取整
		truncate:截断
		rand  :获取随机数,返回0~1之间的小数
	3.日期函数
		now   :返回当前日期+时间
		year  :返回年
		month :返回月
		day   :返回日
		date_format:将日期转换成字符
		curdate:返回当前日期
		str_to_date:将字符转换成日期
		curtime:返回当前时间
		hour   :小时
		minute :分钟
		second :秒
		datediff:返回两个日期相差的天数
		monthname:以英文方式返回月
	4.其他函数
		version:当前数据库服务器版本
		database:当前打开的数据库
		user    :当前用户
		password('字符'):返回该字符的密码形式
		md5('字符')     :返回该字符的md5加密形式
	5.流程控制函数
		if(条件表达式,表达式1,表达式2):如果条件表达式1成立,返回表达式1,否则返回表达式2
		case情况 1
		case 变量或表达式字段
		when 常量1 then 值1
		when 常量2 then 值2
		...
		else 值n
		end
	 case情况 2
		case 
		when 条件1 then 值1
		when 条件2 then 值2
		...
		else 值n
		end
	
	

三:分组函数
	1.分类
		max 最大值
		min 最小值	
		sum 和
		avg 平均值
		count 计算个数

	2.特点

	语法
		selet max(字段) from 表名;

	支持的类型
		sum 和 avg一般用于处理数值型
		max,min,avg可以处理任何数据类型

	以上的分组都忽略null
	都可以搭配distinct使用,实现去重的功能
		select sum(distinct 字段) from 表

	count函数 
		count(字段):统计该字段非空值的个数
		count(*) :统计结果集的行数
	案例:查询每个部门的员工个数
	1.xx 10
	2.dd 20
	3.mm 20
	4.aa 40
	5.hh 40

	count(1):统计结果集的行数

	效率上:
		MyISAM存储引擎,count(*)最高
		InnoDB存储引擎,count(*)和count(1)效率>count(字段)

	和分组函数一同查询的字段,要求是group by 后出现的字段

分组查询

	一、语法
		select 分组函数,分组后的字段
		from 表
		【where 筛选条件】
		group by 分组的字段
		【having 分组后的筛选】
		【order by排序列表】
	二、特点
				使用关键字 	筛选的表		位置
	分组前筛选   where       原始表       group by的前面
	分组后筛选   having      分组后的结果  group by的后面	

连接查询

	一、含义
	当查询中涉及到了多个表的字段,需要使用多表连接
		select 字段1,字段2
		from 表1,表2,...;

	笛卡尔乘积:当查询多个表时,没有添加有效的连接条件,导致多个表所有行实现完全连接
	如何解决:添加有效的连接条件

	二、分类
	按年代分类:
		sql92:
				等值
				非等值
				自连接

				也支持一部分外连接(用于oracle,sqlserver,mysql不支持)
		sql98:
				内连接
					等值
					非等值
					自连接
				外连接
					左外
					右外
					全外(mysql不支持)
				交叉连接



待更新…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值