mysql创建表

MySQL常见建表选项及约束

扶醉桌前 提交于 2019-11-29 08:35:08
阅读目录---MySQL常见的建表选项及约束: 1、 create table选项   1、 指定列选项 : default 、 comment   2、 指定表选项 : engine 、auto_increment、comment 2、 create table约束     1、 not null :非空约束   2、 unique :唯一约束   3、 primary key :主键约束   4、 foreign key :外键   5、 check :检查---enum、set 一、CREATE TABLE 选项 1、在定义列的时候,指定列选项 1)DEFAULT <literal>:定义列的默认值   当插入一个新行到表中并且没有给该列明确赋值时,如果定义了列的默认值,将自动得到默认值 ;如果没有,则为null。 当然,也可以在INSERT和UPDATE语句中使用DEFAULT关键字显式地给列赋默认值: 函数default(column)可以得到一个列的默认值: 2)comment:用来给列添加注释,最多255个字符,注释会保存到数据字典中。   创建带有列注释的表stu_comment 从数据字典查询注释信息 2、在CREATE TABLE语句中的表选项 1)engine:指定表使用的存储引擎 存储引擎:决定了数据如何存储以及如何访问,还有事务如何处理

mysql 表的完整性约束

戏子无情 提交于 2019-11-29 08:32:12
目录 mysql 表的完整性约束 约束概念 unsigned 设置某一个数字无符号 (整数类型 ,浮点类型不能是unsigned) not null 某一个字段不能为空(严格模式会影响非空设置的效果) default 给某个字段设置默认值(设置默认值) unique 设置某一个字段不能重复 (唯一约束) auto_increment 设置某一个int类型的字段 自动增加 (自增字段 必须是数字 且 必须是唯一的) primary key 设置主键 (这一个字段非空且唯一) foreign key 外键 (外键,涉及到两张表,数据类型一样,且有唯一约束) references 级联删除和更新 mysql 表的完整性约束 约束概念 为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测, 使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。 约束条件与数据类型的宽度一样,都是可选参数,主要分为以下几种: # NOT NULL :非空约束,指定某列不能为空; # UNIQUE : 唯一约束,指定某列或者几列组合不能重复 # PRIMARY KEY :主键,指定该列的值可以唯一地标识该列记录 # FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性 unsigned

MySQL基础/数据库和表的设计

孤人 提交于 2019-11-29 08:29:46
MySQL基础 一:安装MySQL(按步骤操作,如果下载后使用不了,试着用360安全卫士卸载MySQL,清除残留的,方便在下载造成不必要的麻烦;如果这样也不行,那就需要重做系统在进行下载) 二:创建数据库/表 黑窗口:1:输入密码     2:show databases:查看数据库     3:create database 库名:创建库     4:use 库名:使用库     5:create table 表名:创建表(       列名数据类型(约束条件), //用逗号隔开       );     6:show tables:查看库里有哪些表     7:desc 表名:查看表的详细内容 数据库和表的设计 一:数据完整性:指数据的精确性和可靠性。目的:为了防止数据库中存在不符合语义规定的数据或者因错误信息的输入而造成无效的操作。 分类:实体完整性:客观世界存在的事物 数据表中应该输入哪些数值          primary key:主键约束          unique:唯一约束    域完整性:考虑如何限制向表中输入的数值的范围         foreign key:外键约束         defaule:默认约束         not null:非空约束    引用完整性:外键属于引用完整性    用户自定义完整性 二:数据完整性在MySQL中的体现   1

mysql的建表约束

狂风中的少年 提交于 2019-11-29 08:29:16
主键约束(primary key) 主键约束能够唯一确定一张表中的记录,也就是可以通过某个字段添加约束,就可以是的 该字段不重复,且不为空 create table user (id int primary key,name char,phone int(11)); 联合主键(只要联合主键的值加起来不完全相同就可以添加成功) create table user3 (id int,name char(3),phone char(11),primary key (id,name)); 联合主键的表中,只要插入的数据的主键的值加起来不完全相同,就可以添加成功 自增约束(primarykey和auto_increment联合使用) 当创建表时没有添加主键约束怎么办? 可以使用alter语句来修改表的结构 语法:alter table 表名 add primary key (字段名); 同样可以应用alter语句来删除主键 语法:alter table 表名 drop primary key ; 通过修改字段的方式添加主键约束(modify) 语法:alter table 表名 modify 字段名 字段类型 primary; 外键约束(foreign key.......references) 涉及到两个表:父表(主表)、子表(副表) 特性:主表中没有的数据,在副表中不可以直接添加

mysql的建表约束

自古美人都是妖i 提交于 2019-11-29 08:24:54
主键约束(primary key) 主键约束能够唯一确定一张表中的记录,也就是可以通过某个字段添加约束,就可以是的 该字段不重复,且不为空 create table user (id int primary key,name char,phone int(11)); 联合主键(只要联合主键的值加起来不完全相同就可以添加成功) create table user3 (id int,name char(3),phone char(11),primary key (id,name)); 联合主键的表中,只要插入的数据的主键的值加起来不完全相同,就可以添加成功 自增约束(primarykey和auto_increment联合使用) 当创建表时没有添加主键约束怎么办? 可以使用alter语句来修改表的结构 语法:alter table 表名 add primary key (字段名); 同样可以应用alter语句来删除主键 语法:alter table 表名 drop primary key ; 通过修改字段的方式添加主键约束(modify) 语法:alter table 表名 modify 字段名 字段类型 primary; 外键约束(foreign key.......references) 涉及到两个表:父表(主表)、子表(副表) 特性:主表中没有的数据,在副表中不可以直接添加

mysql 多表查询

断了今生、忘了曾经 提交于 2019-11-29 07:38:10
mysql 多表查询 创建2个对应的表 create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null default 'male', age int, dep_id int ); --插入数据 insert into department values (200,'技术'), (201,'人力资源'), (202,'销售'), (203,'运营'); insert into employee(name,sex,age,dep_id) values ('egon','male',18,200), ('alex','female',48,201), ('wupeiqi','male',38,201), ('yuanhao','female',28,202), ('liwenzhou','male',18,200), ('jingliyang','female',18,204) ; 1. 连表查询 inner join     内连接       只连接匹配的行 left join      左连接       

