MySQL学习要点(5/10)
第四节.使用SQL增删改
● DML(Data Manipulation Language –数据操纵语言) 可以在下列条件下执行:
– 向表中插入数据
– 修改现存数据
– 删除现存数据
● 事务是由完成若干项工作的DML语句组成的
1)INSERT 插入
● 插入一般值
#语法:
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
• 不能为一个不存在的表插入值
• 为每一列添加一个新值。
• 按列的默认顺序列出各个列的值,也可单独为某列添加值
• 或者在 INSERT 子句中随意列出列名和他们的值。
• 插入多行数据,使用逗号隔开
• 字符和日期型数据应包含在单引号中。
• 如果主键设置为 AUTO_INCREMENT,MySQL则会自动填充主键,无需手动
添加。
INSERT INTO
employees(employee_id,last_name,email,hire_date,job_id) #指定要插入的列和对应的值
VALUES (300,’Tom’,’tom@126.com’,to_date(‘2012-3-21’,’yyyy-mm-dd’),’SA_RAP’);
● 插入空值
—隐式方式: 在列名表中省略该列的值,并用空格代替该列
INSERT INTO departments (department_id, department_name )
VALUES (30, 'Purchasing');
—显示方式: 在VALUES 子句中指定空值
INSERT INTO departments
VALUES (100, 'Finance', NULL, NULL);
● 插入指定值
INSERT INTO employees (employee_id, first_name, last_name, email, phone_number,
hire_date, job_id, salary, commission_pct, manager_id,department_id)
VALUES
(113, 'Louis', 'Popp', 'LPOPP', '515.124.4567',
NOW(), 'AC_ACCOUNT', 6900, NULL, 205, 100);#hire_date的值由NOW()函数指定
● 插入拷贝值
• 通过在 INSERT 语句中加入子查询来实现
• 不必书写 VALUES 子句
• 子查询中的值列表应与 INSERT 子句中的列名对应
INSERT INTO emp2
SELECT * FROM employees #全部拷贝
WHERE department_id = 90;
INSERT INTO sale