MySQL数据库基础和SQL语言入门,学习过后真的很硬核

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的

RDBMS (Relational Database Management System,关系数据库管理系统)

应用软件。

MySQL的安装和配置

参考文档:https://jingyan.baidu.com/article/9f7e7ec04407ff6f29155478.html

相关概念:

数据库: 数据的仓库,存储数据的地方。

表: 分类对数据进行存储,实际保存数据的地方

列(字段): 具体的一项信息,如:姓名、年龄

行(记录): 实际的实体信息

主键: 能唯一地标识一行记录的列

Navicat图形工具的使用:

Navicat for MySQL是常用的MySQL客户端工具,可以从网上下载,免费使用30天。

参考文档:https://jingyan.baidu.com/article/d7130635cd6b7913fcf47573.html

MySQL数据类型:

SQL语言:

SQL全称是结构化查询语言(Structured Query Language)。使用SQL能进行数据库的增删查改。学习数据库的基本核心内容就是SQL。

SQL分类如下:

数据定义语言(DDL:Data Definition Language)

数据操作语言(DML:Data

Manipulation Language)

数据查询语言(DQL:Data

Query Language)

数据控制语言(DCL:Data

Control Language)

一、DDL

数据库定义语言:

创建数据库

create

database 数据库名;

使用数据库

use 数据库名;

删除数据库

drop

database 数据库名;

drop

database if exists 数据库名;

创建表

create

table 表名(

列名 数据类型 约束,

...

);

主键:primary

key

自动增长: auto_increment

删除表

drop

table 表名;

drop

table if exists 表名;

练习:

创建my_db数据库

在my_db中,创建学生表,包含编号(主键,自增)、姓名、年龄和地址

二、DML

数据新增

insert into 表名(列1,列2...)

values(值1,值2...)

示例:

-- 插入一行记录

insert

into student(name,age,gender,address)

values('张三',20,'男','湖北武汉');

-- 插入多行记录

insert into

student(name,age,gender,address)

values

('李四',20,'男','湖北武汉'),

('李大四',22,'女','北京'),

('李小四',25,'女','北京'),

('李四四',27,'女','上海');

-- 将表中的数据插入到其它表

insert into

student2(name,age,gender,address)

select

name,age,gender,address from student;

注意:

1、自动增长列不要添加数据

2、列的数量、类型和顺序要和值一致

数据修改

update 表名 set

列1=值1,列2=值2

where 条件

示例:

-- 更新李小四的地址为四川成都

update

student set address = '四川成都'

where

name = '李小四';

-- 更新多列

update student set

address = '四川成都',age = 18

where name = '李小四';

数据删除

delete from 表名

where 条件

示例:

-- 删除id=2的学生

delete

from student where id = 5;

练习:

在学生表中添加5行记录,

更新id为5的学生年龄为22

删除id为3的学生

四、DQL

查询所有数据

select * from 表;

查询指定字段的所有数据

select 列1,列2

from 表;

where条件查询

select * from 表

where 条件

=、!=、in、not

in、and、or

示例:

-- 查询所有行所有列

select * from

student;

-- 查询部分列

select

name,address from student;

-- 添加where条件 查询id为2的学生

select

* from student where id = 2;

-- 查询id不为2的

select * from

student where id != 2;

-- 查询地址为湖北武汉以及四川成都的学生

select * from

student where address = '湖北武汉' or address = '四川成都';

-- 查询年龄20岁以上的男的

select * from

student where age >= 20 and gender = '男';

-- 查询地址为湖北武汉以及四川成都的学生2

select * from

student where address in('湖北武汉','四川成都');

-- 查询地址不是湖北武汉以及四川成都的学生

select * from

student where address not in('湖北武汉','四川成都');

去掉重复数据

distinct关键字

select distinct 列

from 表;

示例:

-- 查询学生的地址,不重复

select DISTINCT

address from student;

-- 给列设置别名

select id 编号,name

姓名,age

年龄,gender

性别,address

地址

from student;

-- 查询年龄在20到25之间的女生

select * from

student where age >= 20 and age <=25 and gender='女';

select * from

student where age between 20 and 25 and gender ='女';

