1 DML数据操作语言
1.1 添加数据
insert关键字是用来向数据表中添加数据的
# 插入所有列
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺昕','女','1990-4-23','1898888888',NULL,2);
# 插入部分列
INSERT INTO beauty(id,NAME,sex,phone) VALUES(15,'娜扎','女','1388888888');
# 可以交换列的顺序,列数和值的个数必须一致
INSERT INTO beauty(NAME,sex,id,phone) VALUES('蒋欣','女',16,'110');
# 可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致
INSERT INTO beauty VALUES(18,'张飞','男',NULL,'119',NULL,NULL);
1.2 更新数据
update关键字是用来修改数据表中的数据的
# 修改单表的记录
# 案例1:修改beauty表中姓唐的女神的电话为13899888899
UPDATE beauty SET phone = '13899888899' WHERE NAME LIKE '唐%';
# 案例2:修改boys表中id为2的名称为张飞,魅力值10
UPDATE boys SET boyname = '张飞', usercp = 10 WHERE id = 2;
# 修改多表连接查询的记录
# 案例 1:修改张无忌的女朋友的手机号为119
UPDATE boys bo
INNER JOIN beauty b ON bo.`id`=b.`boyfriend_id`
SET b.`phone`='119',bo.`userCP`=1000
WHERE bo.`boyName`='张无忌';
# 案例2:修改没有男朋友的女神的男朋友编号都为2号
UPDATE boys bo
RIGHT JOIN beauty b ON bo.`id` = b.`boyfriend_id`
SET b.`boyfriend_id` = 2
WHERE bo.`id IS NULL;
1.3 删除数据
删除数据可以使用delete和truncate两个关键字
# 删除单表语法:
delete from 表名 where 筛选条件
# 案例1:删除手机号以9结尾的女神信息
DELETE FROM beauty WHERE phone LIKE '%9';
# 删除多表语法:
# sql92语法:
delete 表1的别名, 表2的别名
from 表1 别名, 表2 别名
where 连接条件
and 筛选条件;
# sql99语法:
delete 表1的别名, 表2的别名
from 表1 别名
inner|left|right join 表2 别名 on 连接条件
where 筛选条件;
# 案例2:删除张无忌的女朋友的信息
DELETE b
FROM beauty b
INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='张无忌';
# 案例3:删除黄晓明的信息以及他女朋友的信息
DELETE b,bo
FROM beauty b
INNER JOIN boys bo ON b.`boyfriend_id` = bo.`id`
WHERE bo.`boyName`='黄晓明';
# 清空表的所有数据
TRUNCATE TABLE boys;
2 DDL数据定义语言
2.1 数据库操作
# 创建数据库
CREATE DATABASE IF NOT EXISTS books ;
# 数据库重命名
RENAME DATABASE books TO 新库名;
# 更改数据库的字符集
ALTER DATABASE books CHARACTER SET gbk;
# 删除数据库
DROP DATABASE IF EXISTS books;
2.2 数据表操作
创建数据表
# 案例:创建表Book
CREATE TABLE book(
id INT, #编号
bName VARCHAR(20), #图书名
price DOUBLE, #价格
authorId INT, #作者编号
publishDate DATETIME #出版日期
);
# 案例:创建表author
CREATE TABLE IF NOT EXISTS author(
id INT,
au_name VARCHAR(20),
nation VARCHAR(10)
);
# 查看数据表详情
DESC author;
修改数据表
# 修改列名
ALTER TABLE book CHANGE COLUMN publishdate pubDate DATETIME;
# 修改列的类型或约束
ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;
# 添加新列
ALTER TABLE author ADD COLUMN annual DOUBLE;
# 删除列
ALTER TABLE book_author DROP COLUMN annual;
# 修改表名
ALTER TABLE author RENAME TO book_author;
DESC book;
删除数据表
DROP TABLE IF EXISTS book_author;
复制数据表
# 1.仅仅复制表的结构
CREATE TABLE copy LIKE author;
# 2.复制表的结构+数据
CREATE TABLE copy2 SELECT * FROM author;
# 只复制部分数据
CREATE TABLE copy3 SELECT id, au_name FROM author WHERE nation='中国';
# 仅仅复制某些字段
CREATE TABLE copy4 SELECT id, au_name FROM author WHERE 0;