MySQL | DDL 语句和 DML 语句

MySQL | DDL 语句和 DML 语句

DDL语句:操作数据库、表

操作数据库

  1. C(Create):创建
create database db_name; -- 创建数据库

create database if not exists db_name; -- 如果该数据库不存在则创建数据库

create database db_name character set utf8; -- 创建数据库,并指定字符集为utf-8
  1. R(Retrieve):查询
show databases; -- 查询所有数据库的名称

show create database db_name; -- 查询某个数据库的创建语句,并查询该数据库的字符集
  1. U(Update):修改
alter database db_name character set utf8; -- 修改数据库的字符集为utf8
  1. D(Delete):删除
drop database db_name; -- 删除数据库

drop database if exists db_name; -- 判断数据库存在,存在再删除
  1. 使用数据库
select database(); -- 查询当前正在使用的数据库名称

use db_name; -- 使用数据库

操作表

  1. C(Create):创建
    field 为字段名,type 为该字段的类型
-- 建表
create table tbl_name(
			field1 type1,
			field2 type2,
			...
			fieldN typeN -- 最后一列,不需要加逗号
);

-- 复制表
create table tbl_2 like tbl_1;

常用数据类型

数据类型说明
int整数类型,int age
double浮点数类型(总位数,小数点后位数),score double(5,2)
date日期类型,yyyy-MM-dd
datetime日期时间类型,yyyy-MM-dd HH:mm:ss
timestamp时间戳,包含年月日时分秒,如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间自动赋值,常用于记录添加时间
varcahr字符串类型,name varchar(20):姓名最大20个字符
  1. R(Retrieve):查询
show tables; --查询某个数据库中所有的表名称

desc tbl_name; -- 查询表tbl_name的结构

show create table tbl_name; -- -- 查询表的创建语句,并查询该表的字符集
  1. U(Update):修改
alter table tbl_name rename to new_tbl_name; -- 修改表名

alter table tbl_name character set utf8; -- 修改表的字符集为utf8

alter table tbl_name add new_field new_type; -- 添加新的字段

alter table tbl_name change old_field new_field new_type; --修改字段名称和数据类型

alter table tbl_name modify field new_type; -- 修改字段的数据类型

alter table tbl_name drop field; -- 删除字段
  1. D(Delete):删除
drop table tbl_name; -- 删除表tbl_name
drop table if exists tbl_name; -- 如果表存在再删除

DML语句:增删改表中数据

  1. 添加数据
insert into tbl_name(field1,field2,...,fieldn) values (val1,vale,...,valn); -- 添加一条记录,给指定的字段赋值

insert into tbl_name values (val1,val2,...,valn); -- 添加一条记录,给所有的字段赋值
1. 添加的记录的字段和值要一一对应。
2. 除了数字类型,其他类型需要使用引号(单双都可以)引起来
  1. 删除数据
delete from tbl_name where conditions; -- 删除满足条件的数据

truncate table tbl_name; -- 先删除该表,然后再创建一张一样的表

注意:如果 delete 语句不加条件,则删除表中所有记录,这是非常危险的操作。

如果要删除所有记录
	1. delete from 表名; -- 不推荐使用,有多少条记录就会执行多少次删除操作,效率低
	2. TRUNCATE TABLE 表名; -- 推荐使用,效率更高 
  1. 修改数据
update tbl_name set field1=val1,field2=val2,... where conditions; -- 修改满足条件的记录

注意:如果不加任何条件,则会将修改表中所有记录,这是非常危险的操作。

参考

黑马 JavaWeb
数据库复习笔记

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://yzt.cool/archives/2020-04-14-mysql-ddldml