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

一、MySQL概述

1.什么是数据库?

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

2.MySQL简介

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

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

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

3.什么是SQLyog?

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

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

二、代码操作表

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)、联表查询_第10张图片
结果:
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询_第11张图片

2.修改表

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

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

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

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

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

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

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

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

-- 删除表
DROP TABLE IF EXISTS teacher2

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

-- 插入一张年级表
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)、联表查询_第17张图片

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)、联表查询_第18张图片

  • 修改语句 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)、联表查询_第19张图片

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

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

3.查询

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

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

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

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

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

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

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

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

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

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

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

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

  • 按名字查询
-- 学生名字查询 所有姓刘的学生
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)、联表查询_第27张图片
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询_第28张图片
MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询_第29张图片

  • 如果想要查询显示的内容在两张表里,我们需要将其一起显示出来时,就需要联表查询
-- 联表查询
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)、联表查询_第30张图片
例一:查询参加考试的同学信息: 学号,学生姓名,科目名,分数

-- 查询了参加考试的同学信息: 学号,学生姓名,科目名,分数
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)、联表查询_第31张图片
例二:查询学员所属的年级 (学号,学生的姓名,年级名称)

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

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

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

MySQL数据库(一):MySQL概述、SQLyog操作数据库、SQL代码创建表、修改表、删除表、查询表(select)、联表查询_第33张图片
例四:查询参加 数据库结构-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)、联表查询_第34张图片
例五:排序 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)、联表查询_第35张图片
例六:分页

-- 分页
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)、联表查询_第36张图片

你可能感兴趣的:(JavaWeb)