MySQL杂记

时间:2023-12-12 14:09:32

参考资料:

w3school  SQL 教程 : http://www.w3school.com.cn/sql/index.asp

21分钟 MySQL 入门教程 : http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html

MySQL的InnoDB索引原理详解

杂记:

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