MySQL知识汇总(一)

数据库的账号管理


1.操作人员对数据库权限操作的细化分:
在这里插入图片描述

DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;

2.使用grant命令来分配权限

格式:grant 权限 on 数据库对象 to 用户 identified by 密码

1.给root@%这个用户对应的test数据库分配所有操作权限,identified by是需要进行的一个密码认证。把all换成USAGE就表示这个用户除了登陆啥都干不了。

GRANT ALL ON my243.* TO 'root' @'%' IDENTIFIED BY 'best' WITH GRANT OPTION;

结果:
在这里插入图片描述

2 .给root@%这个用户对应的my243数据库分配了增删改查的操作权限。

GRANT SELECT
	,
	INSERT,
	UPDATE,
	DELETE ON my243.* TO 'root' @'%' IDENTIFIED BY 'best' WITH GRANT OPTION;

3.查询root用户的权限以及my243和test库:

SHOW GRANTS FOR 'root' @'%'; 

结果:
在这里插入图片描述
4.创建myroot账号,密码best,只拥有TUTORIALS的权限

GRANT SELECT
,
INSERT,
UPDATE,
DELETE,
CREATE,
DROP ON TUTORIALS.* TO 'myroot' @'localhost' IDENTIFIED BY 'best';

结果:
在这里插入图片描述

5.修改用户名的密码
语法:



USE mysql;

UPDATE USER SET PASSWORD=PASSWORD(‘密码’) WHERE User=’用户名’;

FLUSH PRIVILEGES;

四大引擎

1.常用的两大引擎,InnoDB存储引擎,MyISAM存储引擎

1.1 InnoDB存储引擎

我们在创建表的时候会发现它首选的是InnoDB存储引擎 ,因为我们要对表进行增删改查

在这里插入图片描述


1.2 MyISAM存储引擎:

MyISAM拥有较高的插入、查询速度,但不支持事物。

存储引擎的选择:

不同的存储引擎都有各自的特点,以适应不同的需求,如下表所示:

功 能MYISAMMemoryInnoDBArchive
存储限制256TBRAM64TBNone
支持事物NoNoYesNo
支持全文索引YesNoNoNo
支持数索引YesYesYesNo
支持哈希索引NoYesNoNo
支持数据缓存NoN/AYesNo
支持外键NoNoYesNo

如果要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个好的选择
如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率

总结:InnoDB用的多,支持事务,增删改效率高,MYISAM查询效率高


库和表的管理

1.库的管理 :
1.1 库的创建,
语法:

CREATE DATABASE [IF NOT EXISTS ]库名;


1.2 创建一个名为books的库

CREATE DATABASE
IF
	NOT EXISTS books;

结果:
在这里插入图片描述

2.删除库:(注意库名带单引号)

DROP DATABASE
IF
	EXISTS `books;`

结果:
在这里插入图片描述

3.表的管理,
创建表
语法:

create table 表名(
列名 列的类型【(长度) 约束】,
列名 列的类型【(长度) 约束】

CREATE TABLE book ( 
  id INT, #编号
	bName VARCHAR ( 20 ), #书名
	price DOUBLE #价格
	);

查看表结构:DESC book;


4.修改表的列名:
修改book表的列名为price改为bprice(注意后面接类型)

	ALTER TABLE book CHANGE COLUMN price bprice DOUBLE;	

结果:
在这里插入图片描述


4.1 修改列段的类型price的double,改为int
ALTER TABLE book MODIFY COLUMN bprice INT;	

结果:
在这里插入图片描述

5.新增列字段:

ALTER TABLE book ADD COLUMN annual DOUBLE;	

结果:
在这里插入图片描述


6.删除列字段

	ALTER TABLE book DROP COLUMN annual ;	

查询所有的表:SHOW TABLES


7.删除表

DROP TABLE IF EXISTS book;

8.只复制表的结构

CREATE TABLE cody LIKE book;

9.1 复制表结构带上数据 (只复制部分数据的话带上where条件)

CREATE TABLE cody1 	SELECT * FROM book;

常见的约束

六大约束:

约束释义
NOT NULL非空
DEFAULT默认
PRIMARY KEY主键
UNIQUE唯一
CHECK检查约束(mysql不支持)
FOREIGN KEY外键

1.主键(Primary Key) 必须包含唯一值,主键列不能包含NULL值。 这意味着必须使用NOT NULL,如果没有设置就会强转为NOT NULL.


2.主键列通常具有自动生成键的唯一序列的AUTO_INCREMENT属性

3.创建一个user表为它的id设置主键

CREATE TABLE users(
   uid INT AUTO_INCREMENT PRIMARY KEY,
   name VARCHAR(40),
   password VARCHAR(255)
);



3.1 还可以在CREATE TABLE语句的末尾指定PRIMARY KEY,如下所示:

CREATE TABLE roles(
   rid INT AUTO_INCREMENT,
   name VARCHAR(50),
   PRIMARY KEY(rid)
);

3.2 索引关系

查看索引关系:SHOW INDEX FROM stuinfo;

CREATE TABLE stuinfo(
id INT PRIMARY KEY,#主键
stuname VARCHAR(20) NOT NULL,#非空约束
gender CHAR(1) CHECK(gender='男' OR gender='女'),#检查约束
seat INT UNIQUE,#唯一约束
age INT DEFAULT 18,#默认约束
majorid INT REFERENCES major(id)#外键
)

3.3 外键表
CREATE TABLE major(
id INT PRIMARY KEY,
majorName VARCHAR(20)
)

添加非空约束

ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NOT NULL;

添加默认约束

ALTER TABLE stuinfo MODIFY COLUMN age INT DEFAULT 18;

列级约束
添加主键

ALTER TABLE stuinfo MODIFY COLUMN id INT PRIMARY KEY;

表级约束
添加主键

ALTER TABLE stuinfo ADD PRIMARY KEY(id);

添加唯一约束
列级约束

ALTER TABLE stuinfo MODIFY COLUMN seat INT UNIQUE;

表级约束

ALTER TABLE stuinfo ADD UNIQUE(seat);

添加外键

ALTER TABLE stuinfo ADD CONSTRAINT stuinfo_marjor FOREIGN KEY(majorid) REFERENCES major(id);

删除约束
删除非空约束

ALTER TABLE stuinfo MODIFY COLUMN age INT;

删除非空约束

ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NULL;

删除主键

ALTER TABLE stuinfo DROP PRIMARY KEY;

删除唯一

ALTER TABLE stuinfo DROP INDEX seat;

删除外键

ALTER TABLE stuinfo DROP FOREIGN KEY stuinfo_major;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值