当前位置: 首页 > news >正文

学敏网站建设人民日报新闻

学敏网站建设,人民日报新闻,wordpress 随机图片,做网站的qq兼职文章目录1.创建表2.表创建基础3.表的主键4.使用null值5.使用AUTO_INCREMENT6.指定默认值7. 字段备注8.引擎类型9.外键1.创建表 表的创建一般有俩种方式,一种是使用交互式创建和管理表的工具,比如我们安装的MariaDB,另一种是使用MySQL 语句进…

文章目录

  • 1.创建表
  • 2.表创建基础
  • 3.表的主键
  • 4.使用null值
  • 5.使用AUTO_INCREMENT
  • 6.指定默认值
  • 7. 字段备注
  • 8.引擎类型
  • 9.外键


1.创建表

表的创建一般有俩种方式,一种是使用交互式创建和管理表的工具,比如我们安装的MariaDB,另一种是使用MySQL 语句进行创建;

在日常工作中,涉及到表的新建或修改的语句,都需要提供SQL脚本,到生产环境进行批量的生效,所以MySQL 语句的创建方式才是更多人选择使用的一种方式,使用交互式创建和管理表的工具来进行创建是十分简单易学的,但是因为每个工具都有自己的设计分隔,所以这里不再进行介绍,大家自行研究即可;

2.表创建基础

创建表使用CREATE TABLE语句,创建时必须在CREATE TABLE语句后给出新表的名字,表列的名字和定义,用逗号分隔;

CREATE TABLE语句也可能包含其他关键字或选项,但至少要包含表的名字和列的细节;

语法: create table 表名(字段名称 字段类型(字段长度),字段2,字段3…)

如:


create table tb_door(id int(11) not null,door_name varchar(100) not null,tel varchar(20) null);

从上面的例子中可以看出,表名紧跟在create table 关键字之后,实际关于表的相关定义,被包裹在圆括号之中,各列之间使用逗号分隔;

在MySql语句中,其会忽略空格,语句可以在一个长行上输入,也可以分成许多行,一般我们便于查看,都会根据其字段将其分成多行进行使用;

表中每个字段的定义都以列名开始(列名在表中必须唯一),后跟列的数据类型,以及相关属性,最后一个字段切记不加逗号,否则MySql会认为你还有没有输入完成的下一列没有输入,导致命令报错;

在创建新表时,要求在当前数据库中此表名是唯一的,否则会报错,如果要防止意外覆盖已经存在的表,SQL要求首先手动删除该表,然后再重新建它,而不是简单的用创建语句覆盖。如果你只想在一个表不存在时创建它,那么应该在表名后给出 if not exists,这样做不会检查已经存在的表与你的表属性是否相同,只会检查表名是否存在,且在表明不存在时创建它;如下方语句对上述创建表语句的优化:

create table tb_door if not exists(id int(11) not null,door_name varchar(100) not null,tel varchar(20) null);

3.表的主键

接下来我们改造tb_door 表:

create table tb_door if not exists(id int(11) not null,door_name varchar(100) not null,tel varchar(20) null,PRIMARY KEY(id));

这张表中,表名为tb_door ,紧跟在CREATE TABLE 后面,实际的表定义都在括号内,各列之间用逗号分隔,列名在表中必须唯一,列名后跟着列的数据类型及是否为空属性;

表的主键可以在创建表时用PRIMARY KEY指定,也可以在指定字段后直接跟PRIMARY KEY来表明这个字段为主键,比如:

create table tb_door if not exists(id int(11) PRIMARY KEY not null,door_name varchar(100) not null,tel varchar(20) null);

这样也是可以的;

在表中,主键值必须唯一,即表中的每个行必须具有唯一的主键值与之关联,如果一张表中,有多个主键字段,那么多个字段的组合值,必须保证唯一,当然这种情况是比较少的;

为创建由多个列组成的主键,应该以逗号分隔的列表给出各列明,如:

create table tb_door if not exists(id int(11) not null,door_name varchar(100) not null,tel varchar(20) null,PRIMARY KEY(id,door_name));

4.使用null值

null值就是没有值或者缺值,允许null值的列也允许在插入行时不给出该列的值,比如tb_door 表中,除tel 外,其他列都是不允许为null值的,所以插入一个新的数据时,你必须插入id与door_name ,只有tel 可以不插入;

为not null的字段在插入数据时必须提供其对应的值,否则会插入失败,在实际开发中,要确认哪些字段是必须要有的,而哪些字段不是必须的,以此来控制插入数据的准确性;

5.使用AUTO_INCREMENT

每张表只允许有一个AUTO_INCREMENT列,其必须被索引(索引将在后续介绍,主键会自动加入索引);

在表中,我们每插入一行新的数据,都必要要有一个与其他行不相同的主键,我们可以使用AUTO_INCREMENT来实现,其表明每一个新的行,使用AUTO_INCREMENT的字段的值都在上一个此字段的基础上加1;

例如我们插入的第一行数据cust_id 为1,那么接下插入的第二行数据我们不必给定确定的值,使用null插入也可以,MySql会自动帮我们给定cust_id 值为2;

这样当我们每增加一行数据时,自动增量cust_id 的值,便可以保证我们在业务中的cust_id 值唯一,而不用担心上一个插入的值到底是多少,导致cust_id 值重复插入失败;

6.指定默认值

