欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

程序员文章站 2022-04-03 22:41:11
...

一、MySQL概述

1.什么是数据库?

数据库就是一个按照某种规则来组织,存储和管理数据的仓库

2.MySQL简介

MySQL数据库是一个关系型数据库管理系统

最早属于瑞典MySQL AB 公司
现在是 Oracle 旗下产品

MySQL数据库的特点:开源、体积小、速度快、总体拥有成本低
这些特点导致了MySQL的流行

3.什么是SQLyog?

SQLyog 是一个快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
4.使用SQLyog对数据库进行操作

下载安装好SQLyog后,双击打开,然后连接数据库
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
新建一个school数据库
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
拟定数据库的名称,字符集选择utf8,目的是为了使中文不乱码,排序规则选择utf8_general_ci,如果不选则默认也是utf8_general_ci
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
school数据库创建完成后,接着在school数据库下创建一张student表
一个数据库是由一张张的表构成的,我们的数据也存储在这一张张表中
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
刚刚创建的student表
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
查看刚刚创建的student表
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

二、代码操作表

1.使用SQL代码创建表

-- 需求:使用SQL创建学生表
-- 学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住 址,email
CREATE TABLE IF NOT EXISTS `student1` (
  `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
  `pwd` VARCHAR(30) NOT NULL DEFAULT '123456' COMMENT '密码',  
  `sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
  `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
  `adress` VARCHAR(100) DEFAULT NULL COMMENT '住址',
  `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

怎样运行写好的代码?
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
结果:
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

2.修改表

-- 修改表名
ALTER TABLE student1 RENAME AS teacher2

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

-- 添加表的字段
ALTER TABLE student1 ADD age INT(3)

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

-- 修改约束
ALTER TABLE student1 MODIFY age VARCHAR(11) 

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

-- 字段重命名
ALTER TABLE student1 CHANGE age age1 INT(3) 

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

-- 删除表
DROP TABLE IF EXISTS teacher2

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
插入一张年级表

-- 插入一张年级表
CREATE TABLE `grade1`(
`gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级id',
`gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',
PRIMARY KEY (`gradeid`) 
)ENGINE=INNODB DEFAULT CHARSET=utf8
  • 插入语句 insert into
-- 插入语句  insert into
INSERT INTO `grade`(`gradename`)VALUES('大四')
INSERT INTO `grade`(`gradename`)VALUES('大三')
INSERT INTO `grade`(`gradename`)
VALUES('大三'),('大四')

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

INSERT INTO `student1`(`name`)VALUES('张三')
INSERT INTO `student1`(`name`,`pwd`,`sex`)VALUES('李四','aaaaaa','男')
INSERT INTO `student1`(`name`,`pwd`,`sex`)
VALUES('王五','bbbbbb','男'),('赵六','cccccc','男')

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

  • 修改语句 update
UPDATE `student` SET `name`='czx' WHERE id=1
UPDATE `student` SET `name`='长江七号' -- 不指定条件的情况下,会将所有人的名字都改成‘长江七号’
UPDATE `student` SET `name`='菜鸡',`adress`='阿拉伯联合酋长国' WHERE id=1

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

  • 删除语句 delete from
DELETE FROM `student1` WHERE id=1

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

3.查询

  • 查询student中的所有学生信息
SELECT * FROM `student`

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
在student表中查询StudentNo,StudentName

SELECT `StudentNo`,`StudentName` FROM `student`

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

  • 为了列名更易理解,可以给列重新起名字
-- 给字段起别名 查询
SELECT `StudentNo` AS 学号,`StudentName` AS 姓名 FROM `student` AS s

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

  • 拼接查询
SELECT CONCAT('姓名:',`StudentName`,'性别:',`Sex`) AS 新名字 FROM `student`

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

  • 在我们查询的信息中由很多重复的,我们只需要显示一次,这就需要去重
-- 去重查询
SELECT `StudentNo` FROM `result`
SELECT DISTINCT `StudentNo` FROM `result` -- 去重

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

  • where语句 固定了查询的范围
-- where 语句
SELECT `StudentNo`,`StudentResult` FROM `result`
WHERE `StudentResult`>=95 AND `StudentResult`<=100

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

  • 按名字查询
-- 学生名字查询 所有姓刘的学生
SELECT `StudentNo`,`StudentName` FROM `student`
WHERE `StudentName` LIKE '刘%'

-- 查询姓刘的同学,名字后面只有一个字的 
SELECT `StudentNo`,`StudentName` FROM `student`
WHERE StudentName LIKE '刘_'

-- 查询姓刘的同学,名字后面只有两个字的
SELECT `StudentNo`,`StudentName` FROM `student`
WHERE StudentName LIKE '刘__'

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询

  • 如果想要查询显示的内容在两张表里,我们需要将其一起显示出来时,就需要联表查询
-- 联表查询
SELECT s.`StudentNo`,`StudentName`,`SubjectNo`,`StudentResult`
FROM `student` AS s
INNER JOIN `result` AS r
ON s.`StudentNo`=r.`StudentNo`

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
例一:查询参加考试的同学信息: 学号,学生姓名,科目名,分数

-- 查询了参加考试的同学信息: 学号,学生姓名,科目名,分数
SELECT s.`StudentNo`,`StudentName`,`SubjectName`,`StudentResult`
FROM `student` s
INNER JOIN `result` r
ON s.`StudentNo`=r.`StudentNo`
INNER JOIN `subject` sub
ON sub.`SubjectNo`=r.`SubjectNo`

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
例二:查询学员所属的年级 (学号,学生的姓名,年级名称)

-- 查询学员所属的年级 (学号,学生的姓名,年级名称) 
SELECT `StudentNo`,`StudentName`,`GradeName`
FROM `student` s
INNER JOIN `grade` g
ON s.`GradeId`=g.`GradeID`

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
例三:查询科目所属的年级 (科目名称,年级名称)

-- 查询科目所属的年级 (科目名称,年级名称) 
SELECT `SubjectName`,`GradeName`
FROM `subject` sub
INNER JOIN `grade` g
ON sub.`GradeID`=g.`GradeID`

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
例四:查询参加 数据库结构-1 考试的同学信息: 学号,学生姓名,科目名,分数

-- 查询了参加 数据库结构-1 考试的同学信息: 学号,学生姓名,科目名,分数 
SELECT s.`StudentNo`,`StudentName`,`SubjectName`,`StudentResult`
FROM `student` s
INNER JOIN `result` r
ON s.`StudentNo`=r.`StudentNo`
INNER JOIN `subject` sub
ON sub.`SubjectNo`=r.`SubjectNo`
WHERE `SubjectName`='数据库结构-1'

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
例五:排序 ASC升序 DESC降序

-- 排序 ASC升序 DESC降序
SELECT s.`StudentNo`,`StudentName`,`SubjectName`,`StudentResult`
FROM `student` s
INNER JOIN `result` r
ON s.`StudentNo`=r.`StudentNo`
INNER JOIN `subject` sub
ON sub.`SubjectNo`=r.`SubjectNo`
WHERE `SubjectName`='数据库结构-1'
ORDER BY `StudentResult` ASC

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询
例六:分页

-- 分页
SELECT s.`StudentNo`,`StudentName`,`SubjectName`,`StudentResult`
FROM `student` s
INNER JOIN `result` r
ON s.`StudentNo`=r.`StudentNo`
INNER JOIN `subject` sub
ON sub.`SubjectNo`=r.`SubjectNo`
WHERE `SubjectName`='数据库结构-1'
ORDER BY `StudentResult` ASC
LIMIT 5,5

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询