MySQL多表查询

这一生的挚爱 提交于 2019-11-29 07:35:59
MySQL之多表查询 创建表 # 创建表 create table department(id int,name varchar(20)); create table employee1( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null default 'male', age int, dep_id int ); # 插入数据 insert into department values(200,'技术'),(201,'人力资源'),(202,'销售'),(203,'运营'); insert into employee1(name,sex,age,dep_id) values('egon','male',18,200),('alex','female',48,201),('tom','male',38,201),('yuanhao','female',28,202),('lidawei','male',18,200),('jinkezhou','female',18,204); # 查看表 mysql> select * from employee1; +----+-----------+--------+------+--------+ | id |

理解mysql执行多表联合查询

久未见 提交于 2019-11-29 07:33:52
/*--> */ /*--> */ 阅读目录 一:inner join(内连接) 二:left join(左连接) 三:right join(右连接) 四:cross join(交叉连接) 五:union操作 六:node+mysql 多表联合查询 查询多张表一般有如下连接方法: 1)内连接:join, inner join 2)外连接:left join, left outer join, right join, right outer join, union; 3) 交叉连接:cross join join的含义是:用于多表中字段直接的联系。 基本语法如下: select * from table1 inner|left|right join table2 on conditiona 说明:table1 是指第一张表。table2是指第二张表。 on 后面的含义是:满足这个条件。 join按照功能可以分成如下三类: 1) inner join(内连接,或叫等值连接):取得两个表中存在连接匹配关系的记录。 2)left join(左连接):取得左表(table1)完全记录,右表(table2)如果有条件相符合的记录就匹配,否则为null; 3) right join(右连接): 取得右表(table2)完全记录,左表(table1)如果有条件相符合的记录就匹配,否则为null;

单表查询

寵の児 提交于 2019-11-29 04:46:07
单表查询的语法 复制代码 查询数据的本质:mysql会到你本地的硬盘上找到对应的文件,然后打开文件,按照你的查询条件来找出你需要的数据。下面是完整的一个单表查询的语法 select * from,这个select * 指的是要查询所有字段的数据。 SELECT distinct 字段1,字段2... FROM 库名.表名 #from后面是说从库的某个表中去找数据,mysql会去找到这个库对应的文件夹下去找到你表名对应的那个数据文件,找不到就直接报错了,找到了就继续后面的操作 WHERE 条件 #从表中找符合条件的数据记录,where后面跟的是你的查询条件 GROUP BY field(字段) #分组 HAVING 筛选 #过滤,过滤之后执行select后面的字段筛选,就是说我要确定一下需要哪个字段的数据,你查询的字段数据进行去重,然后在进行下面的操作 ORDER BY field(字段) #将结果按照后面的字段进行排序 LIMIT 限制条数 #将最后的结果加一个限制条数,就是说我要过滤或者说限制查询出来的数据记录的条数 关于上面这些内容,我们在下面一个一个的来详细解释 复制代码 二 关键字的执行优先级(重点) 复制代码 复制代码 重点中的重点:关键字的执行优先级 from where group by having select distinct order by limit

mysql外键详解

余生颓废 提交于 2019-11-29 04:45:54
一、外键简介 外键表示一个表中的一个字段被另一个表中的一个字段引用。外键对相关表中的数据造成了限制,使MySQL能够保持参照完整性。 下面来看看 示例数据库(yiibaidb) 中的以下数据库中两个表: customers 和`orders``的ER图。 上图中有两张表: customers 和 orders 。每个客户有零个或多个订单,每个订单只属于一个客户。 customers 表和 orders 表之间的关系是一对多的,它是由 customerNumber 字段指定在 orders 表中建立外键(引用 customers 表的 customerNumber 字段)。 orders 表中的 customerNumber 字段与 customers 表中的 customerNumber 主键字段相关。 customers 表称为父表或引用表, orders 表称为子表或引用表。 表可以有多个外键,子表中的每个外键可能引用不同的父表。 子表中的行必须包含父表中存在的值,例如, orders 表中的每个订单记录必须在 customers 表中存在 customerNumber 。 因此,多个订单可以指同一个客户,因此这种关系称为一个(客户)到许多(订单)或一对多。 有时,子表和父表是一样的,外键返回到表的主键。 reportTo 列是一个引用 employeeNumber 列的外键,