一眼就会的DDL和DML常用操作

本文详细介绍了MySQL中的DDL(数据定义语言)和DML(数据操纵语言)。内容涵盖数据库的创建、修改、删除,数据表的操作,常用数据类型及约束(主键、唯一、非空和外键)。此外,还讨论了数据的添加、修改和删除操作,强调了数据完整性和操作技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一.DDL

1.1概述

1.2数据库操作

1.创建数据库

2.修改数据库编码:

3.删除数据库:

4.查询数据库

5.查看正在使用的数据库:

6.使用某数据库

1.3数据表操作:

创建表

修改表:

查询:

1.4常用数据类型

1.5约束

1.5.1.主键约束:primary key

1.5.2.唯一约束:unique

1.5.3.非空约束:not null某一列值不能为空

1.5.4.外键约束:foreign key,让表于表产生关系,从而保证数据的正确性。

二.DML

2.1.概述:

2.2.常用操作

添加数据

修改数据:

删除数据


一.DDL

1.1概述

DDL(Data Define Languge):数据定义语言,用于库和表的创建、修改、删除

关键字:create, drop,alter等

1.2数据库操作

1.创建数据库

#格式
create database 数据库名称 character set 字符集名称;
#举例
create database db_demo character set utf8;
#添加判断
create database if not exists 数据库名称  character set 字符集名称;;

2.修改数据库编码:

#格式

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

#举例

create database xixi character set utf8;

alter database xixi character set Unicode;

3.删除数据库:

#格式
drop database 数据库名称
#加上判断
drop database  if exists 数据库名称;

4.查询数据库

#查看所有数据库
show databases
#查看创建数据库语句
show create database 数据库名称

5.查看正在使用的数据库:

select database();

6.使用某数据库

use 数据库名称;

1.3数据表操作:

创建表

#格式
create table 表名(
  字段1 类型 约束,
  字段2 类型 约束,
  ..............
  字段n 类型 约束
);

修改表:

#修改表名
alter table 表名 rename to 新名;
#修改列名和类型
alter table 表名 change 列名 新名 新类型;
#只修改类型
alter table 表名 modify 列名 新类型;
#修改表的字符集
alter table 表名 character set 字符集;
#增加一列
alter table 表名 add 列名 类型;
#删除一列
alter table drop 列名;
#删除表
drop table 表名;
drop table if exists 表名;

查询:

#查询所有表
show tables;
#查询某个数据库的所有表
show tables from 数据库名称
#查询表结构
desc 表名称

1.4常用数据类型

类型说明
int整数类型
double浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
decimal泛型型(浮点型),在表单钱方面使用该类型,因为不会出现精度缺失问题;
char固定长度字符串类型;长度默认255。
 varchar可变长度字符串类型;(65535)
date日期类型,格式为:yyyy-MM-dd;

1.5约束

概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。    
分类:
 

1.5.1.主键约束:primary key

特点:
        1. 含义:非空且唯一
        2. 一张表只能有一个字段为主键
        3. 主键就是表中记录的唯一标识

#在创建表时添加主键
create table 表名(
 字段1 类型 primary key
);
#创建表后添加主键
alter table 表名 modify 列名 类型 PRIMARY KEY;
#删除主键
alter table 表名 drop PRIMARY KEY;
#自动增长:如果某一列是数值类型的,使用 auto_increment 可以来完成值得自动增长

#在创建表时,添加主键约束,并且完成主键自增长
create table stu(
  id int primary key auto_increment,-- 给id添加主键约束
  name varchar(20)
);
# 删除自动增长
ALTER TABLE stu MODIFY id INT;
#添加自动增长
ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;

1.5.2.唯一约束:unique

特点:

1.某一列的值不能重复
 2.唯一约束可以有NULL值,但是只能有一条记录为null

#创建表时添加唯一约束
create table 表名(
  字段1 类型 unique
);
#创建表后添加唯一约束
alter table 表名 modify 列名 类型 unique;
#删除唯一约束
alter table 表名 drop index unique;

1.5.3.非空约束:not null某一列值不能为空

#创建表时添加非空约束
create table 表名(
 字段1 类型 not null
);
#创建后添加
alter table 表名 modify 列名 类型 not null;
#删除非空约束
alter table 表名 modify 列名 类型;

1.5.4.外键约束:foreign key,让表于表产生关系,从而保证数据的正确性。

# 在创建表时添加外键
create table 表名(
....
外键列
constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
);

#删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

#创建表之后,添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
#级联操作
#1. 添加级联操作
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE;
#分类
#1. 级联更新:ON UPDATE CASCADE 
#2. 级联删除:ON DELETE CASCADE 

二.DML

2.1.概述:

  • DML(Data Manipulate Language):数据操纵语言,用于添加、删除、修改数据库记录,并检查数据完整性

    关键字:insert, delete, update 等

2.2.常用操作

添加数据

#语法
insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
	* 注意:
		1. 列名和值要一一对应。
		2. 如果表名后,不定义列名,则默认给所有列添加值
			insert into 表名 values(值1,值2,...值n);
		3. 除了数字类型,其他类型需要使用引号(单双都可以)引起来

修改数据:

* 语法:
		* 修改单表: update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 条件];
		* 修改多表: update 表1 别名1,表2 别名2 set 字段=新值,字段=新值 where 连接条件 and 筛选条件

	* 注意:
		1. 如果不加任何条件,则会将表中所有记录全部修改来

删除数据

* 语法:
		* delete from 表名 [where 条件]
	* 注意:
		1. 如果不加条件,则删除表中所有记录。
		2. 如果要删除所有记录
			1. delete from 表名; -- 不推荐使用。有多少条记录就会执行多少次删除操作
			2. TRUNCATE TABLE 表名; -- 推荐使用,效率更高 先删除表,然后再创建一张一样的表。
	* 面试题:delete与TRUNCATE区别?
		1.truncate不能加where条件,而delete可以加where条件
		2.truncate的效率高
		3.truncate 删除带自增长的列的表后,如果再插入数据,数据从1开始
		4.delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始
		5.truncate删除不能回滚,delete删除可以回滚

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值