创建表
CREATE TABLE `sc_course` (
`id` int(11) DEFAULT NULL,
`course_name` varchar(50) DEFAULT NULL,
`course_lenght` int(10) DEFAULT NULL,
`teacher` varchar(50) DEFAULT NULL,
`category` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
查看表
SHOW TABLES;
重命名表
ALTER TABLE sc_course RENAME course;
查看表结构
DESCRIBE course;
查看表的创建语句
mysql> SHOW CREATE TABLE students;
------------------------------------------------------
| sc_course | CREATE TABLE `sc_course` ( |
| | `id` int(11) DEFAULT NULL, |
| | `course_name` varchar(50) DEFAULT NULL, |
| | `course_lenght` int(10) DEFAULT NULL, |
| | `teacher` varchar(50) DEFAULT NULL, |
| |`category` varchar(50) DEFAULT NULL |
| |) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
------------------------------------------------------
更改表结构
#增加列
ALTER TABLE course ADD link varchar(100);
#删除列
ALTER TABLE course DROP COLUMN link;
#修改列的数据类型
ALTER TABLE course MODIFY teacher varchar(50);
#重命名一个列
ALTER TABLE course CHANGE teacher c_teacher varchar(50);
替换或插入
如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就先删除原记录,再插入新记录。此时,可以使用REPLACE
语句,这样就不必先查询,再决定是否先删除再插入:
REPLACE INSERT INTO `sc_course` VALUES ('1', 'PHP', '40', 'Brell', 'IT');
更新或插入
如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就更新该记录。
INSERT INTO sc_course(teacher) VALUES ('Trevor') ON DUPLICATE KEY UPDATE id=1;
插入或忽略
如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就直接忽略。
INSERT IGNORE INTO sc_teacher VALUES (2, 'Javascript', '40','Trevor', 'IT');
快照
想要对一个表进行快照,即复制一份当前表的数据到一个新表
CREATE TABLE sc_teacher_backup SELECT * FROM sc_teacher;
删除表
DROP TABLE course;