热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

MySQL自学篇_MySQL

创建数据表1、创建数据表的语法26684;式数据表属于数据库,在创建数据表之前要使用USE数据库名指定操作是在哪个数据库中进行的,如果没有选择数据库,将会出现Nodatabaseselected的错误

创建数据表

1、创建数据表的语法格式

数据表属于数据库,在创建数据表之前要使用“USE <数据库名>”指定操作是在哪个数据库中进行的,如果没有选择数据库,将会出现“No database selected”的错误

创建数据表的语句为:

CREATE TABLE ,

语法规则为:

CREATE TABLE <表明>

(

字段1 数据类型 [列级约束条件] [默认值],

字段2 数据类型 [列级约束条件] [默认值],

......

[表级约束条件]

);

使用CREATE TABLE创建表的时候,必须指定以下信息:

(1)要创建的表的名称,不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER、INSERT等。

(2)创建表中每一列的名称、数据类型时,如果要创建多个列,要使用逗号。

范例:

创建员工表employee。

首先选择创建表的数据库:

USE study

创建employee表的SQL语句:

CREATE TABLE employee

(

id INT(11),

name VARCHAR(25),

deptId INT(11),

salary FLOAT,

);

使用SHOW TABLES;查询数据表是否创建成功。

2、主键约束

主键,又称主码,是表中一列或多列的组合。逐渐约束要求主键列的数据唯一,并且不允许为空。主键能唯一的表示表中的一条数据,可以结合外键来定义不同数据表之间的关系,并且可以加快数据查询的速度。主键分为两种类型:单字段主键和多字段联合主键。

单字段主键

单字段主键是有一个字段组成,SQL语句格式分为以下两种情况:

(1)在定义列的同时指定主键,语法规则如下:

字段名 数据类型 PRIMARY KEY [默认值]

范例:

定义数据表employee2,其主键为id

CREATE TABLE employee2

(

id INT (11) PRIMARY KEY,

name VARCHAR(25),

deptId INT(11),

salary FLOAT

);

(2)在定义完所有的列之后指定主键

[CONSTRAINT <约束名>] PRIMARY KEY(字段名)

范例:定义数据表employee3,其主键为id,SQL语句如下

CREATE TABLE employee3

(

id INT(11),

name VARCHAR(25),

deptId INT(11),

salary FLOAT,

PRIMARY KEY(id)

);

多字段联合主键

多字段联合主键是由多个字段联合组成的,语法规则如下:

PRIMARY KEY [字段1,字段2,......字段n]

范例:

定义数据表employee4,假设表中没有主键id,为了唯一确定一个员工,可以把name和deptId联合起来作为主键,SQL语句如下:

CREATE TABLE employee4

(

name VARCHAR(25),

deptId INT(11),

salary FLOAT,

PRIMARY KEY (name,deptId)

);

3、使用外键约束

外键用来在两个表之间建立连接,他可以是一列或多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每个外键值必须等于另一个表中主键的某个值。

外键:

外键是表中的一个字段,外键可以不是本表的主键,但是外键应该是另一个表的主键。外加的主要作用就是保存数据引用的完整性,定义外键后,不允许删除在另一表中具有关联关系的行。外键的作用是保持数据的一致性,完整性。例如:部门表department的主键是id,在员工表employee5中有一个键deptId与这个id关联。

主表(父表):对于两个具有关联关系的表而言,相关连字段中主键所在的那个表即是主表

从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的表即是从表

创建外键的语法格式:

[CONSTRAINT <外键名>] FOREIGN KEY 字段名1 [,字段名2,...]

REFERENCES <主表名> 主键列1 [,主键列2,....]

“外键名”为定义的外键约束的名称。一个表中不能有相同的外键;“字段名”表示子表需要添加外键约束的字段列;“主表名”即被子表外键所依赖的表的名称;“主键列”表示主表中定义的主键列或列组合

范例:

定义数据表emplpyee5,并在employee5表上创建外键约束。

创建一个部门表department:

CREATE TABLE department

(

id INT(11) PRIMARY KEY,

name VARCHAR(22) NOT NULL;

location VARCHAR(50)

);

定义数据表employee5,让它的键deptId作为外键关联到deparment的主键:

create table employee5

(

id int(11) primary key,

name varchar(25),

deptId int(11),

salary float,

constraint foreign_key_emy_dept foreign key(deptId) references department(id)

);

以上语句执行成功后,在表emplyee5上添加了名为foreign_key_emy_dept的外键约束。外键名称为的deptId,其依赖于主表department的主键id

4、使用非空约束

非空约束指的是字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。

非空约束的语法规则如下:

字段名 数据类型 not null

范例:

定义数据表employee6,指定员工的名称不能为空:

create table employee6

(

id int(11) primary key,

name varchar(25) not null,

deptId int(11),

salary float,

constraint foreign_key_emy_dept2 foreign key(deptId) references department(id)

);

执行后,在employee6中创建了一个name字段,其插入值不能为空。

5、使用唯一性约束

唯一性约束要求该列唯一,允许为空,但是只能出现一个空值。唯一性约束可以确保一列或者几列不出现重复值。

非空约束的语法规则如下:

(1)在定义列之后直接定义唯一性约束。语法规则如下:

字段名 数据类型 UNIQUE

范例:创建department2,指定部门名称唯一:

create table department2

(

id int(11) primary key,

name varchar(22) unique,

location varchar(50)

);

(2)在定义完所有的列之后指定唯一性约束,语法规则如下:

[CONSTRAINT<约束名>] UNIQUE (<字段名>)

范例:

定义数据表department3,指定部门名称唯一。

create table department3

(

id int(11) not null,

name varchar(22),

location varchar(50),

constraint sth unique(name)

);

UNIQUE和PRIMARY KEY的区别:一个表中可以有多个字段声明为UNIQUE,但是只能有一个PRIMARY KEY声明;声明为PRIMARY KEY 的列不允许有空值,但是声明为UNIQUE的字段可以有空值。

6、使用默认约束

默认约束指定某列的默认值。如男同学较多,性别就可以设置为默认的’男‘。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动将这个字段赋值为’男‘。

默认约束的语法格式:

字段名 数据类型 DEFUALT 默认值

范例:

定义数据表employee7,指定员工的部门编号默认为1111:

create table employee7

(

id int(11) primary key,

name varchar(24) not null,

deptId int(11) default 1111,

salary float,

constraint foreign_key_emp_dept4 foreign key(deptId) references department(id);

);

7、设置表中的属性值自动增加

在数据库中,经常希望在每次插入新纪录时,系统自动生成字段的主键值。可以通过为表的主键添加AUTO_INCREMENT关键字来实现。默认的,在MySQL中,AUTO_INCREMENT的初始值是1,每新增一条记录,字段值自动加1.一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。AUTO_INCRE MENT约束的字段可以是任何的整数类型(TINYINT/SAMLLIN/INT/BIGINTD等)

设置自动增加的语法规则:

字段名 数据类型 AUTO_INCREMENT

范例:

create table employee8

(

id int(11) primary key auto_increment,

name varchar(25) not null,

deptId int(11)

);

推荐阅读
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了通过mysql命令查看mysql的安装路径的方法,提供了相应的sql语句,并希望对读者有参考价值。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 数据库(外键及其约束理解)(https:www.cnblogs.comchenxiaoheip6909318.html)My ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • yum安装_Redis —yum安装全过程
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Redis—yum安装全过程相关的知识,希望对你有一定的参考价值。访问https://redi ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
author-avatar
afagds
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有