javaWeb

SQL分类

DDL:操作数据库,表等

DML:对表中的数据进行增删改

DQL:对表中的数据进行查询

DCL:对数据库进行权限控制

 DDL

DDL--操作数据库

1.查询

show databases;

2.创建数据库

create database 数据库名称;

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

create database if not exists 数据库名称;

4.删除数据库

drop database 数据库名称;

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

drop database if exists 数据库名称;

6.查看当前使用的数据库

select database();

7.使用数据库

use 数据库名称;

DDL--操作表

1.查看当前数据库下所有的表名称

show tables;

2.查询表结构

desc 表名称;

3.创建表

create table 表名(

         字段名1      数据类型1,

         字段名2     数据类型2,

         ...

         字段名n     数据类型n

);

注意⚠️(最后一行末尾,不能加逗号)

4.删除表

drop table 表名;

5.删除表时判断表是否存在

drop table if exists 表名;

6.修改表名

alter table 表名 rename to 新的表名;

7.添加一列

alter table 表名 add  新列名  新数据类型;

8.修改数据类型

alter table 表名 modify 列名  新数据类型;

9.修改列名和数据类型

alter table change 列名 新列名 新数据类型;

10.删除列

alter table 表名 drop 列名;

11.数据类型

 分类               数据类型             大小                 描述

数值类型:     tinyint               1                    小整数值

                       smallint             2bytes           大整数值

                    mediumint           3bytes           大整数值

                   int 或 integer       4bytes            大整数值

                        bigint               8bytes          极大整数值

                         float                4bytes   单精度浮点数值

                       donble             8bytes    双精度浮点数值

score   double(总长度,小数点后保留的位数)

0-100 2

总长度:最大值位数 + 小数位数

                      decimal                                       小数值

日期和时间类型:   date            3                  日期值

                                  time            3       时间或持续时间

                                 year             1                   年份值

                                datetime      8    混合日期和时间值

字符串类型:      char       0-255bytes       定长字符串

 char:固定一个长度例如10个字符,如果大于10个字符,就会报错,如果小于10个字符,也会占用10个字符

         (存储固定长度)(浪费空间)(存储性能高)

                      varchar      0-6535bytes       变长字符串                    

varchar:固定一个长度例如10个字符,输入“张三”然后占用的字符个数是2个

         (存储不定长度)(节约空间)(存储性能低)

DML

添加数据

1.给指定列添加数据

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

2.给全部列添加数据

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

3.批量添加数据

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

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

修改数据 

1.修改表数据

update  表名  set  列名1 = 值1,列名2 = 值2,...   where  条件;

 注意:如果update语句没有加where条件,则会将表中所有数据全部修改!

删除数据 

1.删除表数据

delete  from  表名   where  条件;

注意:删除语句中如果不加条件,则将所有数据删除!

 DQL

DQL--基础查询

1.查询多个字段

  • select  列名  from 表名;-- 查询指定数据
  • select * from 表名;-- 查询所有数据   (不建议使用)

2.去除重复记录

select distinct  列名  from 表名;

3.起别名

AS:AS 也可以省略

例:math  as  数学   english  as  英语(有不认识的单词时,可以用别名起中文名)

DQL--条件查询(where)

1.条件查询语法

select 列名  from 表名 where 条件列名;

2.条件:

符号功能
>大于
<小于
>=大于等于
<=        小于等于
=等于
<>  or  !=不等于
between ... and ...在某个范围之内(都包含)
in(...)多选一
like  点位符模糊查询:   _单个任意字符        %多个任意字符
is null是 null
is not null不是 null
and  or  &&并且
or  或  ||或者
not  or !不是

DQL--排序查询(order by)

1.排序查询语法

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

2.排序方式:

  • ASC:升序排列(默认值)
  • DESC:降序排列

3.注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序

DQL--聚合函数

1.概念:将一列数据作为一个整体,进行纵向计算。

2.聚合函数分类:

函数名功能
count(列名)统计数量(一般选用不为null的列)
max(列名)

