mysql学习笔记

启动与停止服务

net start mysql80
net stop mysql80

客户端连接

mysql -u root -p 

导入数据

-- 1.LOAD命令
mysql -u root -p --local-infile
set glonal local_infile = 1
LOAD DATA LOCAL INFILE 'D:\\launages\\learn mysql\\learn_sql\\data\\tb_sku1.sql' INTO TABLE tb_sku FIELDS TERMINATED BY ',' LINES TERMINATED BY '';
-- 2.mysql命令
mysql -u your_username -p -h your_host -P your_port -D your_database
-- 3.source命令
source D:/mysql/learn_sql/student.sql
-- 4.mysqlimport命令
mysqlimport -u root -p --local mytbl exp1.txt

导出数据

select * into outfile 'file1' from table_name where 
-- mysqldump导出整个数据库
mysqldump -u root -p mydatabases > mydatabase_backup.sql
-- 导出特定表
mysqldump -u username -p password -h hostname database_name table_name > output_file.sql
关键字建议使用大写

image.png

表操作–修改

-- 添加字段
alter table table_name add 字段名  类型  注释  约束
-- 修改数据类型
alter table 表名 modify 字段名 新数据类型
-- 修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型  约束
--删除字段
alter table 表名 drop 字段名
-- 修改表名
alter table 表名 reneme to 新表名

修改数据

update 表名 set 字段名1=值1,字段名2=值2,...[where 条件]
-- 删除表名
delete from 表名 where

查询数据

SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数

字段设置别名

SELECT 字段1 [ AS 别名1 ] , 字段2 [ AS 别名2 ] ... FROM 表名;
SELECT 字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... FROM 表名;

去除重复记录

SELECT DISTINCT 字段列表 FROM 表名

聚合 函数

SELECT 聚合函数(字段列表) FROM 表名 ;
count 
max
min
avg
sum

where与having区别

执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组
之后对结果进行过滤。
判断条件不同:where不能对聚合函数进行判断,而having可以。

分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
• 执行顺序: where > 聚合函数 > having 。
• 支持多字段分组, 具体语法为 : group by columnA,columnB

分组查询

SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组
后过滤条件 ]

排序查询

 SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1 , 字段2 排序方式2 ;
注意事项:
• 如果是升序, 可以不指定排序方式ASC ;
• 如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序 

分页查询

SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数 ;
查询第1页员工数据, 每页展示10条记录
select * from emp limit 0,10;
select * from emp limit 10;
起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。
• 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
• 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。

image.png

管理用户

select * from mysql.user;
2).创建用户
3). 修改用户密码
4). 删除用户
注意事项:
• 在MySQL中需要通过用户名@主机名的方式,来唯一标识一个用户。
1 CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
1 ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ;
1 DROP USER '用户名'@'主机名' 

权限控制

-- 查询权限
SHOW GRANTS FOR '用户名'@'主机名' ;
-- 授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名'
-- 撤销控制
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

image.png
image.png
image.png
image.png
函数需用:select
image.png

添加外键

CREATE TABLE 表名(
字段名 数据类型,
...
[CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名)
);

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名)
REFERENCES 主表 (主表列名) 

alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references
dept(id)

-- 删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

多表查询

-- 隐式内连接,相当于查询交集部分
select 字段 from table1,table2 where ...;
-- 显式内连接
SELECT 字段列表 FROM 表1 [ INNER ] JOIN 表2 ON 连接条件 ... ;
-- 左外连接:查询左表所有数据,以及两张表交集部分数据
SELECT 字段列表 FROM 表1 LEFT [ OUTER ] JOIN 表2 ON 条件 ... ;
-- 右外连接:查询右表所有数据,以及两张表交集部分数据
 SELECT 字段列表 FROM 表1 RIGHT [ OUTER ] JOIN 表2 ON 条件 ... ;
 -- 自连接,自连接必须使用表别名
 SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件 ... ;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值