MySQLの基本3 [DML:データベース操作言語]

1.コンセプト

DML(データ操作言語):データベースレコードの追加、削除、変更、クエリ、およびデータの整合性のチェックに使用されるデータ操作ステートメント

DMLは、次のSQLステートメントを含むデータレコードのクエリと変更に使用されます。

挿入:データベースにデータを追加します

更新:データベース内のデータを変更します

削除:データベース内のデータを削除します

SELECT:データを選択(クエリ)

SELECTはSQL言語の基盤であり、最も重要です。

[2番目の基本でSELECT]

2、INSERT

1.插入beauty表
字符型用单引号
1.插入的值的类型要与列的类型一致或兼容
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'kethy','女','1990-1-1','18866666666',NULL,2);

SELECT * FROM beauty;

2.可以为null的列如何插入值?

不可为NULL的列必须插入值,
可以为NULL的值两种办法:
1.写列,值写NULL
2.列和值均不写

INSERT INTO beauty(id,NAME,sex,borndate,phone,boyfriend_id)
VALUES(14,'Diana','女','1837-1-1','17494738291',6);

3.列的顺序是否可以调换?
INSERT INTO beauty(NAME,sex,id,phone)
VALUES('蒋欣','女',16,'312127398');

但是需要一一对应

4.列数和值的个数必须一致

INSERT INTO beauty(NAME,sex,id,phone)
VALUES('蒋啊','女',17,'312127398');

5.可以省略列名,默认所有列,而且列的顺序和表一致
INSERT INTO beauty
VALUES(18,'zhangfei','男',NULL,119,NULL,NULL);

方式2
语法:
INSERT INTO 表名
SET 列名=值,列名=值,...

1.
INSERT INTO beauty
SET id=19,NAME='liutao',phone='999';

两种方式大PK
方式一支持插入多行

SELECT * FROM beauty;

INSERT INTO beauty
VALUES(21,'zhangfei2','男',NULL,119,NULL,NULL),
(20,'zhangfei1','男',NULL,119,NULL,NULL);

方式一支持子查询,方式二不支持

INSERT INTO beauty(id,NAME,phone)
SELECT 26,'sq','118';

三、更新

2.修改语句

1.修改单表的记录
UPDATE 表名 1
SET 列 = 新值,列=新值,...3
WHERE 筛选条件;2
执行顺序:123

案例一 修改beauty表中姓zhang的电话为123
UPDATE beauty
SET phone = '123'
WHERE NAME LIKE'zhang%';

案例二 修改boys表中id为2的名称为张飞,魅力值为10
UPDATE boys
SET boyname='张飞',usercp = 10
WHERE id=2;

SELECT * FROM boys;

2.修改多表的记录
92语法
UPDATE 表1 别名,表2 表名
SET 列=值,...
WHERE 连接条件
AND 筛选条件;

99语法
UPDATE 表1 别名
INNER|LEFT|RIGHT JOIN 表2 别名
ON 连接条件
SET 列 = 值,...
WHERE 筛选条件;

案例1 修改张无忌的女朋友的手机号为114
UPDATE boys bo
INNER JOIN beauty b
ON bo.id = b.boyfriend_id
SET b.phone = '114'
WHERE bo.boyName = '张无忌';

案例2 修改没有男朋友的女神 的男朋友编号都为2号
UPDATE
beauty b
LEFT JOIN boys bo
ON bo.id = b.boyfriend_id
SET b.boyfriend_id = 2
WHERE b.boyfriend_id = NULL;

SELECT *
FROM beauty b;

四、DELETE 

删除语句
方式一 DELETE
DELETE FROM 表名
WHERE 筛选条件

方式二 TRUNCATE
语法:
TRUNCATE TABLE 表名;
清空数据


一删就是整行

1.单表的删除
方式一 DELETE
案例1 删除手机号以9结尾的女神信息
DELETE FROM beauty
WHERE phone LIKE '%9';


2.多表的删除
删除张无忌的女朋友的信息
SQL 92:
DELETE 表1别名,表2别名
FROM 表一 别名,表二 别名
WHERE 连接条件
AND 筛选条件

DELETE 表1别名,表2别名
FROM 表一 别名
JOIN 表二 别名
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 = b.id
WHERE bo.boyName = '黄晓明';

方式二 TRUNCATE

区别:
1.delete可以加where条件,truncate不能加
2.truncate删除效率高些
3.假如要删除的表中有自增长列,如果用delete删除后,
再插入数据,自增长列的值从断点开始,
而truncate删除后,再插入数据,
自增长列的值从1开始。

4.truncate删除没有返回值(几行操作成功),delete删除有返回值
5.truncate删除不能回滚,delete删除可以回滚

 

おすすめ

転載: blog.csdn.net/Kukeoo/article/details/114261173