首页 > 数据库 >MySQL的DDL和DML操作语法

MySQL的DDL和DML操作语法

时间:2024-07-27 17:51:36浏览次数:13  
标签:-- 数据库 MySQL DML 语法 stu 表名 列名 DDL

  一、SQL分类


  SQL ,英文:Structured Query Language,结构化查询语言。是用于操作关系型数据库的编程语言。SQL定义操作所有关系型数据库的统一标准,可以使用SQL操作所有的关系型数据库管理系统,以后工作中如果使用到了其他的数据库管理系统,也同样的使用SQL来操作。

SQL的分类:

  1). DDL(Data Definition Language) : 数据定义语言,用来定义数据库对象:数据库,表,列等。DDL简单理解就是用来操作数据库,表等

  2). DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改

DML简单理解就对表中数据进行增删改

  3). DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)

DQL简单理解就是对数据进行查询操作。从数据库表中查询到我们想要的数据。

  4). DCL(Data Control Language) 数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户。DML简单理解就是对数据库进行权限控制。比如我让某一个数据库表只能让某一个用户进行操作等。

> 注意: 以后我们最常操作的是 `DML` 和 `DQL` ,因为我们开发中最常操作的就是数据。

 

  二、MySQL的DDL操作语法
(一)DDL操作数据库
DDL来操作数据库。而操作数据库主要就是对数据库的增删查操作。

1)查询所有的数据库

 

--查询所有的数据库
SHOW DATABASES;

 

2)创建数据库:

语法:

      
--创建数据库
  CREATE DATABASE 数据库名称;

  CREATE DATABASE IF NOT EXISTS 数据库名称;

 


而在创建数据库的时候,我并不知道db1数据库有没有创建,直接再次创建名为db1的数据库就会出现错误。
从上面的效果可以看到虽然db1数据库已经存在,再创建db1也没有报错,而创建db2数据库则创建成功。

3)删除数据库

     --删除数据库 

 DROP DATABASE 数据库名称;
 
 DROP DATABASE IF EXISTS 数据库名称;   -- 删除数据库(判断,如果存在则删除)

 


4)使用数据库
数据库创建好了,要在数据库中创建表,得先明确在哪儿个数据库中操作,此时就需要使用数据库。
使用数据库 语法:

--使用数据库
USE 数据库名称;

 


5)查看当前使用的数据库

语法:

--查看当前使用的数据库
SELECT DATABASE();

 

SELECT DATABASE();
(二)操作表
操作表也就是对表进行增(Create)删(Retrieve)改(Update)查(Delete)。

1)查询当前数据库下所有表名称

--查询当前数据库下所有表名称
SHOW TABLES;

 

 

2查询表结构

 

--查询表结构
DESC 表名称;

 

3)创建表

语法:

CREATE TABLE 表名 (
    字段名1  数据类型1,
    字段名2  数据类型2,
    …
    字段名n  数据类型n
);
--注意:最后一行末尾,不能加逗号
 
--demo:
create table tb_user (
    id int,
    username varchar(20),
    password varchar(32)
);

 


4) 删除表

删除表语法:

--删除表
 
DROP TABLE 表名;
 
--删除表时判断表是否存在
 
DROP TABLE IF EXISTS 表名;

 


5)修改表

修改表语法:

1.修改表名

-- 修改表名
ALTER TABLE 表名 RENAME TO 新的表名;
 
-- 将表名student修改为stu
alter table student rename to stu;

 


2.添加一列

-- 添加一列
ALTER TABLE 表名 ADD 列名 数据类型;
 
-- 给stu表添加一列address,该字段类型是varchar(50)
alter table stu add address varchar(50);

 


3.修改数据类型

-- 修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;
 
-- 将stu表中的address字段的类型改为 char(50)
alter table stu modify address char(50);

 


4.修改列名和数据类型

-- 修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
 
-- 将stu表中的address字段名改为 addr,类型改为varchar(50)
alter table stu change address addr varchar(50);

 


5.删除列

-- 删除列
 
ALTER TABLE 表名 DROP 列名;
 
-- 将stu表中的addr字段 删除
alter table stu drop addr;

 


三、MySQL的DML操作语法
DML主要是对数据进行增(insert)删(delete)改(update)操作。

1)添加数据
语法:

 

        --给指定列添加数据 语法:
        INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
 
        --给全部列添加数据 语法:
        INSERT INTO 表名 VALUES(值1,值2,…);
 
        --批量添加数据 语法:
        INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
        INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;

 


Demo:

 

-- 给指定列添加数据
INSERT INTO stu (id, NAME) VALUES (1, '张三');
-- 给所有列添加数据,列名的列表可以省略的
INSERT INTO stu (id,NAME,sex,birthday,score,email,tel,STATUS) VALUES (2,'李四','男','1999-11-11',88.88,'[email protected]','13888888888',1);
 
INSERT INTO stu VALUES (2,'李四','男','1999-11-11',88.88,'[email protected]','13888888888',1);
 