-- 查询北京或武汉的男生

select * from

student where address in ('北京','湖北武汉')

and gender ='女';

排序查询

select * from 表

order by 列 desc\asc

示例:

-- 按年龄升序排序

select

* from student where gender = '男'

order by age asc;

-- 降序

select * from

student order by age desc;

分页查询

limit n; 返回长度为n的行

limit n,m; 返回从n位置,长度为m的行

select * from

tb_name limit 5; 显示结果的前5条记录

select

* from tb_name limit 0,5; 区段查询

示例:

-- 按年龄升序排序

select * from

student where gender = '男' order by age

asc;

-- 降序

select * from

student order by age desc;

-- 通过limit限制行数 前5行

select * from

student limit 5;

-- 通过limit分页查询 第一页 第0行到第5行,第二页 第6行到第10行...

select * from

student LIMIT 0,5;

select * from

student LIMIT 5,5;

select * from

student LIMIT 10,5;

练习:

年龄最大的男学生

年龄最小的五个女学生

聚合函数

求和:sum

求平均值:avg

求最大值:max

求最小值:min

求数量: count

示例:

select

sum(col_name) from tb_name;

分组查询

group by 分组列

where 在分组之前进行条件筛选

having 在分组之后进行条件筛选

where --> group

by ---> having

示例:

-- 使用聚合函数

select sum(age) 总年龄,avg(age)

平均年龄,

max(age) 最大年龄,min(age)最小年龄,count(*)

学生数量

from student;

-- 求来之不同地方的学生人数

select address 籍贯,count(*)

人数

from student group by address;

-- 求男女学生的人数

select gender 性别,count(*)

人数,avg(age)

平均年龄

from student group by gender;

-- 求人数超过5人的籍贯

select address 籍贯,count(*)

人数

from student

group by address

having count(*) >= 5;

-- 年龄总和超过200的性别

select gender 性别,sum(age)

总年龄

from student

group by gender

having sum(age) > 200;

模糊查询

通配符:

% 匹配任意多字符

_ 匹配一个字符

like关键字

示例:

-- 查找所有姓李的人

select * from

student where name like '李%';

select * from

student where name like '%大%';

select * from

student where name like '李_';

作业

写SQL语句:

1、创建员工表:

维修部

2、在表中插入上面的数据

3、更新id为2的工资,将工资加200

4、删除年龄低于20的员工

5、查询年龄超过24,工资小于5000的员工

6、查询每个部门的工资总和和平均年龄

7、查询平均工资小于4000的部门

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:04月30日

热门专题

一年制中专|中专学历,中专是什么学历,中专是什么,中专有什么专业,中专升大专,一年制中专
一年制中专
外贸网站建设|外贸网站建设,英文网站制作,英文网站设计,美国主机空间,外贸建站平台,多语言网站制作
外贸网站建设
开放大学|开放大学报名,开放大学报考,开放大学,什么是开放大学,开放大学学历,开放大学学费,开放大学报名条件,开放大学报名时间,开放大学学历,开放大学专业
开放大学
易捷尔高职单招|易捷尔高职单招,易捷尔高职单招培训,单招分数线,单招录取分数线,高职单招学校分数线
易捷尔高职单招
国家开放大学|国家开放大学报名,国家开放大学报考,国家开放大学,什么是国家开放大学,国家开放大学学历,国家开放大学学费,国家开放大学报名条件,国家开放大学报名时间,国家开放大学学历,国家开放大学专业
国家开放大学
自考本科|自考本科有用吗,自考文凭,自考本科文凭,自考文凭有用吗,自考本科文凭有用吗,自考文凭承认吗
自考本科
安徽开放大学|安徽开放大学报名,安徽开放大学报考,安徽开放大学,什么是安徽开放大学,安徽开放大学学历,安徽开放大学学费,安徽开放大学报名条件,安徽开放大学报名时间,安徽开放大学学历,安徽开放大学专业
安徽开放大学
易捷尔单招|易捷尔单招,易捷尔单招培训,易捷尔单招报名,易捷尔单招考试,易捷尔单招培训学校,易捷尔单招分数
易捷尔单招

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部