对MySQL的几个入门操作

如题所述



一.最基本的DDL语句

1.创建数据库

命令:created database 数据库名;

2.使用数据库

命令:use 数据库名;

3.删除数据库

命令:drop database 数据库名

二.简单的DML操作

1.增

命令:insert into 表名 (列名) values (数据); //列名可以是多个,列与列之间用逗号分隔,数据类型和顺序与列名一致;

2.改

命令:update 表名 set 列 = 新值 where 条件;//如果不使用where过滤,会修改一整列;

3.删

命令:delete from 表名 where 条件 ;//不使用where删除全部,可用日志恢复;

命令:truncate table 表名;//无法恢复

4.写在where 之后的条件语句

a.运算符:

等于: =

不等于: !=/<>

大于/小于:>/</>=/<=

逻辑:与--and;或--or;

模糊匹配:使用关键字--like ;%表示0个或多个字符;_表示一个字符

例:‘%贝%‘表示含有贝字的所有内容;‘_贝_‘表示三个字符贝在中间;注:汉字在数据库需要3个字符表示;

in(1,2,3)--表示列中有这三个数组的满足条件;

not inin(1,2,3)--表示列中有这三个数组的不满足条件;

三.简单的DQL语句

1.基本语法:select 要查询列 from 表名where 过滤条件 ouder by 排序;

其中 :select和from两个关键字是基本语法;where和ouder by是可选语法;

2.表名/列 后跟as 再跟别名; //可以给表或列取别名便于在复杂情况下区分;

3.between 数据 and 数据;表示两个数据之间的数据;

4.distince 列名 //去除重复

5.limit 分页;

6.如果需要排序:ouder by 跟上asc 表示升序(默认是升序);跟上desc表示降序;

7.聚合函数

a.count--统计行的数量

命令:select count(技数规范) from 表名;

计数规范:*表示所有的行;

all 列名表示所有的非空行;

distince 列名 所有的非空不重复行;

b.sum--获取单列所有数据的总和;

用法同上,技术规范没有*;

c.avg--获取单列所有数据的平均值;

用法同上,技术规范没有*;

d.max/min--获取单行的最大值/最小值;

8.数据分组

语法:select 列A,聚合函数 from 表 where 过滤条件 group by 列A;

先过滤,然后按照列A对整张表进行分组;分组以后select 所查询的内容只能是列A与聚合函数,否则出现的数据会失去意义(之后查询到每组第一个数据);

having 专门对分组后的数据进行过滤;

执行顺序(先后为):from

where

group by

select

having

order by

9.子查询 --在一个查询中嵌套查询

a.在select后嵌套

例:select 列,(子查询) from 表名;

特点,子查询的结果只能是单行单列

b.from后嵌套--以子查询的结果为表

例:select * from (子查询);

c.where后嵌套--用一个子查询结果作为条件;

⑴.使用运算符

子查询结果为单行单列的情况下;

⑵.in/not in

子查询结果为多行单列的情况;

⑶.all

满足子查询所有结果,为真

⑷.any

满足子查询其中一个结果,为真;

⑸.exists

只有子查询结果里由外部需要的就为真;

10.联接--将多张表联接成一张大表;拿第一张表所有记录与第二张表所有记录相连--表一的列数*表二的列数;

例:select 列1,列2 from 表1 join 表2 on 联接关系;

a.内联接

使用运算符匹配两表的所有行,得到有效行

from 表1 inner join 表2;from 表1 join 表2;from 表1,表2 where 条件;效果一样

b.外连接

left join --左外联,只过滤右边的表,左边全显;

right join --右外联,只过滤左边的表,右边全显;

c.自连接--同一张表放在 join两边;
对MySQL的几个入门操作
标签:

温馨提示:答案为网友推荐,仅供参考
相似回答