DDL是数据库领域中的一个术语,全称为数据定义语言(Data Definition Language)。DDL用于定义数据库的结构和组织方式,包括创建、修改和删除数据库对象,如表、视图、索引等。
常见的DDL命令包括:
CREATE:用于创建数据库对象,如创建表、视图、索引等。
例如:CREATE TABLE students (id INT, name VARCHAR(50));
ALTER:用于修改数据库对象的结构,如添加、删除或修改列、约束等。
例如:ALTER TABLE students ADD COLUMN age INT;
DROP:用于删除数据库对象,如删除表、视图、索引等。
例如:DROP TABLE students;
TRUNCATE:用于删除表中的所有数据,但保留表结构。
例如:TRUNCATE TABLE students;
RENAME:用于重命名数据库对象的名称。
例如:RENAME TABLE students TO new_students;
功能 | SQL |
---|---|
查看所有数据库 | show databases; |
创建数据库 | create database[if not exists] mydb1 [charset=utf8] |
切换(选择要操作的)数据库 | use mydb1; |
删除数据库 | drop database [if exists] mydb1; |
修改数据库编码 | alter database mydb1 character set utf8; |
DDL的用法主要有以下几个方面:
创建数据库对象:使用CREATE语句可以创建表、视图、索引等数据库对象,定义其结构和属性。
修改数据库对象:使用ALTER语句可以修改数据库对象的结构,如添加、删除或修改列、约束等。
删除数据库对象:使用DROP语句可以删除数据库对象,包括表、视图、索引等。
重命名数据库对象:使用RENAME语句可以修改数据库对象的名称。
DDL语句通常在数据库的初始化阶段使用,用于创建数据库和表结构。在数据库运行过程中,DDL语句的使用相对较少,主要用于修改数据库结构或删除不需要的对象。
需要注意的是,DDL语句一旦执行,会立即生效并修改数据库的结构,因此在使用DDL语句之前应该谨慎考虑,并确保备份重要数据。
创建表格式
create table [if not exists] 表名 (
字段名 1 类型 [( 宽度 )] [ 约束条件 ] [comment ' 字段说明 '],
字段名 2 类型 [( 宽度 )] [ 约束条件 ] [comment ' 字段说明 '],
字段名 3 类型 [( 宽度 )] [ 约束条件 ] [comment ' 字段说明 ']
)[ 表的一些设置 ];
举个例子:创建表是构建一张空表,指定这个表的名字,这个表有几列,每一列叫什么名字,以及每一列存储的数据类型。
use mydb1;
create table if not exists student(
sid int,
name varchar(20),
gender varchar(20),
age int,
birth date,
address varchar(20),
score double
);
功能 | SQL |
---|---|
查看当前数据库的所有表名称 | show tables; |
查看指定某个表的创建语句 | show create table 表名; |
查看表结构 | desc 表名 |
删除表 | drop table 表名 |
修改表添加格列:
语法格式
alter table 表名 add 列名 类型 ( 长度 ) [ 约束 ];
例子:
# 为 student 表添加一个新的字段为:系别 dept 类型为 varchar(20)
ALTER TABLE student ADD `dept` VARCHAR(20);
修改列名和类型
语法格式
alter table 表名 change 旧列名 新列名 类型 ( 长度 ) 约束 ;
例子:
# 为 student 表的 dept 字段更换为 department varchar(30)
ALTER TABLE student change `dept` department VARCHAR(30);
修改表删除列
语法格式:
alter table 表名 drop 列名 ;
例子:
# 删除 student 表中 department 这列
ALTER TABLE student DROP department;
修改表名
语法格式:
rename table 表名 to 新表名 ;
例子:
# 将表 student 改名成 stu
rename table `student` to stu;
DML(Data Manipulation Language,数据操作语言)是一种用于在关系型数据库中操作数据的语言。它允许用户对数据库中的数据进行查询、插入、更新和删除操作。
DML语言通常包括以下几个主要的操作:
查询(SELECT):用于从数据库中检索数据。SELECT语句可以指定要检索的表、列和条件,以及可选的排序和分组规则。
插入(INSERT):用于将新的数据行插入到数据库表中。INSERT语句指定要插入的表、要插入的列和相应的值。
更新(UPDATE):用于修改数据库表中的现有数据行。UPDATE语句指定要更新的表、要更新的列和相应的新值,以及可选的更新条件。
删除(DELETE):用于从数据库表中删除数据行。DELETE语句指定要删除的表和可选的删除条件。
DML语言的使用方法如下:
在SQL命令行界面或数据库管理工具中输入DML语句,并执行该语句。执行后,数据库会根据语句的指示进行相应的操作。
在应用程序中使用编程语言(如Java、Python等)的数据库连接库,通过调用相应的函数或方法来执行DML语句。
下面是一些常见的DML语句示例:
查询语句示例:
SELECT * FROM 表名 WHERE 条件;
插入语句示例:
INSERT INTO 表名 (列1, 列2, 列3) VALUES (值1, 值2, 值3);
更新语句示例:
UPDATE 表名 SET 列1=新值1, 列2=新值2 WHERE 条件;
删除语句示例:
DELETE FROM 表名 WHERE 条件;
需要注意的是,DML语句对数据库中的数据进行操作,因此在使用DML语句时应谨慎,避免误操作或不必要的数据损失。在执行DML语句之前,最好先备份数据库以防止意外情况发生。
语法格式:
insert into 表(列名1,列名2,列名3...); //向表中插入某些
insert into 表 values ( 值 1, 值 2, 值 3...); // 向表中插入所有列
例子:
insert into student(sid,name,gender,age,birth,address,score) values(1001,' 男 ',18,'1996-12-23',' 北京 ',83.5);
insert into student values(1001,' 男 ',18,'1996-12-23',' 北京 ',83.5);
语法格式:
update 表名 set 字段名=值,字段名=值...;
update 表名 set 字段名 = 值 , 字段名 = 值 ... where 条件 ;
例子:
-- 将所有学生的地址修改为重庆
update student set address = ' 重庆’ ;
--将id 为 1004 的学生的地址修改为北京
update student set address = ' 北京 ' where id = 1004 ;
-- 将id 为 1005 的学生的地址修改为北京,成绩修成绩修改为 100
update student set address = ' 广州 ',score=100 where id = 1005;
语法格式:
delete from 表名[where 条件];
truncate table 表名 或者 truncate 表名
-- 1. 删除 sid 为 1004 的学生数据
delete from student where sid = 1004;
-- 2. 删除表所有数据
delete from student;
-- 3. 清空表数据
truncate table student;
truncate student;
注意: delete 和 truncate 原理不同, delete 只删除内容,而 truncate 类似于 drop table ,可以理解为是将整个表删除,然后再创建该表;
以上是今天要讲的内容,学到了MySQL数据库的基本操作,包括DDL,DML。