当前位置:Gxlcms > 数据库问题 > sql语句

sql语句

时间:2021-07-01 10:21:17 帮助过:55人阅读

mySQL

  • mySQL
    • 数据库操作
      • 创建数据库
      • 修改数据库
      • 查看数据库的字符集和校验规则
      • 删除数据库
      • 查看所有数据库
      • 查看正在使用的数据库
      • 切换数据库
    • 数据库表操作
      • 创建数据表
        • 数据类型
        • 单表约束分类
      • 查看所有表
      • 查看表结构信息
      • 删除表
      • 修改表
        • 修改表:添加列
        • 修改表:修改列类型,长度和约束
        • 修改表:删除列
        • 修改表:修改列名称
        • 修改表:修改表的字符集
        • 修改表:修改表名
    • 数据库表记录操作
      • 添加表记录
        • 插入所有列
        • 插入某些列
      • 修改表记录
        • 修改某列所有值
        • 按条件修改数据
      • 删除表记录
      • 查询表记录
        • 基本查询
        • 查询所有
        • 按列查询
        • 条件查询
        • 多条件查询
        • 范围查询
        • 模糊查询
        • 统计查询
          • 使用运算符
          • 使用聚合函数
        • 不重复查询
        • 别名查询
        • 排序查询
          • 升序查询
          • 倒序查询
          • 多重排序查询
        • 分组查询
          • 基本分组查询
        • 分组查询并在where子句中使用聚合函数

数据库操作

创建数据库

create database 数据库名 [character set 字符集 collate 校对规则];

修改数据库

alter database 数据库名称 [character set 字符集 collate 校对规则];

查看数据库的字符集和校验规则

show create database 数据库名;

删除数据库

drop database 数据库名;

查看所有数据库

show databases;

查看正在使用的数据库

select database();

切换数据库

use 数据库名;

数据库表操作

创建数据表

create table 表名称(
    字段名称 字段类型(长度) 约束,
    字段名称 字段类型(长度) 约束…
    );

数据类型

  • tinyint/smallint/int/bigint
  • float/double
  • bit
  • char/varchar
  • date/time/datetime/timestamp

单表约束分类

  • 主键约束:primary key 主键约束默认就是唯一 非空的
  • 唯一约束:unique
  • 非空约束:not null

查看所有表

show tables;

查看表结构信息

desc 表名;

删除表

drop table 表名

修改表

修改表:添加列

alter table 表名 add 列名 类型(长度) 约束;

修改表:修改列类型,长度和约束

alter table 表名 modify 列名 类型(长度) 约束;

修改表:删除列

alter table 表名 drop 列名;

修改表:修改列名称

alter table 表名 change 旧列名 新列名 类型(长度) 约束;

修改表:修改表的字符集

alter table 表名 character set 字符集;

修改表:修改表名

rename table 表名 to 新的表名;

数据库表记录操作

各关键字使用顺序:
S(select)… F(from)…W(where)…G(group by)…H(having)…O(order by);

添加表记录

插入所有列

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

插入某些列

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

修改表记录

修改某列所有值

update 表名 set 列名=值,列名=值 [where 条件];

按条件修改数据

update 表名 set 列名=值,列名=值 where 列名=值;

删除表记录

delete from 表名 [where 条件];

查询表记录

基本查询

select [distinct] *|列名 from 表 [条件];

查询所有

select * from 表;

按列查询

select 列名[, 列名...] from 表;

条件查询

select *|列名 from 表 where 列名 比较符[> , < , >= , <= , <> ,=] 值;

多条件查询

select *|列名 from 表 where 条件 逻辑符[and , or ,not] 条件...;

范围查询

select *|列名 from 表 where 列名 in (值,值,...);

模糊查询

select *|列名 from 表 where 列名 like ‘表达式‘;

表达式中可以使用_或者%作为占位符。
_只能代表一个字符,而%可以代表任意个字符。

  • like ‘李_’=:名字中必须是两个字,而且是姓李的。
  • like ‘李%’=:名字中姓李的学生,李子后可以是1个或任意个字符。
  • like ‘%四’=:名字中以四结尾的。
  • like ‘%王%’=:只要名称中包含这个字就可以。

统计查询

使用运算符
select 列名 运算符[+,-] 列名 [运算符 列名...] from 表;
使用聚合函数
select 聚合函数(参数...) from 表;
聚合函数 作用
sum() 求和
count() 求个数
max() 求最大值
min() 求最小值
avg() 求平均值

不重复查询

select distinct *|列名 from 表;

别名查询

select 列名 as 别名[, 列名 as 别名...] from 表 ;

排序查询

升序查询
select * from 表 order by 列名 [asc];
倒序查询
select * from 表 order by 列名 dasc;
多重排序查询
select * from 表 order by 列名 排序方式, 列名 排序方式;

分组查询

基本分组查询
select * from 表 group by 列名;

分组查询并在where子句中使用聚合函数

select * from 表 group by 列名 having 含聚合函数的条件;

sql语句

标签:字符   统计   表操作   ref   mysq   主键约束   drop   double   范围   

人气教程排行