最大值

min(列名)最小值
sum(列名)求和

avg(列名)

平均值

 3.聚合函数语法:

select 聚合函数名(列名)from 表;

注:null值不参与所有的聚合函数运算

DQL--分组查询(group by)

1.分组查询语法

select 查询的列名 或 聚合函数(列名)  from 表名 [where 分组条件限定] group by 分组列名  [having 分组后条件过滤];

注:分组之后,查询的字段为聚合函数和分组字段。

2.where 和 having 区别:

  • 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
  • 可判断的条件不一样:where 不能对聚合函数进行判断,having可以。

3.执行循序:where > 聚合函数 > having

DQL--分页查询(limit)

1.分页查询语法

select 列名 from 表名  limit  起始索引 ,查询条目数;

  • 起始索引:从0开始

2.计算机公式:起始索引 = (当前页码 - 1)* 每页显示的条数

约束

1.约束的概念:

  • 约束是作用于表中列上的规则,用于限制加入表的数据
  • 约束的存在保证了数据库中数据的正确性,有效性和完整性

 2.约束的分类

约束名称描述关键字
非空约束保证列中所有数据不能有 null 值not null
唯一约束保证列中所有数据不相同unique
主键约束主键是一行数据的唯一标识,要求非空唯一primary key
检查约束保证列中的值满足某一条件check
默认约束保存数据时,未指定值则采用默认值default
外键约束外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性foreign key
自动增长当列是数字类型并且唯一约束auto_increment

注意:Mysql不支持检查约束

非空约束

1.概念:非空约束用于保证列中所有数据不能有 null 值

       (1) 添加约束

-- 创建表时添加非空约束

create  table  表名(
    列名  数据类型  not  null,
    ...

);

-- 建完表后添加非空约束

 alter  table  表名 modify  列名  数据类型  not  null;

        (2)删除约束

alter  table  表名  modify  列名  数据类型;

 唯一约束

1.概念:唯一约束用于保证列中所有数据各不相同

        (1)添加约束

-- 创建表时添加唯一约束

create  table  表名(

        列名  数据类型  unique  [auto_increment],

        -- auto_increment:当不指定值时自动增长

        ...

);

create  table  表名(

        列名 数据类型,

        ...     

        [constraint]  [约束名称]  unique(列名)

-- 建完表后添加唯一约束

alter table 表名 modify 列名 数据类型 unique;

       (2)删除约束

 alter  table  表名  drop  index  列名;

主键约束

1.概念:

  • 主键是一行数据的唯一标识,要求非空唯一
  • 一张表只能有一个主键

        (1)添加约束

-- 创建表时添加主键约束

create  table  表名(

        列名  数据类型  primary  key  [auto_increment],

        ...

);

create  table  表名(

        列名 数据类型,

        [constraint]  [约束名称]  primary key(列名)

);

-- 建完表后添加唯一约束

alter  table  表名  add  primary  key(列名);

(2)删除约束

 alter  table  表名   drop  primary  key;

 默认约束

1.概念:保存数据时,未指定则采用默认值

        (1)添加约束

-- 创建表时添加默认约束

create  table  表名(
    列名  数据类型  default  默认值,
    ...

);

-- 建完表后添加默认约束

alter  table  表名  alter  列名  set  default  默认值;

        (2)删除约束

alter  table  表名  alter  列名  drop  default;  

外键约束 

1.概念:外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性

        (1)添加约束

-- 创建表时添加默认约束

create  table  表名(
    列名  数据类型,
    ...

    [constrint]  [外键名称]  foreign  key(外键列名)  references  主表(主表列名)

例子:constrint fk_表名1_表名2 foreign key(外键列名) references 主表(主表列名)

);

-- 建完表后添加外键约束

alter  table  表名  add  constraint  外键名称  foreign  key  (外键名称)  references  主表名称  (主表列名称)

        (2)删除约束

alter  table  表名  drop  foreign  key  外键名称; 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值