我们可以使用DEFAULT 来指定此字段的默认值;

如door_name 字段我们指定了默认值为“葫芦娃”,那么在插入数据时,我们可以不输入door_name 字段的值,MySql会自动帮我们给定door_name 的值为“葫芦娃”;

7. 字段备注

我们可以使用comment 来给字段添加备注信息;

复杂的表往往有几百个字段,要记住这么多字段的具体含义是比较困难的,我们可以在设计表时就给字段添加备注信息,来表明此字段的具体含义,这个备注信息只提供给开发人员查看,无任何其他作用,所以不必担心它会对你的表造成任何破坏,如:

CREATE TABLE customers( cust_id int  PRIMARY KEY NOT NULL AUTO_INCREMENT comment "主键", cust_name char(50) NOT NULL comment "名字",  cust_address char(50) NULL comment "地址",  cust_city char(50) NULL comment "城市",  cust_state char(5) NULL comment "省",  cust_country char(50) NULL DEFAULT 'China'  comment "国家",  cust_contact char(50) NULL  comment "联系方式",  cust_email char(255) NULL  comment "电子邮箱", ) ENGINE=InnoDB;

8.引擎类型

每一个Sql语言其内部都有一个管理和处理数据的内部引擎,MySql相比较其他sql语言有多个引擎,所以在创建表时,你可以指定使用哪个引擎,也可以不指定,当不指定时,就会使用默认的引擎来创建;

创建表语句结尾的ENGINE=InnoDB就指定这张表使用InnoDB引擎来管理和处理数据;
- InnoDB:一个可靠的事物处理引擎,不支持全文本搜索
- MEMORY:功能等同于MyISam,但是数据存储在磁盘中,所以速度很快,很适合创建临时表
- MyISam:一个性能极高的引擎,支持全文本搜索,但不支持事物处理;

在一个数据库中,引擎类型是可以混用的,比如表A你设置引擎类型为InnoDB,表B你设置引擎类型为MyISam,这是完全可以的;但也有例外情况,就是外键不能跨引擎;

外键用于强制实施引用完整性,所以不能跨引擎使用,也就是说使用InnoDB引擎的表,不能引用使用MyISam引擎表的外键;

9.外键

外键是某张表中的一列,其被包含在另外一张表中,且是另外一张表的主键;外键也是索引的一种,是通过一张表中的一列指向另一张表中的主键,来对两张表进行关联;一张表可以有一个外键,也可以存在多个外键,与多张表进行关联;

外键的主要作用是保证数据的一致性和完整性,并且减少数据冗余。主要体现在以下两个方面:

  1. 阻止执行

    • 从表插入新行,其外键值不是主表的主键值便阻止插入;
    • 从表修改外键值,新值不是主表的主键值便阻止修改;
    • 主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表的相关行);
    • 主表修改主键值,旧值在从表里存在便阻止修改(要想修改,必须先删除从表的相关行);
  2. 级联执行

    • 主表删除行,连带从表的相关行一起删除;
    • 主表修改主键值,连带从表相关行的外键值一起修改;

并且由于外键是关联外部表的,所以一般为了避免创建外键时所关联的表及字段不存在,一般在创建完成表之后使用修改表的语句增加外键,在修改表的语句中使用foreign key 关键字来创建,如:

ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段名)
REFERENCES 外表表名(主键字段名)

其中外键名一般由字段名_表名_外表表名组成,例如要给 表A 的 id1 字段创建外键,关联 表B 的 id2 字段,那么外键名一般设置为 id1_A_B ;

http://www.fp688.cn/news/155202.html

相关文章:

  • 建设银行潍坊支行网站百度搜索热度排名
  • 福建漳州网站建设公司网络营销的概念是什么
  • 安康网站建设公司关键词seo资源
  • 备案期间能否做网站解析线上营销方式
  • 旅游网站开发的国内外现状地推推广平台
  • wordpress数据连接失败1223免费seo工具大全
  • 华为建站网站推广优化方案
  • 大连市公众平台网站黄页网络的推广网站有哪些软件
  • 今日头条今天的最新新闻深圳专业seo外包
  • 西安做网站公司玖佰网络策划公司一般怎么收费
  • 域名网站建设如何优化培训体系
  • 影视制作做的好的有什么网站开发一个app需要多少钱?
  • 凉山州建设局网站百度云盘资源共享链接群组链接
  • 即墨做网站的北京seo推广系统
  • 本科毕业设计代做网站百度在全国有哪些代理商
  • 免费企业推广网站网络推广平台哪家公司最好
  • wordpress 添加下载按钮网站搜索优化技巧
  • app 设计网站建设百度大数据官网
  • 武汉做网站便宜百度云资源搜索引擎入口
  • 婚纱摄影网站设计模板如何开发一个网站
  • vs2013做的网站全网自媒体平台
  • 怎么做微信点击网站打赏看片营销型网站建设优化建站
  • 江门鹤山最新消息新闻seo的研究对象
  • 武汉免费建站系统个人网页怎么做
  • 微网站在线制作看广告赚钱的平台
  • edu网站开发搜索引擎推广的方法有
  • 做国际贸易网站哪家好如何看待百度竞价排名
  • 金融网站怎么做的seo独立站
  • 网站首页新世纪建设集团有限公司苏州seo安严博客
  • 建设网站 费用吗网址缩短