CREATE TABLE piggy_bank(
id INT NOT NULL PRIMARY KEY,
coin CHAR(1) CHECK (coin IN ('P','N','D','Q'))
);
CHECK(检查)用于限定允许插入某个列的值。它与WHERE子句都使用相同的条件表达式。 如果插入的值无法通过CHECk条件,则出现错误信息。
ALTER TABLE my_contacts
ADD CONSTRAINT CHECk gender IN ('M','F');
CREATE VIEW web_designers AS
SELECT mc.first_name,mc.last_name.mc.phone,mc.email
FROM my_contacts mc
NATURAL JOIN job_desired jd
WHERE jd.title = 'Web Designer';
就像普通表那样。
SELECT * FROM web_designers;
SELECT* FROM(
SELECT mc.first_name,mc.last_name,mc.phone,mc.email
FROM my_contacts mc
NATURAL JOIN job_desired jd
WHERE jd.title = 'Web Designer' AS web_designers;
)
最后为什么要用个AS呢?因为当SELECT语句的结果是一个虚表时,若没有别名,SQL就无法取得其中的表。
DROP VIEW pb_dimes;
事务是一群可以完成一组工作的SQL语句。
START TRANSACTION; --持续追踪后续所有SQL语句
COMMIT; --提交所有程序代码造成的改变
ROLLBACK; --回滚,回到事务开始前
Q:可以查看以创建的视图吗?
A:SHOW TABLES;
Q:如果我卸载了有视图的表,会发生什么事?
A:看情况。有的RDBMS允许使用视图,但不返回数据。一般而言,最好先去除视图,然后再卸载它所依据的表。