MySQL基本操作(自用)

一、如何启动MySQL

Win + R 调用出命令提示符,想要启动mySQL,却显示拒绝服务

解决方法

方法1:win + R + services.msc 调出服务面板 - 找到MYSQL - 右键属性 - 启动即可

缺点:每次使用都要手动操作

方法2:以管理员身份打开命令窗口,再次输入net start mysql

二、MySQL基本操作

登录数据库账号

mysql -h 主机名 -P 端口号 -u 用户名 -p密码

【建议使用】mysql -h localhost -P 3306 -u root -p

1.对数据库 database 的操作

        ①查看数据库

show databases; //显示当前的数据库

        注意事项:
        ✅1.查看命令的show和databases中间有空格!
        ✅2.是databases不是database,有s哦!
        ✅3.使用英文符号的分号结尾,客户端任意一个sql语句都是用的这个结尾!
        ✅4.mysql中允许分行,只要没分号结束就可以继续写

        ②.创建数据库

create database [数据库名] //创建数据库命令

        ③备份数据库

mysqldump -u 用户 -p 密码 数据库 表1 表2 表n > d:\\文件名.sql 

        ④对数据库的增删改操作

#修改表的操作练习
--  员工表emp的上增加一个image列,varchar类型(要求在resume后面)。
ALTER TABLE emp 
	ADD image VARCHAR(32) NOT NULL DEFAULT '' 
	AFTER RESUME
DESC employee -- 显示表结构,可以查看表的所有列
--  修改job列,使其长度为60。
ALTER TABLE emp 
	MODIFY job VARCHAR(60) NOT NULL DEFAULT ''
--  删除sex列。
ALTER TABLE emp
	DROP sex
--  表名改为employee。
RENAME TABLE emp TO employee
--  修改表的字符集为utf8 
ALTER TABLE employee CHARACTER SET utf8
--  列名name修改为user_name
ALTER TABLE employee 
	CHANGE `name` `user_name` VARCHAR(64) NOT NULL DEFAULT ''
DESC employee

2.CURD 数据的增删改查

        ①增加 INSERT

        !!! 字符和日期类型应该包括在单引号中

        ②删除 DELETE

        

        ③修改 UPDATE

        ④查找 SELECT

like 操作符中:

  • 百分号(%):在 LIKE 中,百分号代表零个、一个或多个字符的通配符。当你在模式中使用 % 时,它可以匹配任意长度的字符串。
    例如,
    LIKE 'J%' 可以匹配以 "J" 开头的任何字符串,比如 "John"、"Jane" 等。
  • 下划线(_):下划线在 LIKE 中表示一个单个字符的通配符。当你在模式中使用下划线时,它可以匹配任何单个字符的位置。
    例如,
    LIKE 'J___' 可以匹配以 "J" 开头且长度为4的字符串,比如 "John"。
        1)ORDER BY语句

  

        2)分页查找 LIMIT

-- 第1页
SELECT * FROM emp 
	ORDER BY empno 
	LIMIT 0, 3;
-- 第2页
SELECT * FROM emp 
	ORDER BY empno 
	LIMIT 3, 3;
-- 第3页
SELECT * FROM emp 
	ORDER BY empno 
LIMIT 6, 3;
         3)分组函数 GROUP BY 和 分组子句 HAVING

1.Group by 与 having的区别

Group by对原始数据进行分组

Having 对存储的结果进行过滤

2.如果select语句中同时有group by , having , limit ,  order by , 则其执行顺序是group by , having ,  order by , limit  

        4)多表查询 笛卡尔积

自连接:

        1. 把同一张表当做两张表使用

        2. 需要给表取别名 表名  表别名 

        3. 列名不明确,可以指定列的别名 列名 as 列的别名

SELECT worker.ename AS '职员名' ,  boss.ename AS '上级名'
	FROM emp worker, emp boss
	WHERE worker.mgr = boss.empno;
SELECT * FROM emp;

        

any 和 all

all

表示所有

any

表示任意一个

-- all的使用
-- 找到30号部门所有员工的薪水
-- 从emp表中查询 薪水比所有的30号部门薪水都大的薪水
SELECT ename, sal, deptno FROM emp
WHERE sal > ALL( 
  SELECT sal FROM emp WHERE deptno = 30
  )

-- any的使用
-- 显示工资比部门30的其中一个员工工资高的员工姓名、工资和部门号
SELECT ename, sal, deptno FROM emp
WHERE sal > ANY(SELECT sal FROM emp WHERE deptno = 30)  

        

返回多列

SELECT * 
	FROM emp
	WHERE (deptno , job) = (
		SELECT deptno , job
		FROM emp 
		WHERE ename = 'ALLEN'
) AND ename != 'ALLEN'

 表复制

合并查询 union 和 union all

union合并多个select语句 会去重
union all合并多个select语句 不会去重

 

-- union all 就是将两个查询结果合并,不会去重
SELECT ename,sal,job FROM emp WHERE sal>2500
UNION ALL
SELECT ename,sal,job FROM emp WHERE job='MANAGER'

-- union  就是将两个查询结果合并,会去重
SELECT ename,sal,job FROM emp WHERE sal>2500
UNION 
SELECT ename,sal,job FROM emp WHERE job='MANAGER'

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值