MySQL笔记

这篇博客详细介绍了MySQL的登录与退出、数据库和表的操作,包括创建、删除、修改以及查询。讲解了DDL(数据定义语言)用于数据库和表的管理,如创建数据库、修改表结构、删除表等。同时,也涵盖了DML(数据操纵语言)的使用,如插入、更新和删除数据。此外,还提到了查询语句(DQL)的基本语法,包括选择字段、应用条件、排序和分页。博客内容实用,适合初学者掌握MySQL基础操作。
摘要由CSDN通过智能技术生成

MySQL

登录

mysql -uroot -p1234  -- 登录
exit  //退出

注释

#不区分大小写,建议大写

/* 	多行
	注释 	*/ 
-- 内容   -- 单行注释
#单行注释

/*
	DDL 操作数据库或者表
	DML/DQL 对表中的数据增删改/查
	DCL 对数据库权限控制
*/

DDL

对数据库操作

show databases; #查询所有数据库

create database 数据库名称; #创建数据库
create database if not exists 数据库名称; #如果名为name的数据库不存在再创建

drop database 数据库名称; #删除数据库
drop database if exists 数据库名称; #同上

use 数据库名称; #使用(进入)数据库

select database(); #查询当前使用(所在)的数据库

对表操作

查询
show tables; #查询当前数据库的表

desc 表名称; 	#查询具体的表的机构信息
创建
create table 表名(
	名字1 数据类型1,
    名字2 数据类型2,
    ...
    名字n 数据类型n  -- 最后不加 逗号
);

数据表-数据类型

#名字 double(分数总长度最大值,小数点后保留位数)
#名字 int -- 直接用
#name char(最长字数)  固定占用最长字数存储 空间换时间
#name varchar(最长字数)  根据数据实际占用存储 时间换空间
删除
drop table 表名;
drop table if exists 表名;	
修改
alter table 原名字 rename to 新名字; #更改表名
alter table 表名 add 列名 数据类型; #添加新的列
alter table 表名 modify 列名 新数据类型; #修改某一列数据类型
alter table 表名 change 列名 新列名 新数据类型; #同时修改数据类型和列名
alter table 表名 drop 列名; #删除列

DML

添加数据

insert into 表名(列名1,列名2,...) values(值1,值2...); 
#给指定列添加数据 添加一行数据

insert into 表名 values(值1,值2...); 
#给所有数据添加数据

insert into 表名(列名1,列名2,...) values(值1,值2...),values(值1,值2...)..; 
#批量给指定列添加数据

修改数据

update 表名 set 列名1=值1,列明2=值2... where 条件;
-- 当where条件的时候 将对应列的数据改为值1..
#如果没有加where条件,则表中全部改变!

删除数据

delete from 表名 where 条件;
#如果没有加where条件,则表中全部删除!

DQL

select 
	字段列表
from 
	表格名称
where
	条件列表
group by
	分组字段
having
	分组后条件
order by
	排序字段
limit
	分页限定

基础查询

-- 查询特定列
select 列名1,列名2,... from 表格名

#去重 加distinct
select distinct 列名1,列名2,.. from 表格名

#取别名 可以不加as
select 	
	列名1 as 别名1,
	列名2 as 别名2,
	... 
from
	表格名
	
#查询所有列,但是不要用!
select * from 表格名 

条件查询

-- 查询范围在 范围1 和 范围2 之间的数据 
where between 范围1 and 范围2;
where between 列名 >= 范围1 and 列名 <= 范围2; #含义同上

-- 查询列中数值是否为括号中数值
where 列名 in (数值1,数值2,..) 
where 列名 = 数值1 or 列名 = 数值2 or .. ;

-- null 不能用等号和不等号判断,用is 或 is not
where 列名 is null;		#查询列中为null的
where 列名 is not null; 	#查询列中不是null的

-- 模糊查询
/* 	
	_: 代表单个任意字符
	%: 代表任意个数字符
*/
where 列名 like '%德%'; #此为查询名字包含'德'字的列中的内容

-- && = and
-- || = or
-- 日期类型 也是可以用 大小于号 比较的
-- 判断相等为 =,不是 ==
-- 不等号 != 或 <>

排序查询

-- 优先列名1 排列方式1,若相同则判断列名2 排列方式2..
select 列名 from 表名 order by 列名1 排序方式1,列名2 排序方式2, ..;

-- asc 	升序 	默认升序 
-- desc 降序

分组查询

聚合函数

将一列函数作为一个整体,进行纵向操作

image-20220901154017485

select 聚合函数名(列名) from 表名;

-- null 不参与聚合函数计算

select count(*) from 表名;  #查询表中数量
分组查询
-- having 是聚合操作完以后 再进行数据的筛选
select 列名,聚合函数 from [where 分组前条件限定]表名 group by 列名 [having 分组后条件过滤];

分页查询

select 字段名 from 表名 limit 起始索引,查询条目数  -- limit 是MySQL特有的 

约束

普通约束

​ 对一列的数据进行有约束

-- MySQL不支持检查约束

-- 默认约束 是只有不给字段添加任何值的时候才行,如果给了null,那么就是null

image-20220903152501427

外键约束

-- 先创建主表 再创建子表
-- 创建表的时候加外键约束
create table 表名(
	列名 数据类型,
    ...
    [constraint] [外键名称] foreign key(外键列名) references 主表(主表列名)

);
-- 创建表后添加外键约束
alter table 表名 add constraint 外键名称 foreign key(当前表要添加列名) references 主表名称(主表列名称);
-- 删除约束 
alter table 表名 drop foreign key 外键名称;

数据库设计

表关系

​ 一对多,多对多,一对一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值