MySQL系列知识汇总

MySQL系列知识汇总

本课题内容将从MySQL基础的使用方式开始进行MySQL各种知识进行汇总。这里忽略安装步骤,执行写用法;



1. Windows系统下cmd登录

前提:正确配置好MySQL的环境变量下win+R输入cmd,之后在cmd中输入命令

mysql -uroot -p123456

其中root为用户名称;123456为本机数据库密码,登录成功后如下图
在这里插入图片描述

2. 控制台下SQL语句的使用

  1. 创建自己的数据库
create database student;  -- 创建一个名词为student的数据库
  1. 注意很多人会忽略这一步:创建好数据库后需要执行如下语句才可以操作对应的数据库
use student;
  1. 在student数据库下创建User数据库表
CREATE TABLE `user`( 
	`id` INT NOT NULL AUTO_INCREMENT,
	 `name` VARCHAR(20) NOT NULL, 
	 `password` VARCHAR(30) NOT NULL,
	  PRIMARY KEY (`id`)
	  ); 
  • user 为数据库表名
  • id,name,password等为数据库字段名
  • 字段之后的INT,VARCHAR等为数据库类型
  • NOT NULL 代码该字段不能为空
  • AUTO_INCREMENT 代表该列数字自动递增(只支持数据类型)
  • PRIMARY KEY (id) 代表设置id为主键索引
  1. 常见的数据库类型
    MySQL数据库类型主要有5大类包括: 整数类型、浮点数类似、字符串类型,日期类型,其他类型
    最长用的有
MySQL数据库类型含义(范围)
int4个字节 范围(-2147483648~2147483647)
float(m,d)单精度浮点型 8位精度(4字节) m总个数,d小数位
varchar(n)变长字符串,最多65535个字符(保存用户名,等简短信息)
text可变长度,最多65535个字符(保存一些短文经常用到)
timestamp自动存储记录修改时间(在不设置值的情况下)
date日期 ‘2008-12-2’ (保存年月日)
time时间 ‘12:25:36’ (保存时间点)

注明:定义timestamp字段时,字段时间会随着其他字段的数据改变时而刷新

  1. user 表里边插入数据
INSERT INTO `user` 
	(`name`, 
	`password`) 
VALUES
  ('name', 
  'password') ; -- id是自增的不需要我们指定值

在这里提一点,最好在数据库的每个字段中加入`` 这两点,防止字段中不小心有数据库关键字而造成报错;如果插入数据是字符串需要引号

  1. 查看 user表数据
默认查找方式
如果只想看学生的姓名的话,就把*换成 name字段即可
SELECT * FROM `user` ;
限制查找行数(只查看0到1000行)
在网页上经常用到该算法;作为翻页功能:( 当前页数-1)* 每页数据条数, 每页数据条数
SELECT * FROM `user` LIMIT 0, 1000; 
  1. 修改user表数据
UPDATE 
  `user` 
SET
  `name` = 'name',
  `password` = 'password' 
WHERE `id` = 1 ;

这里需要注意的是where后边的限定条件需要时唯一的不然符合条件的都会被修改;如果不加where在没有唯一约束的情况下,会修改整个表数据

  1. 删除user表数据
DELETE 
FROM
  `user` 
WHERE `id` = '1' ;

这里where和修改元素案例,作用差不多

3. 高级查询操作

  1. 创建class 班级表
CREATE TABLE `class` (
	`classId` INT AUTO_INCREMENT,
	`className` VARCHAR(200) NOT NULL,
	PRIMARY KEY (`classId`)
)
  1. user 表里边添加cId 字段,并设置为外键,其为学生所属的班级ID
ALTER TABLE `user` ADD COLUMN `cId` INT NOT NULL; -- 添加cId字段
ALTER TABLE `user` ADD CONSTRAINT `c` FOREIGN KEY (`cId`) REFERENCES `class`(`classId`); 
-- 为 user 表 的cId字段添加名称为c的对应class表的classId的外键
  1. 一对多;多对一查询:往表中插入各种数据后,查询1班所有人

内连接查询

SELECT 
	`class`.*,`user`.* 
FROM 
	`class`
INNER JOIN 
	`user` 
ON 
	`user`.cId=1;

左连接查询(注意这里不适用左连接查询)

SELECT 
	`class`.*,`user`.* 
FROM 
	`class`
LEFT JOIN
	`user` 
ON 
	`user`.cId=1;

右连接查询(这里不适用右连接查询)

SELECT 
	`class`.*,`user`.* 
FROM 
	`class`
RIGHT JOIN
	`user` 
ON 
	`user`.cId=1;
  1. 多对多查询

创建课程表

CREATE TABLE `course`( 
	`courseId` INT NOT NULL AUTO_INCREMENT, 
	`courseName` VARCHAR(200) NOT NULL, 
	PRIMARY KEY (`courseId`) 
	);

创建关系表

CREATE TABLE `other`(
 `otherId` INT NOT NULL AUTO_INCREMENT,
  `csId` INT NOT NULL,
   `uId` INT NOT NULL, 
   PRIMARY KEY (`otherId`), 
   CONSTRAINT `c` FOREIGN KEY (`csId`) REFERENCES `course`(`courseId`), -- 添加课程表的外键
   CONSTRAINT `u` FOREIGN KEY (`uId`) REFERENCES `student`.`user`(`id`)  -- 添加用户表的外键
   ); 
  1. 自动识别中英文,识别后按照对应字段模糊查找
SELECT *FROM dictionary WHERE IF("a" REGEXP "[\u0391-\uFFE5]"=1,word,trans) LIKE "%a"

文章后边会慢慢继续完善!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

StarLightLu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值