MySQL数据库的SQL语句知识总结

一、创建语句create 

使用create database命令可以创建数据库。

create database 数据库名

使用create table命令可以创建表。 

create table 表名
(列名 数据类型(int/varchar...)not null/null (default 默认值)...)

 视图是从一个或多个表(视图)导出来的虚表,不进行实际存储,可以像表一样被查询、修改、删除和更新

在默认情况下,将当前数据库创建新视图时,应将名称指定为“库名.视图名”

视图的命名必须遵循标识符命名规则,不能与表同名,对于每一个用户来说,视图名必须唯一

不能把规则、默认值或出触发器与视图相关联

不能在视图上建立任何索引,包括全文索引

视图中也对selec语句进行了一些限制:

        定义视图的用户必须对所参照的表或视图有查询权限,在定义中引用的表或视图必须存在

        不能包含from子句中的子查询,不能引用系统或用户变量,不能引用预处理语句参数

        在视图定义中允许使用order by 子句,如果从特定视图进行了选择,而该视图使用了具有自己order by 子句的语句,则视图定义中的order by 子句将被忽略

create [or replace] view 视图名 [(列名列表)]
    as select语句
        [with [cascaded / local] check option]

//or replace 可以替换已有的同名视图
//列名列表可以为视图的列定义明确的名称,如果和源表或视图中相同的列名,可以省略
//select语句可以查询多个表或视图

二、指定数据库语句use 

想要在不同的查询页面使用指定数据库,可以用use命令。

use 数据库名

三、修改语句alter 

数据库创建后,如果想要修改数据库的参数,可以使用alter database 命令。

alter 数据库名

alter table 命令可以用于更改原有表的结构。例如增加、删除、减列、创建或取消索引、更改原有列的类型、重新命名列或表,还可以更改表的评注和表的类型。

alter table 表名
add 列名
//添加列

alter 列名
    set default 默认值/drop default
//修改默认值

change 旧列名 列定义
    first/alter 列名 (first表示在表头前添加,alter直接默认添加在最后)
//对列名重命名

modify 列定义 first/alter 列名 (first表示在表头前添加,alter直接默认添加在最后)
//修改列类型

drop 列名
//删除列

rename 新列表
//重命名该表

alter view 视图名
as select语句
//对已有视图的定义进行修改

如果需要删除已经创建的数据库,可以使用drop命令。

四、删除语句drop

drop database 数据库名

 需要删除一个表时,可以使用drop table语句。

drop table 表名

使用 if exists 可以避免删除不存在的数据库时显示MySQL错误信息。

drop database if exists 数据库名

使用 if exists 可以避免删除不存在时出现错误信息。 

drop table if exists 表名

删除视图

drop view [if exists]
视图名1,视图名2...

五、show出你的数据

 在服务器中如果现需要显示已建立的数据库,可以使用show databases 命令。

show databases

show tables 命令用于显示已经建立的数据表文件。

show tables

六、复制你的数据 

 可以使用like/as 复制表

create table 新表名
like 参照表名
//可以复制与参照表名结构相同的新表,列名、数据类型、空值定和索引也将复制。但是不会复制内容,所以新表是个空表。

as (select语句)
//as可以复制表的内容,但是索引和完整性约束不会复制。select语句表示一个表达式们可以是一条select语句。

七、数据完整性约束 

1、primary key 主键

        要求每个表必须定义一个主键;

        表中不同的行在主键上不能具有相同的值;

        在复合主键中不应该包含一个不必要的列。

主键的定义

列的完整性约束
create table 表名
(
    列名1 数据类型 primary key,
    列名2 数据类型 not null/null
);

或者

表的完整性约束
create table 表名
(
    列名1 数据类型 not null/nul,
    列名2 数据类型 not null/null,
    列名3 数据类型 not null/null,
    primary key (此处可以定义复合主键的主键名) (列名1,列名2)
);

2、unique 代替键 

unique 代替键与primary key 主键的区别

        数量不同:一个表可以有多个unique键,并且可以重合

        NULL设置不同;unique的字段的值可以取NULL马,但是要使用NULL或者NOT NULL声明

        索引不同:创建不同的约束,系统会自动生成对应的索引

