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

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

时间:2024-07-15 18:25:56浏览次数:11  
标签:DCL 数据库 DDL DML 查询 语法 数据表 表名 字段名

文章目录

数据定义语言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)添加一列 add
(2)修改列类型 modify
(3)修改列名 change
(4)删除一列 drop
(5)修改表名 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 分组条件;

标签:DCL,数据库,DDL,DML,查询,语法,数据表,表名,字段名
From: https://blog.csdn.net/m0_70882914/article/details/140444544

相关文章

  • Msql数据库之DDL(数据定义语言)的相关操作
    数据定义语言(DDL):用于创建、修改和删除数据库对象,如数据库、表、视图、索引等一、数据库的相关操作:1、创建数据库语法:createdatabase[ifnotexists]数据库名;例:createdatabaseifnotexiststest;2、使用(切换)数据库:语法:use 数据库名;例:use test;3、查......
  • MySQL 数据库的 DDL
    备份MySQL数据库的DDL(数据定义语言)语句包括导出数据库结构(如表、视图、触发器、存储过程和函数等),但不包括实际数据。通常使用mysqldump工具进行此类操作。以下是具体的方法:备份DDL1.导出数据库结构(不包括数据)使用mysqldump工具导出数据库结构,可以指定--no-data......
  • C#面:简述什么是中间件(Middleware)?
    中间件是组装到应⽤程序管道中以处理请求和响应的软件。每个组件:选择是否将请求传递给管道中的下⼀个组件。可以在调⽤管道中的下⼀个组件之前和之后执⾏⼯作。请求委托(Requestdelegates)⽤于构建请求管道,处理每个HTTP请求。请求委托使⽤Run,Map和Use扩展⽅法进⾏配置。单......
  • 22、Django-中间件-Middleware
    1、中间件是Django请求/响应处理的钩子框架、他是一个轻量级的、低级的“插件”系统,用于全局改变Django的输入或输出2、中间件以类的形式体现3、每个中间件组件负责做一些特定的功能、例如:Django包含一个中间件组件AuthentucationMiddleware、它使用会话将用户与请求关联起来......
  • 测试辅助工具(抓包工具)的使用5 之 Fiddler抓取手机包
    1.对PC(笔记本)参数进行配置(1)配置fiddler允许监听到https(fiddler默认只抓取http格式的)打开Fiddler菜单项Tools->TelerikFiddlerOptions->HTTPS,勾选CaptureHTTPSCONNECTs,点击Actions,勾选DecryptHTTPStrawic和Ignoreservercertificateerrors两项,点击OK(首次点击会......
  • MySQL数据库基本操作-DDL和DML
    1.DDL解释DDL(DataDefinitionLanguage),数据定义语言,该语言部分包括以下内容:对数据库的常用操作对表结构的常用操作修改表结构2.对数据库的常用操作功能SQL查看所有的数据库showdatabases;查看有印象的数据库show databaseslike'_xx%'(_一个字符;%任意字符)创建数据......
  • 文字识别技术升级:Airtest与PaddleOCR模型的协作小技巧
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途一、前言在进行自动化测试的过程中,ocr文字识别一直是大家最想要实现以及最需要的能力,今天就来介绍一个由百度飞浆提供的一个免费的ocr识别库——PaddleOCR,以及探......
  • next.js 利用中间件(middleware.ts)实现PC与移动互相丝滑跳转
    场景描述产品要求开发一个落地页,为了美观,他要求这个两个页面分开设计,PC页面路由是`/landingpage`,移动端页面是`/landingpage/mobile`从用户角度出发,现在有一种访问场景,假如用户A正在访问PC页面`/landingpage`,然后他要把这个页面以微信方式分享给用户B,用户通过手机方式打开,那这个......
  • 给暑假加个ddl 不要再慢慢油油啦!
    其实是暑假规划及详细ddl及实际完成情况的记录。算法刷题(速度刷题)(多刷多思考)(别想太慢)打比赛(有则打之)(及时补题)ddl刷完算法基础课和提高课加油Javajava的预习希望可以尽量预习多一点,但不要像寒假那样只是入门一点点背单词把六级的英语单词背完吧(要的所以闲暇的化可......
  • PaddleNLP UIE 实体关系抽取
    目录环境依赖配置SSH克隆代码训练定制代码结构数据标注准备语料库数据标注导出数据数据转换doccanoLabelStudio模型微调问题处理找不到'paddlenlp.trainer'找不到GPUprotobuf==3.20.2CUDA/cuDNN/paddlePaddleNLPUIE实体关系抽取PaddlePaddle用户可领取免费TeslaV100在线算......