【MySQL笔记】

一级目录

二级目录

三级目录

一、基本的SQL语句

1.SQL的分类

  1. DDL:数据定义语言。CREATE \ ALTER \ DROP \ RENAME \ TRUNCATE
  2. DML:数据库操作语言。INSERT \ DELETE \ UPDATE \ SELECT (重中之重)
  3. DCL:数据控制语言。COMMIT \ ROLLBACK \ SAVEPOINT \ GRANT \ REVOKE

2.创建和管理数据库

查看数据库:
== show databases; ==
在这里插入图片描述
查看创建的数据库:
== show create database test; ==
在这里插入图片描述
改utf8mb3是自己设置的字符集

显示了指明了要创建的数据库的字符集
create database test2 character set ‘gbk’;

切换数据库:
use test;
在这里插入图片描述
查看当前数据库中保存的数据表
show tables;
在这里插入图片描述
查看当前使用的数据库:
select database() from dual;
在这里插入图片描述
查看指定数据库下保存的数据表:
show tables from ssm;
在这里插入图片描述

3.修改数据库

更改数据库字符集:
alter database test character set ‘utf8’;

4.删除数据库

  1. 方式1:drop database test;
  2. 方式2:drop database if exists test; #(如果要删除的数据库存在,则删除成功。如果不存在,则默默结束,不会报错。)

5.如何创建数据表

use test;

show create database test;

#方式1:
create table if not exists myemp1(
	id int,
	emp_name varchar
)

6.修改表

  1. 添加一个字段:
alter table myemp1
add salary double(10,2);
  1. 修改一个字段:数据类型、长度、默认值(略)
alter table myemp1
modify emp_name varchar(25) default '默认值';
  1. 重命名一个字段:
alter table myemp1
change salary monthly_salary double(10,2);
alter table myemp1 
change email my_email varchar(50);
  1. 删除一个字段:
alter table myemp1
drop column my_email;

7.重命名表

  1. 方式1:
rename table myemp1
to myemp2;

8.删除表

# drop删除后,不能回滚,删除表结构,同时删除表数据,释放表空间
drop table if exists myemp2;

9.清空表

#清空表中的所有数据,但是表结构保留
truncate table myemp1;

10.DCL中COMMIT 和 ROLLBACK

COMMIT:提交数据。一旦执行COMMIT,则数据就被永久的保存在了数据库中,意味着数据不可以回滚。
ROLLBACK:回滚数据。一旦执行rollback,则可以实现数据回滚。回滚到最近的一次commit之后。

11.对比truncate table 和 delete from

#相同点:都可以实现对表中所有数据的删除,同时保留表结构。
#不同点:
	truncate table : 一旦执行此操作,表数据全部清除。同时,数据是不可以回滚的。
	delete from : 一旦执行此操作,表数据可以全部删除。同时,数据是可以实现回滚的。

12.DDL和DCL的说明

  1. DDL的操作,一旦执行,就不可以回滚
  2. DML的操作,一旦执行,也是不可回滚的。但是,如果在执行DML之前,执行了set autocommit = false,则执行DML操作就可以实现回滚。

13.修改

#同时修改一条数据的多个字段
update emp1
set hire_date = CURDATE(), salary = 6000
where id = 4;

14.约束

  1. 为什么需要约束?为了保证数据的完整性

  2. 什么叫约束?对表中字段的限制

  3. 约束的分类:

    角度一:约束的字段的个数
    单列约束 VS 多列约束

    角度二:约束的作用范围
    列级约束:将此约束声明在对应字段的后面
    表级约束:在表中所有字段都声明完,在所有字段的后面声明的约束

    角度三:约束的作用

    1. not null (非空约束)
    2. unique(唯一性约束)
    3. primary key (主键约束)
    4. foreign key (外键约束)
    5. check (检查约束)
    6. default (默认值约束)
  4. 如何添加约束?
    create table 时添加约束
    alter table 时添加或者删除约束

  5. 如何查看表中的约束

select * from information_schema.table_constraints
where table_name = '表名'

在这里插入图片描述

二、视图

15.视图

  • 视图是一个虚拟的表,本身是不存储数据的。视图的本质就可以看做是存储起来的select语句
  • 视图应用的场景:针对于小型项目,不推荐使用视图。针对于大型项目,可以考虑视图。
  • 视图的优点:简化查询;控制数据的访问

精简版:

create view 视图名称 [(字段列表)]
as 查询语句

如何创建视图:

案例:
在这里插入图片描述
过程1.3 复制表的时候不会复制约束和自增策略
在这里插入图片描述
在这里插入图片描述

#针对于单表
CREATE VIEW v_users
AS
SELECT emp_id, emp_name, age 
FROM users;
#查看视图
SELECT * FROM v_users;

在这里插入图片描述

创建视图的时候,在select 语句后面可以设置别名
在这里插入图片描述

小括号里面的字段个数与select后面的字段个数要相同
在这里插入图片描述

查看表对象、视图对象

show tables;

在这里插入图片描述
查看视图结构:

desc 视图名称;

在这里插入图片描述

查看视图的属性信息

show table status like '视图名称' \G;

在这里插入图片描述

查看视图的详细定义信息:

show create view 视图名称;

在这里插入图片描述

更新视图中的数据也会更新表中的数据,更新语法与修改表的语法一样。一般情况下,可以更新视图中的数据。但是也有不能更新视图中数据的场景
虽然视图可以更新数据,但总的来说,视图作为虚拟表,主要用于方便查询,不建议更新视图的数据。对视图数据的更改,都是通过对实际数据表里数据的操作来完成的。

删除视图:

drop view 视图名称;

三、存储过程与函数

后续再说。。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

只想躺平(已上岸)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值