数据库操作语言之DDL、DML、DCL、DQL

数据定义语言DDL【Data Definition Language】

创建数据库的语法:
create database [其他] 数据库名 [设置编码格式];

说明:使用[ ]表示的内容表示可选项。

例如,使用命令创建数据库:

(1)创建一个班级db_student1数据库,且使用默认编码;

(2)创建一个班级db_student2数据库,charset设置编码为utf8.

# 1.创建一个默认编码的数据库
create database db_student1;

# 2.创建一个utf8编码的数据库
create database db_student2 charset utf8;
查看数据库的语法:
# 查看有哪些数据库
show databases;

# 查看数据库的创建语句
show create database 数据库名;

例如,使用命令查看数据库:

(1)查看MySQL服务器中有哪些数据库;

(2)查看创建数据库db_student1的创建语句。

# 1.查看哪些数据库
show databases;
# 2.查看数据库db_student1的创建语句及编码   
show create database db_student1;
删除数据库的语法:
drop database 数据库名称;

例如,使用命令来删除数据库db_student1。

drop database db_student1;

数据表【DDL】

数据表操作的命令有:
1: 创建数据表; create
2: 查看数据表; show
3: 删除数据表; drop
4: 修改数据表. alter
创建数据表语法:
create table 表名(
	字段名1 数据类型(长度) [约束],
	字段名2 数据类型(长度) [约束],
	字段名3 数据类型(长度) [约束],
	...
);

说明:

(1)常见类型有int、double、varchar(x);

(2)primary key表示主键,使用主键修饰的字段必须保证唯一且非空;

(3)auto_increment表示自动增长,通常为int型的值才能设置为自动增长。

例如,使用创建数据表命令来完成:

(1)创建一个新的查询脚本和新数据库db_user,并在该库中完成创建数据表的操作;

(2)创建字段时,不添加任何[约束]条件;

(3)新建一个用户表user,字段有编号、用户名、昵称;

# 1.新建数据库
create database if not exists db_user charset utf8;
# 2.使用库
use db_user;
# 3.创建数据表
create table user(
    id int,
    username varchar(20),
    nickname varchar(20)
);
查看数据表语法:
# 查看有哪些表
show tables;

# 查看数据表的创建语句
show create table 表名;

# 查看表结构
desc 表名;
删除数据表语法:
drop table 表名;
修改数据表的常用操作:
1)添加一列 add2)修改列类型 modify3)修改列名 change
(4)删除一列 drop5)修改表名 rename
给数据表添加一列:
alter table 表名 add 列名 类型(长度);

例如,使用命令完成:

(1)创建一个新数据库db_user2,设定默认编码为utf8,并在该库中完成修改数据表的操作;

(2)添加判断语句,新建一张用户表table_user,有用户名、密码这2个字段;

(3)给用户表添加一列信息展示information字段,长度为140;

# 1.新建库
create database if not exists db_user2 charset utf8;
# 使用库
use db_user2;
# 2.创建表
create table if not exists user(
    username varchar(20),
    password varchar(20)
);
# 3.添加一列
alter table user add information varchar(140);
修改列类型:
alter table 表名 modify 要修改的字段名 类型(长度);

例如,使用命令完成:给用户表的信息字段类型修改为char,长度修改为60。

alter table user modify information char(60);
修改列名:
alter table 表名 change 旧列名 新列名 类型(长度) [约束];

例如,使用命令完成:把用户表的用户名修改为name,字符串类型、长度为18。

alter table user change username name varchar(18);
删除一列:
alter table 表名 drop 列名;

例如,使用命令完成:删除用户表中的年龄这一列。

alter table user drop age;
修改表名:
rename table 表名 to 新表名;

例如,使用命令完成:把用户表的表名更改为table_user。

rename table user to table_user;

数据操作语言DML【Data Manipulation Language】

