MySQL入门详解,SQL基础语法,DDL,DML,DQL

MySQL初识

1.理论体系

1.1数据库

数据库(DataBase),是存储和管理数据的仓库

1.2数据库管理系统

数据建库管理系统(DataBase Management Systerm),是操纵和管理数据库的大型软件

1.3SQL

SQL(Structured Query Language),是操作关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准

1.3.1SQL语法

可单行可多行
不区分大小写
可以加空格更美观
单行注释 --或#
多行注释 /**/

1.3.3SQL分类

DDL(Data Definition Language)操作数据库,表和表中的字段
DML(Data manipulation Language)对表中的数据增删改(没有查)
DQL(Data QueryLanguage)对表中的数据进行查询
DCL(Data Cotrol Language)权限相关

1.4关系型数据库

关系型数据库(RDBMS),建立在关系模型的基础上,有多张二维表组成的相互连接在一起而组成的数据库
常见的有orcle,mysql,sqlserver等

1.5MySQL数据库

mysql可以管理多个数据库
数据库本质上文件夹,可以管理多张数据表
数据表本质上是个文件,可以管理多条数据记录

2.约束

约束是作用在字段上的规则,用来限制表中的数据

约束的类型含义关键字
非空约束不为nullnot nul
唯一约束唯一不重复unique
主键约束一行数据中唯一标识,非空且唯一primary key
默认约束未指定字段类型则为默认default
外键约束让两张表建立连接(物理外键)foreign key

3.数据类型

常用数据类型如下:

3.1整数类

数值类字节大小含义
tinyint1小整数
int4大整数
float4单精度浮点数
double8双精度浮点数

3.2字符串类型

字符类字节大小含义
char1定长字符串(需要指定长度)
varchar2变长字符串(需要指定长度)

3.3日期类型

日期类字节大小格式含义
date3yyyy-MM-dd日期值
datetime8yyyy-MM-dd HH:mm:ss混合日期和时间值

4.数据库的设计(DDL)

4.1操作库

-- 展示数据库
show databases ;

-- 展示当前数据库
select database();

-- 使用db01数据库
use 库名;

-- 建库
create database  [if not exists] 库名;

-- 删库
drop database [if exists] 库名;

4.2操作表

-- 建表
create table 表名 (
		字段名1 字段类型 [约束] [comment 字段名1注释],
		字段名2 字段类型 [约束] [comment 字段名2注释]
)[comment 注释];

-- 查询所有表
show tables; 

-- 查询表结构
desc 表名;

-- 查询建表语句
show create table 表名; 

-- 添加字段
alter table 表名 add 字段名 字段类型 [comment 注释]; 

-- 修改字段类型
alter table 表名 modify 字段名 新字段类型;

-- 修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 新字段类型 [comment 注释] ;

-- 删除字段
alter table 表名 drop column 字段名;

-- 修改表名
rename table 旧表名 to 新表名;

-- 删表
drop table 表名;

5.数据库的操作

5.1DML

5.1.1增
-- 指定字段添加数据
insert into 表名(部分字段列表) values(部分值列表);

-- 全部字段添加数据、
insert into 表名(全部字段列表) values(全部值列表);

-- 批量指定字段添加数据
insert into 表名(部分字段列表) values(部分值列表1),(部分值列表2);

-- 批量全部字段添加数据
insert into 表名(全部字段列表) values(全部值列表1),(全部值列表2);
5.1.2删
delete from 表名 [where 条件];
5.1.3改
update 表名 set 字段1 =1,字段2 =2 ... [where 条件];

5.2DQL

5.2.1基本查询
-- 查询多个字段(比使用*更快,更直观)
select 字段名1,字段名2 from 表名;

-- 查询所有字段(不直观影响效率)
select * from 表名;

-- 设置别名
select 字段名1[as 别名1],字段2[as 别名2] from 表名 ;
-- 别名中的as可以省略
select 字段名1 别名1,字段2 别名2 from 表名 ;
-- 注意点,如果别名中有空格,别名必须用''引起来
select name '姓  名' from 表名;

-- 去除重复记录
select distinct 字段列表 from 表名;
5.2.2条件查询
-- 条件查询语法
select 字段列表 from 表名 where 条件列表

条件查询中,where后的条件列表中常用的运算符:

比较运算符功能
>大于
<小于
>=大于等于
<=小于等于
<> 或 !=不等于
between … and …在某范围内(包括最大最小值)
in ( … )在in之后的列表中的值中,多选一
like 占位符模糊匹配(_匹配单个字符,%匹配多个字符
is null是 空
is not null不是 空

MySQL语言在使用逻辑运算符时,推荐使用单词

逻辑运算符功能
and 或 &&
or 或
not 或 !
5.2.3分组查询
聚合函数

聚合函数,将一列数据作为整体,进行纵向运算

-- 聚合函数的使用
select 聚合函数(字段列表) from 表名;
聚合函数功能
count()统计数量
max最大值
min最小值
avg平均值
sum求和

count可以使用count(*),count(字段),count(常量),推荐使用count(*)

分组查询语法
-- 分组查询语法
select 字段列表 from 表名 [where 条件列表] group by 分组字段名 [having 分组后的过滤条件]

执行顺序:

  1. where 过滤 决定哪些数据可以参与分组
  2. group by 分组
  3. select 查询 指定的内容可以查询出来
  4. having 过滤 决定哪些数据可以查询出来

注意点!!!

  • 在分组查询后只能查询聚合函数和分组字段
    如:对性别进行分组查询后,字段列表里只能查询姓别字段或性别字段的聚合函数
5.2.4排序查询
-- 排序查询语法
select 字段列表 from 表名 [where 条件列表] [group by 分组字段 [having 分组后的过滤条件] ] order by 字段1 排序方式, 字段2 排序方式2

排序方式

  1. Asc 升序(默认)
  2. Desc 降序

注意点!!!

  • 如果多个字段排序,当第一个字段值相同时,才会根据第二个字段进行排序
5.2.5分页查询
-- 分页查询语法
select 字段列表 from 表名 [where 条件列表] limit 起始索引,每页展示的记录数;

起始索引的计算:

  • 起始索引 = (当前页 - 1)* 每页展示的记录数

注意点!!!

  • 分页查询不同数据库有不同的实现,limit是MySQL特有的
  • 索引超过范围不报错,只是没有结果展示
  • 查询第一页起始索引可以省略
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

暖阳爱学计算机

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

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

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

打赏作者

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

抵扣说明:

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

余额充值