-
添加主键约束:
ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index-col_name,...)
添加、删除默认约束:
ALTER TABLE tb_name ALTER [COLUMN] co_name {SET DEFAULT literal | DROP DEFAULT}
查看全部 -
添加单列:
ALTER TABLE tb_name ADD [COLUMN] co_name column_definition [FIRST | AFTER co_name]
删除列:
ALTER TABLE tb_name DROP [COLUMN] co_name
查看全部 -
表级约束与列级约束
对一个数据列建立的约束,称为列级约束
对多个数据列建立的约束,称为表级约束
列级约束既可以在列定义时声明,也可以在列定义后声明
表级约束只能在列定义后声明
查看全部 -
外键约束的参照操作
CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行
SET NULL:从父表删除或更新行,并设置子表中的外键列为 NULL。如果使用该选项,必须保证子表列没有指定 NOT NULL
RESTRICT:拒绝对父表的删除或更新操作。
NO ACTION:标准 SQL 的关键字,在 MySQL 中与 RESTRICT 相同
查看全部 -
创建外键约束:
FOREIGN KEY (pid) REFERENCES provinces (id)
查看全部 -
FREIGN KEY(外键约束):
功能:
保持数据一致性、完整性
实现一对一或一对多关系(称为“关系型数据库”的根本原因)
要求:
父表和子表必须使用相同的存储引擎,而且禁止使用临时表
数据表的存储引擎只能为InnoDB
外键列的参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同
外键列和参照列必须创建索引。如果参照列不存在索引的话,MySQL将自动创建索引(创建主键时自动添加索引)
子表:具有外键列的表
父表:子表所参照的表
查看全部 -
约束保证数据的完整性和一致性
约束分为表级约束和列级约束
约束类型包括:
NOT NULL(非空约束)
PRIMARY KEY(主键约束)
UNIQUE KEY(唯一约束)
DEFAULT(默认约束)
FOREIGN KEY(外键约束)
查看全部 -
一、数据表
1. 概述
数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础。
实质就是一张二维表,其中行称为记录,列称为字段。
数据类型
描述
integer(size)
int(size)
smallint(size)
tinyint(size)
仅容纳整数。在括号内规定数字的最大位数。
decimal(size,d)
numeric(size,d)
容纳带有小数的数字。
"d" 规定小数点右侧的最大位数。
char(size) 容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。
在括号中规定字符串的长度。
varchar(size)
容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。
在括号中规定字符串的最大长度。
date(yyyymmdd)
容纳日期。
二、 创建数据表
1. 创建数据表
CREATE TABLE [IF NOT EXISTS] table_name( column_name data_type, .... );
Demo: 创建一张名为 tb1 的表,包含 usename ,age 和 salary 三个字段
CREATE TABLE tb1( username VARCHAR(20), age TINYINT UNSIGNED, salary FLOAT(8,2) UNSIGNED );
2. 查看数据表列表
SHOW TABLES [FROM db_name] [LIKE 'patten' | WHERE expr] ;
Demo:
SHOW TABLES;
3. 查看数据表结构
SHOW COLUMNS FROM tbl_name;
或
DESC tbl_name;
4. 插入记录
INSERT [INTO] tbl_name[(col_name,...)] VALUES(val,..);
Demo: 为之前创建的 tb1 插入一条记录
INSERT tb1(username,age,salary) VALUES("John",27,4999.60);
5. 查找记录
SELECT expr,... FROM tbl_name;
Demo: 查找之前为 tb1 插入的记录
SELECT * FROM tb1;
三、 字段属性
1. 空值与非空
NULL,字段值可以为空
NOT NULL,字段值禁止为空
Demo: 为 t2 表的 name 字段设置非空
CREATE TABLE t2( name NOT NULL );
2. 自动编号
AUTO_INCREMENT
自动编号,且必须与主键组合使用
默认情况下,起始值为 1,每次增量为 1
该子段一定为数值型,如果为浮点数小数位数为 0
3. 主键
PRIMARY KEY
主键不一定必须和自动编号使用
主键自动为 NOT NULL
主键保证记录的唯一性
每张表只能存在一个主键
4. 唯一约束
UNIQUE KEY
唯一约束可以保证记录的唯一性
唯一约束的字段可以为空值(NULL)
每张数据表可以存在多个唯一约束
5. 默认约束
DEFAULT
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值
查看全部 -
order by 排序
select * from user order by age; 默认升序排序
select * from user order by age,id desc;
asc 升序
desc 降序
查看全部 -
分组条件 having
select sex,age from user group by sex having age>10;
select sex from user group by 1 having count(id) >=2;
查看全部 -
asc 升序
desc 降序
group by 分组
查看全部 -
where 表达式中可以使用MySQL支持的函数和运算符。
查看全部 -
select 列名,列名 from 表名; * 表示所有列
别名:(建议不用空格,用as关键词 )
select id as userid,username as uname from users;
查看全部 -
delete from 表名 where 条件;
删除后再添加的时候索引不会补在删除的位置,会继续向下索引
查看全部 -
更新记录
update 表名 set 列名= where 条件
查看全部
举报