DDL操作表

前提先使用某个数据库
DDL:数据定义语言
用来定义数据库对象:数据库,表,列等,关键字create,drop,alter等

1、创建数据库

直接创建
create database 数据库名;
判断是否存在并创建数据库
create database if not exist 数据库名
创建数据库并指定字符集
create database 数据库名 character set 字符集

2、 创建表

语法:

CREATE TABLE 表名 (字段名1 字段类型1, 字段名2 字段类型2…);

关键字说明:

CREATE – 表示创建
TABLE – 表示创建一张表
建议写成如下格式:

CREATE TABLE 表名 (
字段名1 字段类型1,
字段名2 字段类型2
);
MySQL数据类型
MySQL中的我们常使用的数据类型如下:

类型 描述
int 整型
double 浮点型
varchar 字符串型
data 日期类型:yyyy-MM-dd
详细的数据类型如下(不建议详细阅读!)

分类 类型名称 说明
整数类型 tinyInt 很小的整数
smallint 小的整数
mediumint 中等大小的整数
int(integer) 普通大小的整数
小数类型 float 单精度浮点数
double 双精度浮点数
decimal(m,d) 压缩严格的定点数
日期类型 year YYYY 1901~2155
time HH:MM:SS -838:59:59~838:59:59
date YYYY-MM-DD 1000-01-01~9999-12-3
datetime YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59
timestamp YYYY-MM-DD HH:MM:SS 19700101 00:00:01 UTC~2038-01-19 03:14:07UTC
文本、二进制类型 CHAR(M) M为0~255之间的整数
VARCHAR(M) M为0~65535之间的整数
TINYBLOB 允许长度0~255字节
BLOB 允许长度0~65535字节
MEDIUMBLOB 允许长度0~167772150字节
LONGBLOB 允许长度0~4294967295字节
TINYTEXT 允许长度0~255字节
TEXT 允许长度0~65535字节
MEDIUMTEXT 允许长度0~167772150字节
LONGTEXT 允许长度0~4294967295字节
VARBINARY(M) 允许长度0~M个字节的变长字节字符串
BINARY(M) 允许长度0~M个字节的定长字节字符串
具体操作:

创建student表包含id,name,birthday字段

CREATE TABLE student (
id INT,
name VARCHAR(20),
birthday DATE
);
image-20200903102210042.png

3.3.2.2 查看表
查看某个数据库中的所有表
SHOW TABLES;
图片描述

查看表结构
DESC 表名;
图片描述

查看创建表的SQL语句
SHOW CREATE TABLE 表名;
图片描述

3.3.2.3 快速创建一个表结构相同的表
CREATE TABLE 新表名 LIKE 旧表名;

具体操作:

创建s1表,s1表结构和student表结构相同

CREATE TABLE s1 LIKE student;
图片描述

图片描述

3.3.2.4 删除表
直接删除表
DROP TABLE 表名;
图片描述

判断表是否存在并删除表
DROP TABLE IF EXISTS 表名;
图片描述

3.3.2.5 修改表结构
修改表结构使用不是很频繁,只需要了解,等需要使用的时候再回来查即可

添加表列
ALTER TABLE 表名 ADD 列名 类型;

具体操作:

为学生表添加一个新的字段remark,类型为varchar(20)

ALTER TABLE student ADD remark VARCHAR(20);
图片描述

修改列类型
ALTER TABLE 表名 MODIFY列名 新的类型;
具体操作:

将student表中的remark字段的改成varchar(100)

ALTER TABLE student MODIFY remark VARCHAR(100);
图片描述

修改列名
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
具体操作:

将student表中的remark字段名改成intro,类型varchar(30)

ALTER TABLE student CHANGE remark intro varchar(30);
图片描述

删除列
ALTER TABLE 表名 DROP 列名;
具体操作:

删除student表中的字段intro

ALTER TABLE student DROP intro;
图片描述

修改表名
RENAME TABLE 表名 TO 新表名;
具体操作:

将学生表student改名成student2

RENAME TABLE student TO student2;
图片描述