create table 表名
(
    列名1 数据类型 not null/null,
    列名2 数据类型 not null/null
    primary key(列名1),
    unique(列名2)
);

或者

create table 表名
(
    列名1 数据类型 not null/null unique,
    列名2 数据类型 not null/null
);

对于已经创建好的表,可以使用alter table语句向表中修改约束

alter table 表名
    add primary key (列名,...)  //添加主键
    add unique (列名,...)       //添加替代件约束
    drop primary key (列名,...) /删除主键
    drop index 索引名           //删除索引

3、foreign key 外键

创建表的同时创建外键
create table 表名
(
    列名1 数据类型 not null/null,
    列名2 数据类型 not null/null,
    FOREIGN KEY (从表的对应列名) REFERENCES 主表表名(对应列名)
);

对已有表创建外键
alter table 表名
    add FOREIGN KEY (从表的对应列名) REFERENCES 主表表名(对应列名)

八、数据的增删查改

1、insert语句可以插入数据

insert into 表名 (列名,...)
values (对应列的数据类型)
//向表中插入数据

insert into 视图名
values (对应列的数据类型)
//向视图中插入数据

2、delete语句可以删除数据

delete from 表名
//删除表中的所有数据

delete from 表名
where 条件
//根据条件删除表中对应的数据 

delete from 视图名
where 条件
//根据条件删除视图中对应的数据
//对依赖于多个基本表的视图不能的使用delete语句

3、update语句可以修改数据

update 表名
set 列名1=表达式1 ...
where 条件
//修改对应表的数据

update 视图名
set 列名1=表达式1 ...
where 条件
//修改对应视图的数据

4、select语句可以查询数据

select * from 表名
//查询对应表的所有信息

select 列名1,列名2... from 表名
//查询对应表的对应列的数据

select * from 表名
where 条件
//根据条件查询符合条件的数据

select 表达式
//可以进行简单的运算

select 列名 (as) 别名
//查询后使用别名显示该列的列头

select 列名...
    case
        when 条件1 then 表达式1
        when 条件2 then 表达式2
        ...
        else 表达式n
end
from 表名
//可以根据条件替换对应表的数据

select distinct 列名1,...
//使用distinct消除查询结果集中的重复行

select * from
where 列名 between 表达式1 and 表达式2
//可查询条件中符合范围的数据


select 列名1,列名2...
    from 对应视图名
//可以查询对应视图

九、join连接

1、内连接 (inner) join

select 表1.列名1,表2.列名1 from 表1
(inner) join 表2
    on (表1.唯一标识符=表2.与表1对应列);

2、外连接 left/right join

select 表1.列名1,表2.列名1...from 表1
left/right join 表2 on 表1.唯一标识符=表2.对应列;
//left join 连接后显示主表与从表的共同拥有的数据,还包含主表的所有数据,不包含从表的额外的数据
//right join 连接后显示主表与从表的共同拥有的数据,还包含从表的所有数据,不包含主表的额外的数据 

十、常用的聚合函数

函数说明
COUNT

求组中项数,返回 int 类型整数

MAX求最大值
MIN求最小值
SUM返回表达式中所有值的和
AVG求组中值的平均值

十一、排序 

1、group by 分组排序

group by 子句后通常包含列名或表达式

MySQL中可以在列或表达式后面加上ASC(升序)或DESC(降序)进行排序

可以根据表达式或多个列进行分组

select * from 表名
group by 列名 / 表达式
//对对应表的查询结果按照列或某一结果进行分组

2、having 子句

having 子句是group by 的条件子句,有having就一定有group by,但是有group by不一定有having

select * from 表名
group by 列名 / 表达式
having 条件
//对对应表的查询结果满足条件的按照列或某一结果进行分组

3、order by 子句

select * from 表名
order by 列名/表达式/列编号 (ASC 升序/DESC 降序)
//对查询结果按照条件进行排序,默认ASC升序

4、limit 子句

select * from 表名
limit 偏移量,行数
//偏移量:指定返回的第一行的偏移量(初始值为 0 )
//行数:返回的行数
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值