Mysql数据库 各种功能学习笔记

目录

1.Mysql数据库最基础的增删查改

1.1关于数据库的操作

1.2库中的增删查改

2.数据库奇奇怪怪的关系

2.1完整性约束

2.2触发器


1.Mysql数据库最基础的增删查改

1.1关于数据库的操作

基本教学:

1.使用create database命令创建数据库

2.使用use命令打开数据库

3.使用drop database命令删除数据库

4.使用show databases查询所有数据库

5.使用show tables查询库中的所有数据表

需要注意的问题:

1. 数据库名可以用中文也可以用英文

2.create database也可以写成CREATE DATABASE,大小写不限制

3.每一句命令后面都要加上分号,就像说话后要带上句号一样

//数据库的创建
create database 数据库名;

//数据库的打开
use 数据库名;

//数据库的删除
drop database 数据库名;

//查询库中的所有数据库
show databases;

//查询库中的所有数据表
show tables;

1.2库中的增删查改

基础教学:

1.创建一个用户表,拥有主键、名字、密码三个字段,其中 primary key auto_increment 代表了这个字段为主键,int(11)为数据库的int类型,char(255)为数据库的字符数组类型可存放字符串。

2.使用drop table命令删除用户表。

3.使用insert into xxx values命令插入用户表,NULL让系统自动匹配一个不会重复的主键

4.使用update xxx set命令修改用户表,配合上where字句达到筛选的效果

5.使用select *from命令查询用户表中的内容。

6.使用show create table命令查看用户表的结构

7.使用truncate table命令清空表数据

扩展:

1. 如果不想字段为 NULL 可以设置字段的属性为 NOT NULL,属性为NOT NULL的字段输入 NULL 则会报错

2.auto_increment 定义列为自增的属性,一般用于主键数值会自动+1   

3.ENGINE 设置存储引擎,CHARSET 设置编码

4.查询中的*号代表全部的意思,可以去掉用其他列来进行代替,列用逗号分隔

5.插入中可以在表名后面添加列名,用逗号分隔代表只输入这些列的值,其他为空

需要注意的问题:

1.创建和插入中,列与列的数据要用逗号分割

2.字符串存入中需要在旁边添加两个单引号,例如'用户名'

//创建一个用户表
create table student(id int(11) primary key auto_increment,name char(255),password int(11));

//删除用户表
drop table student;

//插入用户表
insert into student values(NULL,'用户名',123456);
insert into student(name,password) values('张三',789);

//修改用户表
update student set name='bizideal' where id=1;

//查询表中的内容
select *from student;
select name from student;

//查看用户表的结构
show create table student;

| student | CREATE TABLE `student` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` char(255) DEFAULT NULL,
  `password` int DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |

//清空表数据​
truncate table 表名;
​

2.数据库奇奇怪怪的关系

2.1完整性约束

基础教学:

MySQL中的外键(foreign key)_mysql foreignkey_从未完美过的博客-CSDN博客

1.首先要确保约束的两个表已被创建且每一列对应的数据类型都是一致的

2.创建外键

        创建外键的语法:

alter table 表名 add constraint 外键名 foreign key(外键字段名)
references 外表表名(主键字段名)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
参数意义
RESTRICT限制外表中的外键改动(默认值,也是最安全的设置)
CASCADE跟随外键改动
SET NULL设为null值
NO ACTION无动作
SET DEFAULT设为默认值

含义:

1.表名为主表的名字

2.外键名则是自己新建的用来留在主表的名称

3.外键字段名为在主表中参照的字段名,在下面示例中则是book_manage中的book_number

4.主表表名、外键名、外键字段名、外表表名(主键字段名)四个因素完成完整性约束,外键字段名被外表的主键字段约束,需要有外表主键字段名有的数据外键字段名才能有,不然会插入失败,在删除时则要将对应的外键字段名数据全部删完,才能山外表主键字段名的数据

books_mation表的内部结构
| books_mation | CREATE TABLE `books_mation` (
  `book_number` int NOT NULL AUTO_INCREMENT,    //从表主键
  `book_name` varchar(50) DEFAULT NULL,
  `book_type` varchar(50) DEFAULT NULL,
  `press_name` varchar(50) DEFAULT NULL,
  `author_name` varchar(50) DEFAULT NULL,
  `price` int DEFAULT NULL,
  PRIMARY KEY (`book_number`)
) ENGINE=InnoDB AUTO_INCREMENT=50648 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |

books_manage 表的内部结构
| books_manage | CREATE TABLE `books_manage` (
  `ID` int NOT NULL AUTO_INCREMENT,            //主表主键
  `book_name` varchar(50) DEFAULT NULL,
  `book_state` varchar(50) DEFAULT NULL,
  `user_name` varchar(50) DEFAULT NULL,
  `user_sex` varchar(50) DEFAULT NULL,
  `book_number` int DEFAULT NULL,
  PRIMARY KEY (`ID`),
  KEY `number` (`book_number`),        //外键名为book_number
  CONSTRAINT `number` FOREIGN KEY (`book_number`) REFERENCES `books_mation` (`book_number`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |

//实例 设置books_manage为主表 books_mation为从表参照完整性约束
alter table books_manage 
add constraint number 
foreign key(book_number) 
references books_mation(book_number)

2.2触发器

基础教学:

MySQL创建触发器(CREATE TRIGGER)

基本语法:

CREATE <触发器名> < BEFORE | AFTER >
<INSERT | UPDATE | DELETE >
ON <表名> FOR EACH Row<触发器主体>


注意事项:
1.触发器主体为Mysql数据库语句,如果要执行多个语句,用BEGIN…END 复合语句结构

2.触发器的名称,触发器在当前数据库中必须具有唯一的名称。如果要在某个特定数据库中创建,名称前面应该加上数据库的名称

3.INSERT:将新行插入表时激活 | DELETE: 从表中删除某一行数据时激活 | UPDATE:更改表中某一行数据时激活

4.BEFORE(之前) 和 AFTER(之后) 分别代表了,在触发他的语句之前执行还是之后执行

5.与触发器绑定的表明必须是永久性表,不能将触发器与临时表或视图关联起来,并且同一张表不能具有两个完全一模一样的触发时刻和时间的触发器

//触发器实例,sum_book为触发器名,books_mation为联系的表名,@sum=@sum+1为触发器主体
CREATE TRIGGER sum_book 
BEFORE INSERT 
ON books_mation FOR EACH ROW SET @sum=@sum+1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

栈不收

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

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

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

打赏作者

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

抵扣说明:

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

余额充值