修改字符集
ALTER TABLE 表名 character set 字符集;
具体操作:

将sutden2表的编码修改成gbk

ALTER TABLE student2 character set gbk;
image-20200903104239208.png

3.4 DML语句
DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update等

3.4.1 插入记录
关键字说明

INSERT INTO 表名 – 表示往哪张表中添加数据
(字段名1, 字段名2, …) – 要给哪些字段设置值
VALUES (值1, 值2, …); – 设置具体的值
注意

值与字段必须对应,个数相同,类型相同
值的数据大小必须在字段的长度范围内
除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
如果要插入空值,可以不写字段,或者插入null
3.4.1.1 插入全部字段
所有的字段名都写出来
INSERT INTO 表名 (字段名1, 字段名2, 字段名3…) VALUES (值1, 值2, 值3);
不写字段名
INSERT INTO 表名 VALUES (值1, 值2, 值3…);
3.4.1.2 插入部分数据
INSERT INTO 表名 (字段名1, 字段名2, …) VALUES (值1, 值2, …);
没有添加数据的字段会使用NULL

具体操作:

创建db2数据库,并使用。

CREATE DATABASE db2;
USE db2;
创建完整学生信息表,包括学员的id,姓名,年龄,性别,家庭地址,电话号码,生日,数学成绩,英语成绩

CREATE TABLE student(
id int,
name varchar(20),
age int,
sex char(1),
address varchar(200),
phone varchar(20),
birthday date,
math double,
english double
);
插入部分数据,往学生表中添加 id, name, age, sex,address数据
INSERT INTO student (id,name,age,sex,address)values(1,‘张三’,19,‘男’,‘北京市’);
​ 提示:使用SELECT * FROM 表名;测试是否插入成功
图片描述

向表中插入所有字段

所有的字段名都写出来
INSERT INTO student(id,name,age,sex,address,phone,birthday,math,english)values(2,‘小美’,18,‘女’,‘上海市’,‘18888888888’,‘2011-12-12’,65.5,99.2);
image-20200903111849009.png

不写字段名
INSERT INTO student values(3,‘小明’,27,‘男’,‘深圳市’,‘13333333333’,‘2000-11-06’,95.5,92);
图片描述

3.4.1.3 蠕虫复制
什么是蠕虫复制:在已有的数据基础之上,将原来的数据进行复制,插入到对应的表中
语法格式:INSERT INTO 表名1 SELECT * FROM 表名2;
作用:将表名2中的数据复制到表名1中

具体操作:

创建student2表,student2结构和student表结构一样
CREATE TABLE student LIKE student2;
将student表中的数据添加到student2表中
INSERT INTO student SELECT * FROM student2;
图片描述

注意:如果只想复制student表中name,age字段数据到student2表中使用如下格式

INSERT INTO student2(name,age) SELECT name,age FROM student;
图片描述

3.4.2 更新表记录
不带条件修改数据
UPDATE 表名 SET 字段名=值;

带条件修改数据
UPDATE 表名 SET 字段名=值 WHERE 字段名=值;

关键字说明

UPDATE: 修改数据
SET: 修改哪些字段
WHERE: 指定条件
具体操作:

不带条件修改数据,将所有的性别改成女

UPDATE student SET sex=‘女’;
图片描述

带条件修改数据,将id号为2的学生性别改成男

UPDATE student SET sex=‘男’ WHERE id=2;
图片描述

一次修改多个列,把id为3的学生,年龄改成26岁,address改成北京

UPDATE student SET age=26, address=‘北京’ WHERE id=3;
图片描述

3.4.3 删除表记录
不带条件删除数据
DELETE FROM 表名;

带条件删除数据
DELETE FROM 表名 WHERE 字段名=值;

具体操作:

带条件删除数据,删除id为3的记录

DELETE FROM student WHERE id=3;
图片描述

不带条件删除数据,删除表中的所有数据

DELETE FROM student;
图片描述

truncate删除表记录
TRUNCATE TABLE 表名;
truncate和delete的区别:

delete是将表中的数据一条一条删除
truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样
图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值