数据操作命令:
1: 插入数据; insert
2: 删除数据; delete
3: 修改数据. update
插入数据语法:
insert into 表名(字段名1,字段名2,字段名3,...) values(1,2,3,...);
修改数据语法:
update 表名 set 字段名1=,字段名2=,字段名3=,... where 条件;
删除数据语法:
delete from 表名 where 条件;

数据查询语言 DQL (Data Query Language)

简单查询语法:
# 查询表内所有数据
select * from 表名;

# 查询表内数据,以指定的列来显示结果
select [distinct] 字段名1,字段名2,... from 表名;
比较查询语法:
select [*|字段名1, 字段名2, ...] from 表名 where 条件;

在where条件中,使用比较运算符来查询结果。

比较运算符有:

比较运算符含义
=等于
>大于
>=大于等于
<小于
<=小于等于
!=或<>不等于

说明:比较运算符的符号都是英文状态下的符号。

范围查询语法:

(1)in是用于非连续值的范围查询,语法:

select * from 表名 where 字段名 in (范围值1,范围值2,...);

(2)between and 是用于值在连续范围的查询,语法:

select * from 表名 where 字段名 between 范围值1 and 范围值2;
逻辑查询语法:

对数据进行条件筛选处理,通用语法:

select [*|字段名1, 字段名2, ...] from 表名 where 条件;

逻辑运算符有:

逻辑运算符含义
and与、和、且。
1.逻辑运算符and的前后一般是True或False的结果;
2.当两个条件都为True(真),整个操作结果才是True真。
or或、或者
1.逻辑运算符or的前后一般是True或False的结果;
2.当两个条件都为False(假),整个操作结果才是False假。
not一般情况下,要设定not取反,对整个操作结果做not处理。
模糊查询语法:
select * from 表名 where 字段名 like '%某个字%';select * from 表名 where 字段名 like '某个字_';

说明:%表示任意多个任意字符,_表示一个任意字符。

非空查询语法:
select * from 表名 where 字段名 [条件]; 

非空运算符有:

非空运算符含义
is null判断为空
is not null判断为非空

说明:此处的等于需要使用is来表示,可以简单的理解为是用于判断null对象。

排序查询语法:

排序查询指的是对某字段进行升序或降序的形式来查询结果,语法:

select * from 表名 where 条件 order by 字段名 [asc|desc];

说明

(1)asc从小到大排列,即升序;

(2)desc从大到小排序,即降序;

(3)默认按照列值从小到大进行排序(即asc升序)。

聚合查询语法:
select 函数(...) from 表名 [where 条件];

聚合函数有:

聚合函数作用
count(col)用于统计指定列不为null的总数据条数。
sum(col)用于计算指定列的数值和。
max(col)用于计算指定列的最大值。
min(col)用于计算指定列的最小值。
avg(col)用于计算指定列的平均值。

说明

(1)聚合函数是用于对一列数据进行统计,结果会返回一个单一的值;

(2)注意:聚合函数会忽略空值进行统计处理。

数据控制语言: DCL (Data Control Language)

分页查询语法:
select 字段名1,字段名2,... from 表名 limit M, N;
# M: 整数,表示从第几条索引开始,计算方式:(当前页-1) * 每页显示条数;
# N: 整数,表示查询多少条数据.

说明

(1)limit是分页查询的关键字;

(2)M为整数,表示从第几条索引开始,默认值是0;

(3)N为整数,表示查询多少条数据。

分组查询语法:

group by语法:

select 字段名1,字段名2,... from 表名 group by 分组字段名 [having 分组条件];

说明

(1)分组字段名:表示按照指定字段的值进行分组;

(2)group by的作用是实现分组,默认可以实现去重操作;

(3)having分组条件是用来过滤分组后的数据。

使用group by + 聚合函数语法:

select 字段名1,字段名2,聚合函数(...) from 表名 group by 分组字段名;

group by + having的使用:

select 字段名1,字段名2,... from 表名 group by 分组字段名 having 分组条件;
  • 29
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值