EN
/info/84354.html

[mysql]mysqlDML数据操作语言增删,新特性计算列,阿里巴巴开发手册mysql相关

2025-06-24 12:12:13 来源: 新华社
字号:默认超大|打印|

1DML数据操作语言,增加删除和更改数据。

插入数据INSERT。

有两种方法可以插入和添加数据。

方式1:增加VALUES数据。

#准备工作。

USE atguigudb;

CREATE TABLE IF NOT EXISTS emp1(。

id INT,

`name` VARCHAR(15),

hire_data DATE,

salary DOUBLE(10,2));

SELECT * FROM emp1。

INSERT INTO emp1。

VALUES (1,'tom','2000-12-21',3400)。

#如果没有声明字段,则必须按照表中字段的顺序添加,而不是混乱。

这个方法好吗?当然不好。我们必须清楚地知道表的字段内容.。

因此,我们可以用括号声明字段在后面再次表名。

INSERT INTO emp1(id,`name`,hire_data,salary)#在这里,我们可以添加括号声明字段。

VALUES (1,'tom','2000-12-21',3400)。

说明:没有赋值的字段值是null,如果有约束,可能会出错。

如何插入多个记录:。

INSERT INTO emp1(id,NAME ,salary)。

VALUES (2,'tom2',34000),(3,'toem2',34000)#我们可以使用我们想要插入的数据进行分离,这样效率比使用一对INSERT要高得多。

#方法2将查询结果插入表中。

INSERT INTO emp1(id,NAME ,salary)。

SELECT employee_id,last_name,salary FROM employees WHERE department_id in (20,30)#字段必须与表一对应。

 。 。

我们发现类型与我们的手表类型不一致。如果我们把一个小范围放在一个大范围内,这是可以的,但是如果我们把一个大范围插入一个小范围,我们可能会报告错误。如果你想用这种方法添加这个范围和长度,你必须先看看。添加的表的数据范围必须小于我们表的范围。是否有错误主要取决于是否有太长的值。

还有VALUES关键词可以写成VALUE,但VALUES是标准写法。

更新数据(修改数据)UPDATE。

UPDATE….SET …..WHERE。

我们希望将id等于5的hiredate改为当前日期.。

我们通常有WHERE的条件,因为如果没有条件限制,字段的所有值都将调整为当前日期或其他值。

UPDATE emp1 SET hire_date=curdate().WHERE id=1。

批量修改数据是可以实现的。我们需要改变哪些数据,看看WHERE。

#同时修改数据的多个字段。

UPDATE emp1 SET hire_data=CURDATE(),salary=5000 WHERE id=3。

#同时修改一个数据的多个字段。

修改名称包含“修改名称”a工作+100。

UPDATE emp1 SET salary=salary+100 WHERE id like ‘’。

修改数据时可能会出现不成功(可能是约束造成的)。

例如,我们的约束要求部门在部门表中存在,如果部门不是100,就会失败.。

#删除数据只能一个一个删除DELECT FROM…… WHERE。

DELETE FROM emp1 WHERE ID=1。

删除数据时也可能出现不成功(也可能是约束造成的)。

例如,我们需要删除50个部门,但我们的50个部门仍然有员工。我们必须在部门表中有50个部门来约束员工。然后,除非部门中的所有员工都被拆除,否则我们可以隐藏外部按钮的约束.。

总结:DML操作默认情况喜欢执行后会自动提交数据。如果您想在执行后不自动提交数据,您需要使用SET autocommit=FALSE。

DML在使用频率上非常频繁。例如,如果我们删除购物车的数据,我们需要INSERT来添加DELECTE这么长时间,我们需要查询更多。

mysql8.计算列0的新特性。

计算列是根据其他列计算的,所以称为计算列。例如,a列值为1b列值为2,c列为a+b,aƱc的值是a&#;b..例如,当我们查询SQL时,我们应该计算或连接10万条记录的6个字段,每个记录只有在计算后才能获得,因为它需要临时计算,所以结果会更复杂,所以如果我们有计算列,我们可以直接查询列.。

我们可以在制表时添加我们的计算列.。

我们可以在制表时添加我们的计算列.。

CREATE TABLE test1(。

A int,

B int,

C int GENERATED ALWAYS AS (a+b) VIRTUAL#字段c是我们的计算列。

)#这里可以不添加GENERATED ALWAYS,C int  (a+b) VIRTUAL,virtual代表实时计算,不物理存储在数据库中。

#我们再插入一个数据。

INSERT INTO test1(a,b)。

VALUES(1,2)。

我们可以发现c自动值。

让我们修改一下A和B的值。

UPDATE test1 SET a=5,b=6 WHERE A=1。

SELECT * FROM test1。

这是一个很好的特点,可以在工作环境中使用.。

扩展阿里巴巴开发手册内容:。

mysql字段命名规范。

1(强制)表名和字段名必须使用小写字母和数字,禁止数字开头,只有数字出现在两条下划线的中间。数据库中字段名的修改成本很高,不能预发布,因此需要仔细考虑字段名:。

(强制)禁止使用desc等保留词(关键词、函数名),range,match,delayed等。

3(强制)表必须有三个字段:id;gmt_create,gmt_modified,第一个是BIGINT的主键id类型 UNSIGNED,单表时自增,步长为1. gmt_create,gmt_modified,都是DATETIME类型,前者是创建时间,主动添加,后者更新时被动添加。

4(推荐)表的命名最好遵循“商业名_表的应用”,

ALIPAY_test.for。

5(推荐)库名应尽可能与应用名一致..。

(参考)合适的字符存储长度不仅节省了数据库表的空间,还节省了索引存储,更重要的是提高了检索速度.(数据页面内存只能加载16k,可存储的数量与您存储的大小有关,所以请注意这一点,)。

无符号值可以避免误存负数,扩大表示范围。

怎样理解清空表.删除表格需要谨慎:

【我要纠错】责任编辑:新华社