-- 批量添加数据
INSERT INTO stu VALUES 
    (2,'李四','男','1999-11-11',88.88,'[email protected]','13888888888',1),
    (2,'李四','男','1999-11-11',88.88,'[email protected]','13888888888',1),
    (2,'李四','男','1999-11-11',88.88,'[email protected]','13888888888',1);

 


2)修改数据
修改表数据 语法:

 

   --修改表数据
     UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件] ;

 

注意:

修改语句中如果不加条件,则将所有数据都修改!

Demo:

 

-- 将张三的生日改为 1999-12-12 分数改为99.99
update stu set birthday = '1999-12-12', score = 99.99 where name = '张三';

 


3) 删除数据

删除数据 语法:

--删除数据
DELETE FROM 表名 [WHERE 条件] ;

--删除数据
DELETE FROM 表名 [WHERE 条件] ;

 


Demo:

-- 删除张三记录
delete from stu where name = '张三';
 
-- 删除stu表中所有的数据
delete from stu;

 



标签:--,数据库,MySQL,DML,语法,stu,表名,列名,DDL
From: https://www.cnblogs.com/kongsq/p/18327272

相关文章

  • MySQL存储过程
    目录介绍特点创建调用查看删除变量查看系统变量设置系统变量注意:用户定义变量赋值使用局部变量声明赋值if参数用法:casewhilerepeatloop游标条件处理程序介绍存储过程是事先经过编译并存储在数据库中的一段sql语句的集合,调用存储过程可以简化应用......
  • 1251 - Client does not support authentication protocol requested by server; cons
    错误记录:1251-Clientdoesnotsupportauthenticationprotocolrequestedbyserver;considerupgradingMySQLclient错误原因:mysql8之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。解决方案:解决:①升级navicat驱动;②......
  • mysql安装以及多实例
    mysql安装启动----------------------------------------1.安装全流程yum源码编译rpm包装和卸载如何处理依赖关系都是要掌握的技能这里是,二进制解压即用#确认时间正确[root@tech-db-51/opt]#crontab-l*****ntpdate-untp.aliyun.com1.准备好包[root@......
  • MySQL索引
    索引的引入在数据库表中,查询某条数据记录通常就是遍历,遍历表中所有的数据,然后一条一条比对,因此注定它是O(N)的时间复杂度。由于数据库的数据是存储在磁盘上的,必然要进行大量IO数据的读取,冯诺依曼体系告诉我们,对磁盘数据的读取效率是远低于与内存中数据的,尽管存在局部性原理,O(N......
  • 在 FastAPI 中更改来自 MySQL 的数据类型输入
    我的这一行有“serialize_response”错误:@app.get("/get-sensors/",response_model=List[Data])和这个:return{"status":"success","list":data}我该如何解决这个问题!我想获取字典类型的数据为了解决在FastAPI中更改来自MySQL的数据类型输入时遇到的......
  • Starlette SessionMiddleware 将会话数据存储在服务器上还是客户端上?
    我正在开发一个无状态FastAPI应用程序。身份验证通过GoogleOAuth(openid电子邮件配置文件范围)进行处理。我正在使用Authlib,它使用SessionMiddleware(request.session)来存储临时代码和状态。现在,我想使用令牌限制对某些端点的访问。为此......
  • MySQL索引详解full-text,b-tree,hash,r-tree
    一、MySQL索引类型mysql里目前只支持4种索引分别是:full-text,b-tree,hash,r-treeb-tree索引应该是mysql里最广泛的索引的了,除了archive基本所有的存储引擎都支持它.1.full-text索引full-text在mysql里仅有myisam支持它,而且支持full-text的字段只有char、varchar、text数据类型......
  • 在Pandas中 SQL操作:SQLAlchemy和PyMySQL的区别
    SQLAlchemy和PyMySQL的区别1.SQLAlchemy和PyMySQL简介SQLAlchemy是Python编程语言下的一款开源软件。它提供了SQL工具包和对象关系映射器(ORM)来进行数据库操作。SQLAlchemy可以与多种数据库系统进行交互,包括MySQL、PostgreSQL、SQLite等。PyMySQL是Python编程语言下的一个纯Pyt......
  • mysqldump: Got error: 1066: Not unique table/alias: 'act_evt_log' when using LOC
    先说解决办法:执行下面语句mysqldump-ushooter-p123123--single-transactionfd>fd.sql  lower_case_table_names区分大小写设置注意:此参数不可以动态修改,必须重启数据库 12341、参数含义:lower_case_table_names=1  表名存储在磁盘是小写的,但是比......
  • MySQL大框架总结
    1.DDL,DML,DQL,DCL的区别(由于DCL是关乎用户的,以下内容重点讲述数据库,表与数据的操作,所以对DCL不详细赘述)DDLDMLDQLDCL中文/英文数据库定义语言datadefinitionlanguage数据库操作语言datamanipulationlanguage数据库查询语言dataquerylanguage数据......