一.表操作(DDL)
1.创建表
CREATE TABLE table_name(
column_name datatype [DEFAULT expr],
column_name datatype [DEFAULT expr],
...
column_name datatype [DEFAULT expr]
);
注意创建表时,列与列之间用逗号隔开,最后一列之后不需要逗号
DEFAULT表示设置默认值
NOT NULL表示一种约束条件,表示当数据更改时,这一列不能为空
2.查看表结构:可以看见表名,数据类型,长度
DESC table_name;
3.删除表:删除表的结构和类容
DROP TABLE table_name;
4.删除表表的内容,保留表的结构(即保留列)
TRUNCATE TABLE table_name;
5.给表重命名
RENAME old_name TO new_name;
二.列操作(DDL)
1.增加列:只能增加在最后,不能插入现有列之中
ALTER TABLE table_name ADD(
column_name datatype(length) [DEFAULT expr],
column_name datatype(length) [DEFAULT expr],
...
column_name datatype(length) [DEFAULT expr]
);
2.删除列:需要从每一行中删除该字段所占据的长度和数据,并释放在数据块中占据的空间
ALTER TABLE table_name DROP(column);
3.修改列:尽量不要修改字段的类型,字段的长度尽量不要减少,修改后的字段只对新插入的数据产生影响。修改前的所有字段数据不受影响(即修改前的字段数据延用未修改的类型和长度)。
ALTER TABLE table_name MODIFY(
column_name datatype(length) [DEFAULT expr],
column_name datatype(length) [DEFAULT expr],
...
column_name datatype(length) [DEFAULT expr]
);
三.数据操作(DML)
1.向表中插入数据
INSTERT INTO table_name(column_name,column_name,...,column)
VALUES(value,value,...,value);
注意:
(1)列名必须和插入的数据一一对应,若不写列名,则是全列依次插入
(2)指定的列对应的值会被插入表中对应的列,未被列举的列会被插入NULL。
(3)若某一列未被列举但设置有默认值,则会插入设置的默认值
(4)若某一列设置为NOT NULL,则在列举时必须列举该列,在插入数据时,这一列也必须插入数据,否则会抛出违反为空约束的异常。
2.修改表中的记录数据
UPDATE table_name
SET column_name = value,
column_name = value,
...
column_name = value
WHERE condition;
若没有WHERE子句,则全表的数据都会被更新,通常情况下必须加WHERE过滤条件。
3.从表中删除数据
DELETE FROM table_name
WHERE condition;
如果没有WHERE过滤条件,则全表的数据都将被删除。
DELETE和TRUNCATE的区别:
(1)DELETE可以有条件的删除,TRUNCATE只能将表中的数据全部删除,DELETE更灵活。
(2)DELETE是DML语句,可以回退,TRUNCATE是DDL语句,立即生效,不能回退。
(3)TRUNCATE在删除较大数据量的全部记录时,效率更高。
四.事物控制(TCL)
1.事物提交:用于提交事物,DML操作的数据,并没有立马提交,而是在缓存中,只有自己能见,其他人不能见。
COMMIT;
2.事物回退:用于回滚事物,当执行了回滚事物操作,那么本次事物中所有未提交的增删改操作都将失效。
ROLLBACK;
3.设置保存点:将事物回滚到指定的保存点
SAVEPOINT;
五.虚表(DUAL)
虚表是一个虚幻的表,并不实际存在,只为了满足SELETE的语法要求
在数据库中我们想测试某个表达式的结果只能用SELETE语句来实现
我们常常用虚表来测试表达式的结果。当SELETE语句中没有任何表中的字段参与时,我们选择使用虚表。