- DML:Data Manipulation Language
- 作用:用于向数据库表中插入、删除、修改数据
- 常用关键字:INSERT UPDATE DELETE
- 基本句型
INSERT INTO table (col1,col2,col3...) VALUES (data1,data2,data3...);
(若是插入一条所有列都涉及的记录,列名col可省略) -
特别注意:MySQL,字符串或日期要包含在单引号中。
空值:NULL
MySQL常用数据类型
*MySQL中使用TEXT,DB2和Oracle中使用CLOB。
实践操作
- 查看表中的所有记录
SELECT * FROM user;
- 使用insert语句向表中插入三个员工的信息。
INSERT INTO user VALUES (1,'zxn','female','1995-12-02','2014-09-16','CEO',100000,'beauty');
INSERT INTO user (id,username,gender,birthday,entry_date,job,salary,resume) VALUES (2,'lyx','male','1945-12-02','2014-09-16','EM',100000,'ugly');
INSERT INTO user (id,username,gender,birthday,entry_date,job,salary,resume) VALUES (3,'马小跳','男','1965-12-02','2014-09-16','CTO',100000,'马总');
- 插入中文数据
SHOW VARIABLES LIKE 'character%';
(查看编码使用情况)
编码使用情况
编码值代表的意思
有时会出现一些编码错误问题或者返回中文乱码,这是因为上表中Value一项的值有冲突。使用可视化工具是没有这个问题的。 - 告知服务器客户端使用的编码:
SET character_set_client = gbk;
(若无错误无需更改) - 告知服务器返回的结果集请使用gbk
SET character_set_results = gbk;
- 将所有员工薪水修改为5000元
UPDATE user SET salary = 5000;
- 将姓名为'zxn'的员工薪水修改为3000元
UPDATE user SET salary = 3000 WHERE username = 'zxn';
(不要忘记写WHERE) - 将姓名为'lyx'的员工薪水修改为4000元,job改为ccc。
UPDATE user SET salary = 4000,job = 'ccc' WHERE username = 'lyx';
(不要忘记写WHERE) - 将马小跳的薪水在原有基础上增加1000元。
UPDATE user SET salary = salary + 1000 WHERE username = '马小跳’;
(不要忘记写WHERE) - 删除表中名为'zxn'的记录。
DELETE FROM user WHERE username = 'zxn';
(不要忘记写WHERE) - 删除所有的记录
DELETE FROM user;
- 使用TRUNCATE删除表中记录
TRUNCATE TABLE user;
- TRUNCATE 对表进行删除操作,速度快,不会触发trigger,不可rollback数据;隐式commit;没有表空洞,操作后,表的占据空间和初始化时相同大小
- DELETE对数据进行删除操作,逐条删除,速度慢,会计入删除操作日志中,可触发trigger,回滚数据;需要手动commit才会彻底生效;会有表空洞,占据空间和删除前一样大小
网友评论