MYSQL知识点

本文根据bilibili达内的大数据课程(BV1FQ4yR7SM)总结,受益匪浅。学习的比较慢,学完某块,我也会继续上传我的笔记

1、mysql基本概念
(1)数据库就是存储数据的仓库,可以按照一定的数据结构存储管理大量的数据及数据与数据之间的关系,它本质上是一种信息管理系统。常见有:层次式数据库、网络式数据库、关系型数据库。
(2)关系型数据库:即为建立在关系模型基础上的数据库。
(3)Oracle(收费)
SQLServer
Mysql(开源)
SQLite(轻量型数据库,安卓等)
2、SQL语言简介
(1)登录:mysql -u root -p(回车之后输入密码)
(2)error 1045(密码错误)
(3)SQL——Structured Query Language(结构化查询语言),是一种非过程性语言,核心在于操作者仅需要给出自己想要的结果。
3、操作数据库
(1)创建数据库:
eg:①创建一个名为mydb1的数据库:create database if not exists mydb1;(如果库不存在的话就创建)
②创建一个名为mydb2、utf-8字符集的数据库:create database if not exists mydb2 character set utf8;
③创建一个名为mydb3、utf-8字符集、并带校对规则的mydb3的数据库:create database if not exists mydb3 character set utf8 collate utf8_bin;
(2)查看数据库
显示所有数据库:show databases;
显示创建数据库语句:shou create database db_name;
(3)修改数据库:alter database db_name
eg:将数据库中mydb2的字符集修改为utf8:alter databse mydb2 character set utf-8;
(4)删除数据库:drop database db_name
eg:删除mydb1数据库:drop database if exists mydb1;
(5)选择数据库:use mydb3;
3、数据类型
(1)字符型:
varchar:变长的字符串,真实占用的空间取决于存入的字符数,目前占0-65535字节
char:定长字符串,目前占0-255字节
(2)大数据类型:
BLOB(binary large object):可以存入二进制类型的数据,可存储图片、音频、视频数据最大为4GB。
TEXT:可以存入大量的字符数据,最大为4GB
(3)数值型:
tinyint shortint int bigint float double
(4)逻辑型:
bit:只能保存0/1
(5)日期型:
DATE 1998-01-01
TIME 23:12:12
DATETIME 1998-01-01 23:12:12
TIMESTAMP 时间戳(自动更新时间为当前时间)
4、字段约束
(1)定义主键约束:通常每张表都会有一个字段或多个字段联合起来唯一标识表记录,这样的字段称为主键(PRIMARY KEY)
create table tb1{
id int primary key,
name varchar(20)
}
(2)唯一约束:如果需要指定某个字段的值不能重复,可以为该字段指定唯一约束(unique)
(3)非空约束:定义某个字段的值不可为空(not null)
(4)外键
5、表操作
(1)练习:创建一个employee表,字段为:id(整型)、name(字符型)、gender(字符型)、birthday(日期型)、entry_day(日期型
)、job(字符型)、salary(小数型)、resume(大文本型)。
create table employee{
id int primary key auto_increment,
name varchar(20) unique,
gender char(2) not null,
birthday date,
entry_day date,
job varchar(200),
salary double,
resume text
};
(2)查
查看表结构:desc tableName;
查看当前所有表:show tableName;
查看当前数据库建表语句:show create table tableName;
(3)改
增加一行:alter table tableName ADD 字段 类型;
修改一行:alter table tableName MODIFY 字段 类型;
删除一行:alter table tableName DROP 字段 类型;
修改表名:alter table old_name RENAME TO new_name;
修改列名称:alter table tableName CHANGE old_col_name new_col_name;
修改列顺序:alter table tableName MODIFY col_name1 datatype after col_name;
6、操作表记录
(1)增加:insert into tabname() values ();
(2)删除:DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]
(3)修改:update tableName set 内容 where 条件;
(4)表查询:
①基本查询:select * from tableName;
②where字句:select *** from tableName where 条件;
在这里插入图片描述

③想在table中寻找name字段带“繁”的一条:select table where name  like "%繁";
④想在table中寻找name字段姓张的一条:select table where name like "张_";

(5)排序查询:select column1 from tableName order by column asc(desc);(asc为升序,desc为降序)
(6)聚合函数:count、sum、avg、max、min
select count(列名) from tableName where 条件;
7、数据库的备份与恢复(注意箭头的方向)
(1)数据备份:mysqldump --u root -p db_name > d:/1.sql
例子:mysqldump -uroot -proot hxj > C:/Users/YanZifan/Desktop/test.sql
(2)恢复数据到库:
例子:mysql -uroot -proot hxj < C:/Users/YanZifan/Desktop/test.sql
8、多表设计
(1)概念:表与表之间往往存在着一定的关系,一对一表和表之间关系分三种,1对1、1对多、多对1。外键即可为其所用。
(2)对于1对1:可以在任何一方表中添加列,保存另外一张表的主键,来保存两张表之间的对应关系。
(3)对于1对多:可以在多的一方添加列保存1方的主键作为外键,来保存两张表之间的对应关系。
(4)对于多对多:创建一张新表,分别保存两张表的主键,保存两张表之间的对应关系。
9、外连接
现有表内容如下:
在这里插入图片描述

(1)知识点:
①是否拥有外键对于多表查询是没有差别的。
②笛卡尔积查询:表与表之间使用逗号连接,过滤条件由where规定
(2)例题:
①查询科技部所有员工的名称:
两次查询:select * from emp where dept_id = (select id from dept where name=“科技部”);
一次查询:SELECT * from emp,dept where dept.id = emp.dept_id and dept.name=“科技部”;
(3)内连接:
①select * from tb1[inner] join tb2 on tb1.id = tb2.dept_id;(与一次查询相同)
SELECT * from emp join dept on emp.dept_id = dept.id;
②left join: 返回包括左表中的所有记录和右表中联结字段相等的记录,如果右表中的没有对应数据,按null补充。
③right join: 返回包右表中的所有记录和左表中联结字段相等的记录,如果左表中的没有对应数据,按null补充。

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一阵风°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值