MySQL数据库基本语句

目录

一、SQL语句分类

二、各类语句具体用法

1、DDL(操作数据库)

(1.1)C(create):创建

(1.2)R(retrieve):查询

(1.3)U(update):修改

(1.4)D(delete):删除

2、DDL(操作表)

(2.1)C(create):创建

(2.2)R(retrieve):查询

(2.3)U(update):修改

(2.4)D(delete):删除

3、DML(增删改表中数据)

(3.1)插入数据

(3.2)删除数据

(3.3)修改数据

4、DQL(查询表中的数据)

(4.1)语法格式

(4.2)基础查询

(4.3)条件查询

(4.4)分组查询

(4.5)排序查询

(4.6)分页查询


一、SQL语句分类

1、DDL(Data Definition Language):数据定义语言,用来定义数据库对象,如数据库、表、列等等。关键字:create、drop、alter等等。

2、DML(Data Manipulation Language):数据操作语言,用来对数据库表中的数据进行增删改。关键字:insert、delete、update等等。

3、DQL(Data Query Language):数据查询语言,用来查询数据库中表的记录(数据)。关键字:select、where等等。

4、DCL(Data Control Language):数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT、REVOKE等等。

二、各类语句具体用法

1、DDL(操作数据库)

(1.1)C(create):创建

①创建数据库

create database 数据库名称;

②创建数据库时,判断不存在,再创建

create database if not exists 数据库名称;

③创建数据库,并指定字符集

create database 数据库名称 character set 字符集名;

(1.2)R(retrieve):查询

①查询所有数据库的名称

show databases;

②查询某个数据库的字符集,即查询某个数据库的创建语句

show create database 数据库名称;

(1.3)U(update):修改

①修改数据库的字符集

alter database 数据库名称 character set 字符集名称;

(1.4)D(delete):删除

①删除数据库

drop database 数据库名称;

②判断数据库存在,存在再删除

drop database if exists 数据库名称;

2、DDL(操作表)

(2.1)C(create):创建

①语法格式:

create table 表名(

                列名1  数据类型1  NOT NULL   AUTO_INCREMENT,

                列名2  数据类型2,

                ...

                列名n  数据类型n,

                PRIMARY KEY(主键列名)

);

AUTO_INCREMENT:定义列的自增属性,一般用于主键,新增一行数据时该列的值会自动加1。

②复制表

create table 表名 like 被复制的表名;  //只复制表结构

create table 表名 select * from 被复制的表名;  //复制表结构及数据

(2.2)R(retrieve):查询

①查询某个数据库中所有的表名称

show tables;

②查询表结构

desc 表名;

(2.3)U(update):修改

①修改表名

alter table 表名 rename to 新的表名;

②修改表的字符集

alter table 表名 character set 字符集名称;

③添加一列

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

④修改列名称、类型

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

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

⑤删除列

alter table 表名 drop 列名;

(2.4)D(delete):删除

①删除表

drop table 表名;

drop table if exists 表名;

3、DML(增删改表中数据)

(3.1)插入数据

①语法格式:

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

注意:如果表名后不指定列名,则默认给所有列插入值,即values括号内每个列的值都要定义好。

(3.2)删除数据

①语法格式:

delete from 表名 where 条件;

注意:如果不加条件,则删除表中所有数据。

           如果要删除所有数据,建议使用:

truncate table 表名;

(3.3)修改数据

①语法格式:

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

注意:如果不加任何条件,则更新表中所有数据。

4、DQL(查询表中的数据)

(4.1)语法格式             

select 字段 from 表名

where 条件

group by 分组 having 分组后的条件

order by 排序

limit 分页限定

(4.2)基础查询

①多个字段的查询

select 字段名1, 字段名2, ... from 表名;

查询所有字段可以使用:

select * from 表名;

②去除重复的结果集

select distinct 字段名 from 表名;

③计算列

sql语句中有许多方便查询的函数,后续会单独写一篇关于常用函数的博客,这里以ifnull为例。

ifnull(表达式1, 表达式2)

表达式1:需要判断是否为null的字段名

表达式2:该字段为null时要替换的值

④起别名

使用as或者直接空格

例如:

//使用as
select math as M,
       english as E
from student;
//直接空格
select math M,
       english E
from student;

(4.3)条件查询

条件查询即where子句后跟查询条件

常见运算符:

>大于  <小于  >=大于等于  <=小于等于  =等于  <>不等于

between...and        and

in        or

is null        is not null  等等

聚合函数:count        max        min        sum        avg  等等

模糊查询:like        占位符:①下划线 _ :单个任意字符

                                              ②百分号 % :多个任意字符

例如:

select * from student where name like '马%';   //查询所有姓马的同学
select * from student where name like '_马%';  //查询名字里第二个字是马的同学

(4.4)分组查询

①语法格式:group by 分组字段; 

将查询结果按照1个或多个字段进行分组,字段值相同的为一组。

例如:

//根据性别分组,查询男生和女生的数学平均分
select sex, AVG(math) from student group by sex; 

②where和having的区别:

where在分组前进行限定,若不满足条件则不参与分组。

having在分组后进行限定,若不满足条件,则不会被查询出来。

where后不能跟聚合函数,having可以进行聚合函数的判断。

(4.5)排序查询

①语法格式:

order by 排序字段1 排序方式1, 排序字段2 排序方式2, ... ;

②排序方式:

ASC:升序,默认

DESC:降序

(4.6)分页查询

①语法格式:

limit 开始的索引, 每页查询的条数;

②公式:

开始的索引 = (当前页码 - 1)* 每页查询的条数

例如:

select * from student limit 0,3;  //第1页
select * from student limit 3,3;  //第2页

limit是MySQL的“方言”。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值