MYSQL数据库语法(笔记)

一、创建表语法

1.1 创建表

格式:

create table表名(

列名1 数据类型primary key,

列名2 数据类型,
列名n 数据类型

):

1.2 查看仓库中全部的表

格式: show tables;


1.3 查看表结构

格式: desc 表名;

二、插入语法

2.1 向全部列插入数据格式:


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

说明:values中的列值,必须和表结构中的列名是对应的。


2.2向指定列插入数据格式:


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

说明:表名中的列名必须和values中的列值是--对应的。

三、更新

更新语句格式:
update 表名 set 列名1=该刿新值,列名2=该列新值... where条件;

说明:如果没有where修改表中全部数据。

四、删除


4..1 删除表中的数据


格式:delete from 表名 where 条件:

说明:如果没有where条件,删除全部数据


4.2 删除表

格式: drop table (if exists)表名;

五、查询(重点)

5.1 查询全部列数据

格式:

select*from 表名


5.2 查询指定列数据

格式:

select 列名1,列名2,列名3....列名n from 表名

5.3 给列起别名

格式:

select 列名1 as 别名1,列名 as 别名2,...,列名n as 别名n from 表名;

5.4 去重

格式:

select distinct 列名 from 表名;

5.5 限制查询(limit)

格式:

select */列名 from 表名limit 初始位置,行数;

说明:初始位置是从哪行开始显示,一个可选值,默认值是0,行数是要查询的行数

5.6 排序(order by)

格式:
select */列名 from 表名order by列名1 asc/desc,列名2 asc/desc;

说明:
(a)asc 升序(默认) desc 降序

(b)如果对多列进行排序的时候,首先排序第一列,第一列中必须有相同的列值,才会进行第二列排序。

5.7条件查询

语法格式:
select */列名 from 表名 where 条件;

条件包括:关系运算符(> < = >= <= <>/!=)、逻辑运算符(and、or、not)、特殊情况

(1)查询列值为空(is null)
(2)查询列值不为空(is not null)
(3)between...and主要用于查询符合某个值范围条件的数据

语法格式:

select列名 from 表名where 列名 between 初值 and 终值;说明:[初值,终值]
(4)in主要用于比较要查询的值是否在列中存在

5.8模糊查询(like)

语法格式:
select 列名 from 表名 where列名 like 条件

说明:
(a)%:表示0个或者多个任意字符

(b)_:表示任意1个字符

5.9 分组查询

5.9.1聚合(分组)函数

(1)count(列名/*)

*:统计该表中数据的总条数

列名:统计该列中列值不为空的,数据的总条数


(2)sum(列名)统计该列中所有列值累加之和


(3)avg(列名)统计该列中,所有列值的平均值


(4)min(列名)统计该列中的最小值


(5)max(列名)统计该列中的最大值

5.9.2 分组查询解释

根据某一列,把数据分成几组,可以对每一组数据使用聚合函数。

语法格式:

select 列名/分组函数from 表名

where条件

group by 列名

order by列名/分组函数asc/desc;

5.9.3 HAVING语句


说明:对分组以后的数据,再次进行过滤,经常和分组函数一起使用。

比较having和where:

where针对整张表数据进行过滤,

having针对分组后的数据进行过滤

where可以单独使用,
having必须和group by一起使用。

格式:
select列名/分组函数from 表名

where条件
group by 列名

having条件

5.10 嵌套查询(子查询)难点

说明:在查询内部又包含一个查询语句

5.11 关联查询 难点


多表连接查询

说明:由于要查询的数据,分布在不同的表中,为了一次获取不同表中的数据,就需要使用连接查询。

(1)内连接查询

只查询满足条件的记录

格式:
select别名1.*/列名1,别名2.*/列名2..

from 表1别名1,表2别名2.

where 关联条件;

(2)外连接查询

1)左外连接查询

说明:以左边的表为主,查询左表中所有的数据以及与之关联的右表中的数据。

格式:

select别名1.*/列名1,别名2.*/列名2..

from 表1别名1 left join 表2别名2.

on 关联条件;

2)右外连接查询

说明:以右边的表为主,查询左表中所有的数据以及与之关联的左表中的数据。

格式:

select别名1.*/列名1,别名2.*/列名2..

from 表1别名1  right join 表2别名2.

on 关联条件;

六、主键约束(primary key)

说明:

主键约束就是用来标识表中的数据,避免表中出现重复的数据,被主键约束所修饰的列,该列的列值必须是唯一且非空的,一张表中只能有一个主键约束。


修改表时,添加主键约束

格式:

alter table 表名 add primary key(列名)


删除主键约束

格式:

alter table 表名 drop primary key;

七、唯一约束(unqiue)

说明:用来指定一个列或者几个列的组合值,使其具有唯一性,防止用户在该列上输入重复的列值。

1.使用唯一约束修饰的列,该列可以插入null值

2.一张表可以有多个唯一约束

修改表时,添加唯一约束

格式:
alter table 表名 add unique(列名1,列名2...);

八、默认值约束(default)


说明:用来表示,在某列指定默认值,当执行插入操作的时候,如果该列没有插入列值,系统会自动把默认值作为该列的列值。每个列只能指定一个默认值

修改表时,添加默认值约束


格式:
alter table 表名 modify 列名 数据类型 default 默认值;


删除默认值约束


格式:
alter table 表名 modify列名数据类型default null;

九、非空约束(not null)

说明:当执行插入操作的时候,被非空约束所修饰的列,该列的列值不能为null


修改表时,添加非空约束

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


删除非空约束

格式:
alter table 表名 modify 列名 数据类型:

猜你喜欢

转载自blog.csdn.net/hanxiaodihhh/article/details/140679062