MySQL操作汇总2——数据操纵语言(DML)+数据定义语言(DDL)

第一部分:数据操纵语言(DML语言)

插入:insert
修改:update修改数据,alter修改
删除:delete

一、插入语句:

insert into 表名(l列名(可不加),…) values(值1,…),(…,…)(…,…);
——支持插入多行
【例】:

INSERT INTO beauty
VALUE(13,'鹿晗','女','1990-4-23','120',NULL,2),
(15,'关晓彤','女','1992-5-23','100',NULL,2)

——支持子查询

二、修改语句:

(1)修改单表的记录:
语法:
update 表名
set 列=新值,…
where 筛选条件
【案例】:修改姓唐的美女的电话号码

UPDATE beauty SET phone ='13888888889'
WHERE NAME LIKE '唐%';

(2)修改多表的记录

三、删除语句:

(1)方式一:delete

1)单表的删除:

delete from 表名 where 筛选条件

【案例一】:删除手机尾号为9的美女信息

DELETE FROM beauty WHERE phone LIKE '%9'

【案例二】删除第一行:

DELETE FROM beauty LIMIT 1

2)多表的删除:

SQL92语法:
delete 表1的别名,表2的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件

SQL99语法:
delete 表1的别名,表2的别名
inner|left|right join 表2 别名 on 连接条件
where 筛选条件;

【案例一】删除张无忌的女朋友的信息

DELETE b 
FROM beauty b
INNER JOIN boys bo ON b.boyfriend_id = bo.id
WHERE bo.`boyName`='张无忌';

【案例二】删除黄晓明和他老婆的信息

DELETE b,bo
FROM beauty b
INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='黄晓明';

(2)方式二:truncate

语法:truncate table 表名

【面试题】二者的区别:

1)truncate删除,效率高一点;
2)如果用delete删除,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始;
3)truncate删除没有返回值,delete删除有返回值;
4)delete可以添加筛选条件,truncate不可以。
5)truncate删除不能回滚,delete删除可以回滚——事务

【返回值验证】
在这里插入图片描述

第二部分:数据定义语言(DDL语言)

四、库的管理

1、库的创建

CREATE DATABASE books;
CREATE DATABASE IF NOT EXISTS books;

2、库的修改

(1)修改库名

RENAME DATABASE books TO 新库名;

——现有版本一般不这样修改,不安全,会丢失数据!
可以直接从文件夹里的MySQL Server里的data中进行修改库名。

(2)更改库的字符集

ALTER DATABASE books CHARACTER SET gbk;

在这里插入图片描述

3、库的删除:drop

DROP DATABASE IF EXISTS books;

五、表的管理

(1)创建表

1.在数据库服务器中创建数据库:

mysql>create database test;
-Query OK, 1 row affected (0.47 sec)

2.显示数据库:

mysql>show databases;
在这里插入图片描述

3.选中某个数据库:

mysql> use test;
-Database changed

4.显示该数据库中所有数据表:

mysql> show tables;
Empty set (0.00 sec)

5.创建数据表:

mysql> create table pet(
-> name varchar(20),
-> owner varchar(20),
-> sex char(1),
-> species varchar(20),
-> age int);
Query OK, 0 rows affected (0.42 sec)

6.再次查看数据表:show tables;

在这里插入图片描述
1 row in set (0.00 sec)

7.查看数据表具体内容(describe)

mysql> describe pet;
在这里插入图片描述

8.向数据表中添加数据记录(insert)

mysql> insert into pet
-> value(‘Puluto’,‘Miki’,‘m’,‘Dog’,5);
->value(‘旺柴’,‘周星星’,‘m’,‘狗’,‘3’);
Query OK, 1 row affected (0.02 sec)

9.查看数据表中的记录(select)

mysql> select * from pet;
在这里插入图片描述
2 rows in set (0.00 sec)

10.修改数据(update)

mysql> update pet set name=‘旺财’ where owner=‘周星星’;
Query OK, 1 row affected (0.11 sec)

再次查看:
在这里插入图片描述
11.删除数据(delete)
mysql> delete from pet where name=‘Puluto’;
Query OK, 1 row affected (0.06 sec)
在这里插入图片描述

(2)修改列名:alter

【案例】修改品种:special,这个列的列名
在这里插入图片描述

DESC pet;

在这里插入图片描述

ALTER TABLE pet CHANGE COLUMN species spe INT(11);#change column

在这里插入图片描述

(3)添加新列:add

语法:alter table 表名 add column 列名 类型 【first | after 字段名】(不支持last)

ALTER TABLE pet ADD COLUMN newCol VARCHAR(20) AFTER sex;#插入到指定列之后
ALTER TABLE pet ADD COLUMN color VARCHAR(20);

在这里插入图片描述

(4)删除列:drop

ALTER TABLE pet DROP COLUMN color;

在这里插入图片描述

(5)修改表名:alter

ALTER TABLE pet RENAME TO pets;

六、表的删除

DROP TABLE pets;

七、表的复制

1、复制表的结构

CREATE TABLE copy LIKE pets;

在这里插入图片描述

SELECT * FROM copy;

在这里插入图片描述
——仅仅能够复制表的结构!

2、复制表的结构+数据

CREATE TABLE copy2
SELECT * FROM pets;#pets中的数据一起复制

SELECT * FROM copy2;

在这里插入图片描述

3、只复制部分数据

在这里插入图片描述

CREATE TABLE copy3
SELECT NAME,sex,age
FROM pets
WHERE NAME='大黄';
SELECT * FROM copy3;

在这里插入图片描述

4、仅仅复制某些字段

(1)带数据:

CREATE TABLE copy6
SELECT OWNER,species
FROM pets;

在这里插入图片描述

(2)不带数据:

CREATE TABLE copy5
SELECT OWNER,species
FROM pets
WHERE 0;#为false,即便是所有数据都不满足
SELECT * FROM copy5;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值