Time:2018.3.29 01:34
MySQL下载地址:点击打开
设置向导文件位于C:/Program Files/MySQL/bin/MySQLInstanceConfig.exe
可以用它来对MySQL进行一些设置
MySQL默认端口号:3306
MySQL中超级用户:root
MySQL配置文件
编辑数据表的默认存储引擎
default-storage-engine=INNODB
SELECT VERSION(); // 用于显示当前服务器版本
SELECT NOW(); // 用于显示当前日期时间
SELECT USER(); //用于显示当前用户
TINYINT 1个字节
SMALLINT 2个字节
MEDIUMINT 3个字节
INT 4个字节
BIGINT 8个字节
FLOAT
DOUBLE
YEAR
TIME
DATE
DATETIME
TIMESTAMP
CHAR(M) M字节 定长类型,不足补齐
VARCHAR(M) L+1个字节 变长类型
TINYTEXT L+1个字节 L<2^8
TEXT L+2个字节 L<2^16
MEDIUMTEXT L+3个字节 L<2^24
LONGTEXT L+4个字节 L<2^32
ENUM('value1','value2',...) 1或者2个字节,取决于枚举值个数
SET('value1','value2',...) 1,2,3,4或8个字节,取决于set成员数目
- 打开数据库
- USE 数据库名称;
CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type,
...
);
AUTO_INCREMENT
- 自动编号,且必须与主键组合使用(自动编号的一定要为主键)
- 默认情况下,初始值为1,每次增加1
NULL / NOT NULL
- NULL,字段值可以为空
- NOT NULL,字段值禁止为空
- 类似UNSIGNED的用法,在后面写
PRIMARY KEY
- 主键约束
- 每张数据表只能有一个主键
- 主键保证记录的唯一性(值不允许相同)
- 主键自动为NOT NULL
UNIQUE KEY
- 唯一约束
- 唯一约束可保证记录的唯一性
- 唯一约束的字段可以为空值(NULL)
- 每张数据表可以存在多个唯一约束
DEFAULT
- 默认值
- 当插入记录时,如果没有明确为字段赋值,则自动赋予默认值
- 后面紧跟默认值
FOREIGN KEY
保持数据一致性,完整性
实现一对一或一对多关系
外键约束的要求
1. 父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
2. 数据表的存储引擎只能为InnoDB。
3. 外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。
4. 外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
外键约束的参照操作
1. CASCADE: 从父表删除或更新且自动删除或更新子表中匹配的行
2. SET NULL: 从父表删除或更新行,并设置子表的外键列为NULL,如果使用该选项,必须保证子表没有指定NOT NULL
3. RESTRICT: 拒绝对父表的删除或更新操作
4. NO ACTION: 标准SQL的关键字,在MySQL中与RESTRICT相同
对一个数据列建立的约束,称为列级约束
对多个数据列建立的约束,称为表级约束
列级约束既可以在列定义时声明,也可以在列定义后声明
表级约束只能在列定义后声明
- 查看数据表列表
- SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr];
- 查看数据表结构
- SHOW COLUMNS FROM tbl_name;
- 插入记录
- INSERT [INTO] tbl_name [(col_name,...)] VALUES(val,...);
- 记录查找
- SELECT expr,...FROM tbl_name;
添加一列
ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name];
添加多列
ALTER TABLE tbl_name ADD [COLUMN] (col_name column_definition,...);
删除列
ALTER TABLE tbl_name DROP [COLUMN] col_name;
(要删除多列的话,在后面加,DROP [COLUMN] col_name,...)
添加主键约束
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...);
添加唯一约束
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY] [index_name] [index_type] (index_col_name,...);
添加外键约束
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference_definition;
添加/删除默认约束
ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}