MySQL DML
6DML
6.1 添加数据
#方式一:一条一条插入数据
#不指明要添加的字段
INSERT INTO mytal
VALUES(1,'TOM');
#一定要按照声明字段的先后顺序进行添加
#指明要添加的字段
INSERT INTO mytal(id,name)
VALUES(1,'TOM');
#
INSERT INTO mytal(id,name)
VALUES(2,'Jetty'),(3,'Kite');
#方式二
#查询一定要与添加的字段一一对应
INSERT INTO mytal(id,name)
SELECT employee_id,last_name
FROM employees;
#添加的原字段类型长度不得大于现字段(如果实际的值超过则会报错)
6.2 更新数据
#使用UPDATE ... SET...
UPDATE mytal SET name='Tiny'
WHERE name='Tom';
修改数据时,是可能存在不成功的情况(可能因为约束造成的)
6.3 删除数据
#DELETE FROM,一般是有条件的!
DELETE FROM emp1
WHERE id=1;
删除数据时,可能因为约束的影响,导致删除失败。
6.4 小结
如果希望执行完之后不自动提交数据,则使用 SET AUTOCOMMIT=FALSE
6.5 MySQL8的新特性
#计算列
CREATE TABLE mytal(
a int,
b int,
c int GENERATED ALWAYS (a+b) VIRTUAL #C字段即为计算列
)
INSET INTO mytal(a,b)
VALUES(1,2)
#可以得到c为3
7 MySQL数据类型精讲
1. MySQL中的数据类型
类型 | 类型举例 |
---|---|
整数类型 | TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT |
浮点类型 | FLOAT、DOUBLE |
定点数类型 | DECIMAL |
位类型 | BIT |
日期时间类型 | YEAR、TIME、DATE、DATETIME、TIMESTAMP |
文本字符串类型 | CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT |
枚举类型 | ENUM |
集合类型 | SET |
二进制字符串类型 | BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB |
JSON类型 | JSON对象、JSON数组 |
空间数据类型 | 单值类型:GEOMETRY、POINT、LINESTRING、POLYGON; 集合类型:MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEOMETRYCOLLECTION |
常见数据类型的属性,如下:
MySQL关键字 | 含义 |
---|---|
NULL | 数据列可包含NULL值 |
NOT NULL | 数据列不允许包含NULL值 |
DEFAULT | 默认值 |
PRIMARY KEY | 主键 |
AUTO_INCREMENT | 自动递增,适用于整数类型 |
UNSIGNED | 无符号 |
CHARACTER SET name | 指定一个字符集 |