MYSQL 知识体系,必会语句

一,数据库的基本概念

数据库是用于存储和管理数据库的仓库,英文为database简称DB

数据库可以持久化存储数据,也方便管理数据和存储数据,使用同一的方式操作数据库比如sql类型的

二,sql语句

1,数据库的关系介绍

数据库是用来存储和管理数据的仓库,一个数据库中包含多个数据表

数据表:数据表是数据库中最重要的组成部分之一,它由纵向的列和横向的行组成,类似于excel表格一样,可以指定列名,数据类型和约束等,一个表中可以存储多条数据。

数据:想要永久化存储的数据

数据类型:

数值型:int ,double

字符型:varchar    可变长度类型

                char    固定长度类型

日期型:

        date 年月日

        datetime   年月日时分秒 没有默认值是NULL

        timestamp        年月日时分秒,如果不给值,默认会用当前系统之间作为值

2.SQL介绍

SQL全称为:Structured Query Language 结构化查询语言,定义了操作所有关系型数据库的规则。每一种数据库操作方式可能存在一些不一样的地方

SQL通用语法:SQL语句可以单行或者多行,以分号结尾, 可以使用空格和缩进来增强语句的可读性,mysql数据库不分大小写,数据库的注释当单行注释用:--注释内容 # 注释内容(mysql特有的),当多行注释的时候,使用/* 注释内容*/

3.DDL-操作数据库

        R(Retrieve):查询

                查询所有数据库

-- 查询所有的数据库
show databases;

                查询某个数据库的创建语句

-- 查看mysql数据库的创建格式
show create database mysql;

        C(create):创建

                创建数据库

-- 创建一个数据库
creata database user;

                创建数据库(判断如果不存在则创建)

-- 创建数据库(判断数据库是否存在,不存在则创建)
create database if not exists user;

                创建数据库,并指定字符集

-- 创建数据库,并指定字符集utf8
create database user character set utf8;
-- 查看数据库的字符集
show create database user;

U(Update):修改

        修改数据库的字符集

-- 修改数据库的字符集为utf8
alter database user character set utf8;

D(Delete):删除

        删除数据库

-- 删除数据库
drop database user;
-- 删除不存在的数据库则会报错

        删除数据库(判断,如果存在则删除)

-- 删除数据库(判断,如果存在则删除)
drop database user if exists user;

4.DDL-操作数据表

        R(Retrieve):查询

                查询数据库中所有的数据表

-- 查询数据库中的所有数据表
show tables;

                查询表结构

-- 查询表结构
desc preson;

        C(Create):创建

                创建数据表

-- 标准语法
create table person(列名 数据类型, 列名 数据类型,……);

                复制数据表

-- 复制数据表
create table person like person1;

        U(Update):修改

                修改表名

-- 修改表名
alter table person rename to person2;

                添加一列

-- 给表添加一列
alter table person add color varchar(30);

                修改列名称和数据类型

-- 将person中的id 修改为int 
alter table person modify color int;
--将color 修改为address ,数据类型为varchar
alter table person change color address varchar(30);

                删除列

-- 删除address列
alter table person drop address;

        D(Delete):删除

                删除数据表

-- 删除person表
drop table person;

                删除数据表(判断,如果存在则删除)、

-- 删除preson表,如果存在则删除
drop table if exists person;

5, DML-INSERT语句

        新增表数据语法

                新增格式1:给指定列添加数据

-- 向peron 表中添加数据
insret into person (id, name) values (1, "tom");
-- 向指定的列添加数据
insert into person (name) values ("jeck");

                新增格式2:默认给全部列添加数据

-- 默认给全部列添加数据
insert into person value (2, "rose");

                新增格式3:批量添加数据

-- 批量添加数据
insert into person values (3, "n1"), (4, "n2");
-- 批量添加指定列数据
insert into person (id, name) values (5, "n3"), (6, "n4");

6,DML-UPDATE语句

        修改表数据语法

-- 修改id 为1 的名字
update person set name = "n4" where id =1;

7,DML-DELETE语句

        删除表数据

-- 删除person 表中的id 等于2的信息
delere from person where id=2

8,DQL-单表查询

        查询语法

select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序limit 分页限定

        查询全部

-- 查询person表所有的数据
select * from product;

        查询部分

select name from person;

        去除重复查询

-- 查询名字, 去除重复
select distinct name from person;

        起别名

-- 给name 起别名

select name as 姓名 from person;

9.聚合函数

        基本语法

select 聚合函数名;

count(列名): 统计数量

max (列名):最大值

min(列名): 最小值

sum(列名): 求和

avg(列名) : 平均值

10,排序查询

        排序语法

-- 按照id 升序排列
select * from person order by id asc;
-- 按照id 降序排列
select * from person order by id desc;

11.执行顺序

编写顺序:select … from …where …group by …having … order by … limit

执行顺序:from … where …group by … having … select … order by … limit

12.约束

主键约束

特点:

主键约束包含:非空唯一两个功能

一张表只能用一个列作为主键

主键一般用于表中数据的唯一标识

建表时添加约束

create table 表名(列名 数据类型 primary key; 列名 数据类型 ……);

删除主键

-- 删除主键
alter table id drop primary key;

 建表后单独添加主键

-- 添加主键
alter table person modify id int primary key;

外键约束

让表和表之间产生关系,一张表关联另外一张表,保证数据的准确性

外键约束格式

constraint 外键名 foreign key (本表外键列名) refernces 主键名(主表主键名)

删除外键约束

-- 删除外键
alter table orderlist drop foreign key ou_fk1;

建表后添加外键约束

-- 标准语法
alter table 表名 add constraint 外键名 foreign key (本表的外键名) references 主表名(主键列名)

三, 多表查询

1,多表查询-笛卡尔积查询

由两张表,获取这两张表的所有组合情况

要完成多表查询,需要消除这些没用的数据

多表查询格式

笛卡尔积查询

-- 标准语法
select 列名 from 表1, 表2,……;

2, 多表查询-内连接查询

查询原理

内连接查询的是两张表有交集的部分数据(有主外键关联的数据)

显式内连接

-- 查询用户信息和对应的订单信息
select * from user inner join orderlist on user.id=orderlist, uid;
select * from user join orderlist on user.id=orderlist.uid;

3,多表查询-外连接查询

左外连接

查询原理

查询左表的全部数据,和左右两张表有交集的数据

右外连接

查询原理

查询右表的全部数据,和左右两张表有交集的数据

4,多表查询-子查询

子查询

查询语句中嵌套了查询语句,就成为子查询

子查询结果是单行单列的

可以作为条件,使用运算符判断

-- 查询年龄最高的用户姓名
select max(age) from user;
-- 查询出最高的年龄
select name ,age from user where age = 26;
-- 根据查询出来的最高年龄,查询姓名和年龄
SELECT NAME,age FROM USER WHERE age = (SELECT MAX(age) FROM USER);

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值