MySQL

SQL语法

DDL(data difinition language)数据定义语言

数据库操作

  1. 显示所有数据库
    show database;
  2. 查询当前数据库
    select database();
  3. 创建数据库
    create database [ if not exists ] 数据库名 ;
    // if not exists 如果不存在,即没有相同名的数据库被创建,可加可不加
  4. 删除数据库
    drop database [ if exists ] 数据库名
  5. 切换数据库
    use 数据库名

表操作

表操作-创建
  1. 显示所有表
    show tables;
  2. 查看指定表结构
    desc 表名;
  3. 查看建表语句
    show create table 表名;
  4. 创建表结构
    create table 表名 (
    字段1 类型 comment ‘注释’ ,
    字段2 类型 comment ‘注释’,
    .
    .
    .
    字段n 类型 comment ‘注释’
    ) comment ‘注释’ ;
表操作-修改
  1. 添加字段
    alter table 表名 add 字段名 comment ‘注释’ ;
  2. 修改数据类型
    alter table 表名 modify 字段名 新数据类型 ;
  3. 修改字段名和数据类型
    alter table 表名 change 旧字段名 新字段名 数据类型 comment ’ 注释 ’ ;
  4. 删除字段
    alter table 表名 drop 字段名 ;
  5. 修改表名
    alter table 表名 rename to 新表名
表操作-删除
  1. 删除表
    drop table [ if exists ] 表名 ;
  2. 删除指定表,并重新创建表
    truncate table 表名
    // drop 是彻底将表从内存中删除, 而 truncate 是将表中的数据清除

DML(data manipulation language)数据操作语言

添加数据(insert into)

  1. 给指定字段添加数据

insert into 表名 (字段1,字段2,…,字段n)
values (值1,值2,…,值n)

  1. 给全部字段添加数据

insert into 表名 (值1,值2,…,值n)
// 2 本质与 1 相同

  1. 批量添加数据

insert into 表名 (字段名1,字段名2,…)
values ( 值1,值2,…), (值1,值2,…), …

insert into 表名 values ( 值1,值2,…), (值1,值2,…), …

修改数据(update)

update 表名 set 字段名1 = 值1,字段名2 = 值2,… [ where 条件 ]
// 如果没有条件,就是修改整张表的数据

删除数据(delete)

delete from 表名 【where 条件】
注意:delete 没有条件的话会删除整张表的数据,且 delete 不能删除某一字段的值。若要删除删除某一字段的值,可以用 update 将目标字段的值置为 null ,即代表将该值删除。

DQL(data Query Language)数据查询语言

基础查询

查询多个字段

  1. select 字段1,字段2,… from 表名 ;
  2. select * from 表名 ;
    注: * 用于查询全部字段,但不方便阅读,故不推荐使用

字段设置别名

  1. select 字段1 [ as 别名 ], 字段2 [ as 别名 ],… from 表名 ;
  2. 省略 as
    select 字段1 [ 别名 ], 字段2 [ 别名 ],… from 表名 ;

去除重复记录

  1. select distinct 字段名 from 表名

条件查询

select 字段列表 from 表名 where 条件

常用比较运算符

  1. 查询姓名为三个字的员工
    select * from emp where name like '_ _ _ ’ ;
  2. 查询id号最后一位为 1 的员工
    select * from emp where id like ‘_ _ _ 1’ ;
  3. 查询 年龄为23或21或24 的员工
    select * from emp where age in ( 23, 21, 24) ;

聚合函数

select 聚合函数 from 表名 ;

在这里插入图片描述

  1. 统计员工的数量
    select count (*) from emp;
  2. 计算年龄的平均值
    select avg(age) from emp;
  3. 注:null 不参与计算

分组查询

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 条件]

注意:

  1. where 是分组前过滤,having 是对分组后的结果进行过滤并不参与分组
  2. 分组后,查询的一般是分组字段或聚合函数,查询其他字段无意义

排序查询

select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2,...;

注:

  1. asc 升序(默认)
  2. aesc 降序

约束

概述

  1. 概述

约束是作用于表中字段上的规则,用于限制存储在表中的数据。

  1. 目的

保证数据库中数据的正确、有效性和完整性。

  1. 分类
    在这里插入图片描述 例:
    在这里插入图片描述

外键约束

  1. 外键

用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性

  1. SQL语句
    1. 创建表时添加外键

      create table <表名>
      (
      	字段名	数据类型,
      	.
      	.
      	[constraint]  [外键名]  foreign key (字段名)
      	references 主表 (主列表名即主码)
      );
      
      alter table 表名 add constraint [外键名] foreign key (字段名) 
      references 主表 (主列表名)
      

  2. 在这里插入图片描述

用 sudent 中的 dept_id 作为外键与 course 中的主码 id 建立联系
将 student 表和 course 表建立连接
在这里插入图片描述

在这里插入图片描述
注:

  1. 子表中的外键与主表中的主码相对应

例:student 中的 dept_id 与 course 中的 id 相对应

  1. 字表中的外键的数据类型必须要与主表中主码的数据类型一致

例: course 中的 id 为 int
------则student 中 dept_id 也要为 int

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值