1.插入
INSERT INTO table_name VALUES (value1,value2,……);#默认每一列的插入 |
INSERT INTO table_name (column1,column3,……) VALUES (value1,value3,……)#指定列 |
自增列不用指定即可插入
INSERT INTO table_name (column1,column2,……) VALUES (value1,value2,……), (value1,value2,……), …… (value1,value2,……)#一次插入多条记录 |
INSERT INTO target_table (tar_column1,tar_column3,……) SELECT (src_column1,src_column3,……) FROM source_table WHERE condition#将在一个表中的查询结果插入另外一个表 |
2.修改
UPDATE table_name SET column1=value1,column2=value2,…… WHERE condition #column是需要更新的字段,value是更新的值 |
WHERE condition是用于更新表中特定的数据行
更新某个范围内的数据,可以通过BETWEEN...AND语句或者">",">=","<","<=","<>","!="等运算符,或者LIKE,IN,NOT IN等语句实现
UPDATE table_name SET price=20 WHERE id BETWEEN 1 AND 6 |
UPDATE table_name SET price=20 WHERE t_name LIKE '%牛%'#%指代任意长度的字符,_指代任意单个字符 |
WHERE t_name LIKE '%牛\%' ESCAPE '\'#即允许\后面的%仅仅作为%而存在,并非指代任意长度字符 |
WHERE id IN(7,8,9,10,11,12) |
WHERE t_name REGEXP '裙$'#商品名以“裙”结尾 # REGEXP用于匹配正则表达式,后面跟正则表达式的规则 |
3.删除
删除某一条或几条数据记录
DELETE FROM table_name [WHERE condition] |
包括上述的BETWEEN...AND和REGEXP等等都是可以用的
去掉WHERE命令则删除表中所有数据
DELETE,TRUNCATE与DROP的区别
DELETE语句不会删除表结构和约束,属于DML(数据操作语言),删除整表时并未释放存储空间,只是将删除的行设置为不可见,可以回滚 |
TRUNCAT用于删除整表,不会删除表结构和约束,属于DDL(数据库定义语言),不可以回滚,立即释放空间 |
DROP会删除表结构和约束,属于DDL,不可以回滚,立即释放空间 |
补充:删除字段为ALTER TABLE 表名 DROP 字段名