数据库基础语法

本篇目录

1.对表的操作

1.1.创建表

1.2.添加字段

1.3查询表

1.4.修改表

1.5.删除表

2.约束(对上一个一级标题的补充):

外键约束

3.对数据的操作(增删改):

3.1.添加数据:

3.2.修改数据:

3.3.删除数据:

4.对数据的查询(查):

4.1.去重(distinct):

4.2.起别名(as):

4.3.条件查询(where):

4.3.1 .补充:

4.4.排序查询(order by):

 4.4.1.对排序方式的补充:

4.5.聚合查询:

4.6.分组查询(group dy)

4.7.分页查询(limit)


1.对表的操作

1.1.创建表

create table 表名 (
    字段1   字段1类型    [comment 注释][约束] ,
    字段2   字段2类型    [comment 注释][约束]        - -最后一行无逗号
)[comment 注释][约束] ;

1.2.添加字段

#添加字段
alter table
    表名
add
    字段名 字段类型 (长度) [约束];

1.3查询表

show  tables;                 --查询当前数据库的所有表
desc  表名;                   --查询表结构
show  create  table 表名;     --查询指定表的建表语句

1.4.修改表

# 修改表名

alter table
    表名
rename to
    新表名;

---------------------------------------

# 修改字段名和数据类型   

alter table
    表名 
change  
    旧字段名  新字段名 类型(长度) [约束];

---------------------------------------
# 修改数据类型

alter table
    表名 
modify
    字段名  新字段类型(长度) [约束];                   

1.5.删除表

drop table 表名;            -- 删除表
truncate table 表名;        -- 初始化表

2.约束(对上一个一级标题的补充):

  1. 为什么要约束?
    1. 对数据进行验证,例如,身份证号不可以为空,故在存储时要先对其进行约束。
  2. 约束的使用:
    1. 如果你使用的是专门的软件,如:DataGrip, 那么在创建表的时候会自动生成建表语句和对应的约束。
    2. 如果你使用的是传统的方式,如cmd命令窗口,那么就需要在建表时手写约束。
  3. 常用的约束:
    1. 代码演示(这里使用的是中途添加,也可以在创建表的时候就使用约束):
    2. 主键:非空且唯一。
    3. 自增长:
    4. 唯一:数据不可以重复。
    5. 非空:添加的不能为空。
    6. 默认值:当不添加值时会自动赋予默认值。
  4. 代码演示(这里使用的是中途添加,也可以在创建表的时候就使用约束)
    1. 在创建字段时给约束:
      #添加学号,非空且唯一
      alter table
          student
      add
          id int primary key auto_increment comment '学号';
      
      --------------------------------
      
      #添加姓名,非空
      alter table
          student
      add
          name varchar(20) not null comment '姓名';
      
      --------------------------------
      
      #英语成绩默认情况为0
      alter table
          student
      add
          English int default 0 comment '英语成绩';
    2. 在创建表时给约束:

      create table student (
          id int primary key auto_increment comment '学号',
          name varchar(20) not null comment '姓名',
          English int default 0 comment '英语成绩'
      );
  5. 外键约束

    1. 概念:让两个表的数据之间建立连接。如学生表和班级表之间建立联系
    2. 语法:
      # 创建表时建立,注意:要先创建主表和主表内的数据
      
      create table 从表名 (
          列名1 数据1类型
          ...
      
          constraint 
              外键约束名
          foreign key 
              从表中要建立连接的列名
          references
              主表名 (主表中要建立连接的列名)
      );
      
      -------------------------
      
      # 将学生的班级与班级表建立外键约束(创建之后建立)
      
      alter table
          从表名
      add constraint
          外键约束名
      foreign key
          (从表中要建立连接的列名)
      references
          主表名 (主表中要建立连接的列名);
      
      -------------------------
      
      # 删除外键约束
      
      alter table 
          从表名
      drop foreign key 
          外键约束名;
    3. 代码演示:
      # 将学生的班级与班级表建立外键约束(创建表时建立)
      
      create table students (
          id int,
          name varchar(20),
          Class varchar(20),
      
          constraint 
              classpoint
          foreign key 
              (Class)
          references
              allclass (class)
      );
      
      -------------------------
      
      # 将学生的班级与班级表建立外键约束(创建之后建立)
      
      alter table
          student
      add constraint
          classpoint
      foreign key
          (Class)
      references
          allclass (class);
      
      -------------------------
      
      # 删除外键约束
      
      alter table 
          student
      drop foreign key 
          classpoint;

3.对数据的操作(增删改):

3.1.添加数据:

# 给指定列添加数据

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

---------------------------------

# 给所有列添加数据,列名的列表可以省略的

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

3.2.修改数据:

# 修改数据,没有加where条件,则会将表中所有数据全部修改!
update 
    表名 
set 
    列名1=值1,列名2=值2,… 
[where 条件] ; 

3.3.删除数据:

# 删除数据
delete from 
    表名 
[where 条件] ; 

4.对数据的查询(查):

语法:

select 
    字段1,字段2,…
from
    表名列表
where
    条件列表
group  by
    分组字段
having
    分组后条件
order by
    排序字段
limit
    起始索引 , 每页显示个数;

4.1.去重(distinct):

# 在查询时按指定的数据去重

select distinct 
    要去重的数据名 
from 
    表名; 

4.2.起别名(as):

# 显示时用别名替代数组名

select 
    数据名1 as 别名1,    --使用as
    数据名2 别名2,…      --as也可以省略
from
    表名; 

4.3.条件查询(where):

# 按所给条件查询

select from 
    表名 
where 
    条件; 

4.3.1 .补充:

条件语句的基本知识
条件语句基础知识

4.4.排序查询(order by):

# 按照排序查询数据

select 
    字段列表 
from 
    表名 
order by 
    要排序的字段名1 [排序方式],
    要排序的字段名2 [排序方式],
    …;

 4.4.1.对排序方式的补充:

  1. asc        --升序排序(默认)
  2. desc        --降序排序

4.5.聚合查询:

  1. 概念:将一列数据进行纵向计算。
  2. 语法:
    select  
        聚合函数名(列名)
    from  
        表名;
  3. 常用聚合函数:

    函数名功能
    count(列名)统计数量(一遍选用不为null的列)
    max/min(列名)最大/最小值
    sumi(列名)求和函数
    avg(列名)求均值

4.6.分组查询(group dy)

  • 语法:
    select  
        字段列表
    from
        表名
    [where  分组前的条件限定]
    group by
        分组字段名
    [having  分组后的条件过滤]

4.7.分页查询(limit)

  • 语法:
    select
        字段列表
    from
        表名
    limit
        起始索引 , 每页显示个数;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

悟解了

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

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

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

打赏作者

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

抵扣说明:

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

余额充值