参考资料:
w3school SQL 教程 : http://www.w3school.com.cn/sql/index.asp
21分钟 MySQL 入门教程 : http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html
杂记:
1 update和alter
前者修改内容,后者修改表,有些地方需要加table,有些不需要
查询和更新指令构成了 SQL 的 DML 部分:
- SELECT - 从数据库表中获取数据
- UPDATE - 更新数据库表中的数据
- DELETE - 从数据库表中删除数据
- INSERT INTO - 向数据库表中插入数据
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句:
- CREATE DATABASE - 创建新数据库
- ALTER DATABASE - 修改数据库
- CREATE TABLE - 创建新表
- ALTER TABLE - 变更(改变)数据库表
- DROP TABLE - 删除表
- CREATE INDEX - 创建索引(搜索键)
- DROP INDEX - 删除索引
alter table person change first_name firstname varchar(32)
update person set firstname = "li" where firstname = "wang";
一般alter table 这么用
添加列
alter table 表名 add 列名 列数据类型 [after 插入位置];
修改列
alter table 表名 change 列名称 列新名称 新数据类型;
删除列
alter table 表名 drop 列名称;
重命名表
alter table 表名 rename 新表名;
2 SQL 约束 (Constraints)
约束用于限制加入表的数据的类型。
可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
- DEFAULT
注意:在MySQL中CHECK约束是无效的,CHECK子句会被分析,但是会被忽略。请参见13.1.5节,“CREATE TABLE语法”。接受这些子句但又忽略子句的原因是为了提高兼容性,以便更容易地从其它SQL服务器中导入代码,并运行应用程序,创建带参考数据的表。请参见1.8.5节,“MySQL与标准SQL的差别”。参见官方文档
3 自动增长列
auto_increment