MySQL基础学习笔记(带目录)

本文详细介绍了MySQL的基础知识,包括安装、启动、登录、退出等操作,以及查询、条件筛选、排序、函数和存储过程等内容。还深入探讨了事务处理、索引优化、分页查询和多表连接等高级特性,适用于初学者和进阶者提升MySQL技能。
摘要由CSDN通过智能技术生成

MySQL产品的介绍和安装

MySQL服务的启动和停止

方式一:计算机--右击管理--服务
方式二:通过管理员身份运行
net start 服务名
net stop 服务名

MySQL服务的登陆和退出

方式一:通过MySQL自带的客户端
只限于root用户
方式二:通过windows自带的客户端即命令行
登陆 :mysql  -h 主机名 -P端口号 - u用户名(连接远程服务器)
			mysql  -u用户名(本机)

MySQL的常见命令

1.查看当前所有的数据库
show databases;
2.打开指定的库
use 库名;
3.查看当前库的所有表
show tables;
4.查看其他库的所有表
show tables from 库名;
5.创建表
create table 表名(
		列名 列类型,
		列名 列类型
);
6.查看表结构
desc 表名;
7.查看服务器版本
mysql服务器中:select version();
命令行中:  mysql -version

MySQL的语法规范

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

MySQL基础查询

1.起别名

1.便于理解
2.当查询的字段有重名的情况,用别名可以区分开来

SELECT 100%98 AS 结果;
若别名里有特殊字符,需要将别名用双引号
SELECT salary AS “out put” FROM xxxxx;

2. 去重distinct

SELECT DISTINCT salary FROM xxxx;

3.+号的作用

与java中不一样,mysql中只有运算符的作用,若两边有一边为字符型,则试图将字符型转换为
数值型,若转换成功,则继续做加法运算,若失败则将其变成0
特殊 :SELECT null +10;只要两边有一个null,结果一定都是null。

4.CONACAT()函数拼接字符串

SELECT CONCAT(a,b,c) AS 结果 FROM xxxxx;

5.IFNULL()函数改变数据格式

SELECT IFNULL(A,0) AS xxx FROM xxxx ;
如果A列中有null值,就将查询结果中的null替换成0;

MySQl条件查询

语法:

select 查询列表
from 表名
where 筛选条件

语句执行顺序:

1.from语句,找到一个大表
2.where语句,找到符合条件的每一行构成一个小表
3.select语句,查询小表中的选定列

筛选的特点

1.按关系表达式筛选
关系运算符 : > < >= <= =
2.按逻辑表达式筛选
逻辑运算符: and or not
3.模糊查询

  1. like:一般和通配符搭配使用,对字符型数据进行部分匹配查询
    常见的通配符:
    _ 任意单个字符
    %任意多个字符
    案例1:查询姓名中含a的员工信息
    select *
    from employees
    where last_name like ‘%a%’;
    案例2:查询姓名第二个字符为’_'的员工信息
    select *
    from employees
    where last_name like ‘--%’; (特殊字符需用 ’ \ ’ 转义)

  2. in :查询某字段的值是否属于指定的列表之内
    in (常量值,常量值,常量值,…);
    in / not in ;
    案例1: 查询部门编号不是30/50/90的员工名,部门编号
    select last_name , department_id
    from employees
    where department_id NOT IN (30,50,90);

  3. between and : 判断某个字段是否介于xx之间
    案例:
    select department_id ,last_name
    from employees
    where department_id BETWEEN 30 AND 90;

  4. is null / is not null:查询值为null的字段,因为null不能用 = 号判断
    案例1:查询没有奖金的员工信息
    select *
    from employees
    where commission_pct IS NULL
    拓展:
    = 只能判断普通的内容
    IS 只能判断NULL值
    <=> 都能判断,但是最好别用

MySQl排序查询

语法:
select xx
from xx
where xx( 可没有)
order xx;
执行顺序:
1.from
2.where
3.select
4.order
案例1:将员工编号 >120的员工信息进行工资的升序
select *
from employees
where employees_id > 120
order by salary ;
案例2:将员工编号 >120的员工信息进行工资的 降序
select *
from employees
where employees_id > 120
order by salary DESC;

常见函数

1.自定义函数(MySQL高级)
2.调用函数

字符函数

1.CONCAT拼接函数
2.LENGTH获取字节长度
3. CHAR_LENGTH获取字符个数
4. SUBSTR 截取子串
/* 注意:起始索引从1开始!!!
SUBSTR(str,起始索引,截取的字符串长度);
SUBSTR(str,起始索引)表示到结束;
*/
select SUBSTR(‘张三丰爱上了郭襄’,1,3); 结果:张三丰;
select SUBSTR(‘张三丰爱上了郭襄’,7); 结果 : 郭襄;
5:INSTR获取字符第一次出现的索引
INSTR (‘母字符串’,‘子字符或子字符串’)

6.TRIM去除前后指定的字符,默认是去空格
SELECT TRIM (’ 爱得起打 ');
SELECT TRIM( ‘x’ FROM ‘xxxxxxadqaxxxxx’ )去除x;

7.LPAD/RPAD 左填充/右填充
SELECT LPAD(‘xx’ , 指定的字符长度 , ‘指定填充的字符’);
SELECT LPAD('木婉清 ’ , 10 , ’ a ’ ); 结果 :aaaaaaa木婉清;
8. STRCMP 比较两个字符大小;
SELECT STRCMP(‘aaaa’,‘abbc’) ; 结果 :-1;
9.LEFT / RIGHT从左从右截取子串
SELECT LEFT(str, len );

数字函数

1.abs
2.ceil : 向上取整,返回 >=该参数的最小整数
3.floor :向下取整
4.round :四舍五入
round (x);
round(x,保留小数点后几位);
5.truncate: 截断
truncate(x,保留小数点后几位);
6.MOD 取余

日期函数

1.NOW :获取当前时间
2.curdate :获取当前日期
3.curtime :获取当前时间
4.datediff :获取两个时间的差值
5.date_format: 类似与java的simpledateformat
案例:select date_format(‘1998-7-16’ , '%Y年 %m月%d日);
结果:1998年7月16日;
案例:select date_format( hiredata , '%Y年 %m月%d日);
6.str_to_date按指定格式解析字符串为日期类型
STR_TO_DATE(‘3/15 1998’ , ’ %m/%d %Y ');

流程控制函数

1.IF函数
SELECT IF(100>9, ‘好’ ,‘坏’);
需求:如果有奖金,则显示最终奖金,如果没有,则显示0
select IF(commission_pct IS NULL , 0 , salary 12commission_pct ) as 奖金 ;

2.CASE函数
用法1:类似与Java中的switch case ;
CASE 表达式
WHEN 值1 THEN 结果1
WHEN 值2 THEN 结果2
WHEN 值3 THEN 结果3
ELSE 结果4
END
用法2:类似与java多重if语句,实现区间判断
CASE
WHEN 条件1 THEN 结果1
WHEN 条件2 THEN 结果2
。。。
ELSE 结果N
END

分组函数

分组函数常常用于实现将一组数据进行统计计算,最终得到一个值࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值