mysql 创建表_每天10分钟带你学会MySQL(三)表的创建
要掌握的要点:
- 表通过CREATE TABLE语句创建而成。
- 表和列的命名要使用有意义的文字。
- 指定列的数据类型(整数型、字符型和日期型等)。
- 可以在表中设置约束(主键约束和NOT NULL约束等)。
数 据 库 的 创 建(CREATE DATABASE语句)
在创建表之前,一定要先创建用来存储表的数据库。运行CREATE DATABASE语句就可以在RDBMS上创建数据库了。CREATE DATABASE语句的语法如下所示A。
语法1-1 创建数据库的CREATE DATABASE语句
CREATE DATABASE <数据库名称>;
这里我们将数据库命名为shop, 创建数据库shop的CREATEDATABASE语句CREATE DATABASE shop;此外,数据库名称、表名以及列名都要使用半角字符(英文字母、数字、符号),具体内容随后会进行介绍。
表的创建(CREATE TABLE语句)创建好数据库之后,接下来我们使用CREATE TABLE语句在其中创建表。CREATE TABLE语句的语法如下所示
创建表的CREATETABLE语句
CREATE TABLE <表名>
(<列名1> <数据类型> <该列所需约束>,<列名2> <数据类型> <该列所需约束>, <列名3> <数据类型> <该列所需约束>, <列名4> <数据类型> <该列所需约束>, . . .
<该表的约束1>, <该表的约束2>,... ... );
创建Product表的CREATETABLE语句
CREATE TABLE Product
(product_id CHAR(4) NOT NULL,product_name VARCHAR(100) NOT NULL,
product_type VARCHAR(32) NOT NULL,
sale_price INTEGER ,purchase_price INTEGER ,
regist_date DATE , PRIMARY KEY (product_id));
命名规则
我们只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称。
数据类型的指定
Product表所包含的列,定义在CREATETABLEProduct( )的括号中。列名右边的INTEGER或者CHAR等关键字,是用来声明该列的数据类型的,所有的列都必须指定数据类型。
数据类型表示数据的种类,包括数字型、字符型和日期型等。每一列都不能存储与该列数据类型不符的数据。声明为整数型的列中不能存储'abc'这样的字符串,声明为字符型的列中也不能存储1234这样的数字。
数据类型的种类很多,各个RDBMS之间也存在很大差异。根据业务需要实际创建数据库时,一定要根据不同的RDBMS选用最恰当的数据类型。在学习SQL的时候,使用最基本的数据类型就足够了。下面我们就来介绍四种基本的数据类型。
●INTEGER型用来指定存储整数的列的数据类型(数字型),不能存储小数。
●CHAR型CHAR是CHARACTER(字符)的缩写,是用来指定存储字符串的列的数据类型(字符型)。可以像CHAR(10)或者CHAR(200)这样,在括号中指定该列可以存储的字符串的长度(最大长度)。字符串超出最大长度的部分是无法输入到该列中的。RDBMS不同,长度单位也不一样,既存在使用字符个数的情况,也存在使用字节长度A的情况。
字符串以定长 字 符 串的形式存储在被指定为CHAR型的列中。所谓定长字符串,就是当列中存储的字符串长度达不到最大长度的时候,使用半角空格进行补足。例如,我们向CHAR(8)类型的列中输入'abc'的时候,会以'abc'(abc后面有5个半角空格)的形式保存起来。另外,虽然之前我们说过SQL不区分英文字母的大小写,但是表中存储的字符串却是区分大小写的。也就是说,'ABC'和'abc'代表了两个不同意义的字符串。
●VARCHAR型同CHAR类型一样,VARCHAR型也是用来指定存储字符串的列的数据类型(字符串类型),也可以通过括号内的数字来指定字符串的长度(最大长度)。但该类型的列是以可 变长 字 符 串的形式来保存字符串的B。定长字符串在字符数未达到最大长度时会用半角空格补足,但可变长字符串不同,即使字符数未达到最大长度,也不会用半角空格补足。例如,我们向VARCHAR(8)类型的列中输入字符串'abc'的时候,保存的就是字符串'abc'。该类型的列中存储的字符串也和CHAR类型一样,是区分大小写的
约束的设置约束是除了数据类型之外,对列中存储的数据进行限制或者追加条件的功能。Product表中设置了两种约束。
Product表的product_id列、product_name列和product_type列的定义如下所示。product_id CHAR(4) NOT NULL,product_name VARCHAR(100) NOT NULL,product_type VARCHAR(32) NOT NULL,数据类型的右侧设置了NOT NULL约束。NULL是代表空白(无记录)的关键字A。在NULL之前加上了表示否定的NOT,就是给该列设置了不能输入空白,也就是必须输入数据的约束(如果什么都不输入就 会 出 错 )。这样一来,Product表的product_id(商品编号)列、product_name(商品名称)列和product_type(商品种类)列就都成了必须输入的项目。另外,在创建Product表的CREATETABLE语句的后面,还有下面这样的记述。PRIMARY KEY (product_id)这是用来给product_id列设置主键约束的。所谓键,就是在指定特定数据时使用的列的组合。键种类多样,主键(primary key)就是可以特定一行数据的列B。也就是说,如果把product_id列指定为主键,就可以通过该列取出特定的商品数据了。反之,如果向product_id列中输入了重复数据,就无法取出唯一的特定数据了(因为无法确定唯一的一行数据)。这样就可以为某一列设置主键约束了。
mysql 创建表_每天10分钟带你学会MySQL(三)表的创建相关推荐
- mysql书写规则_每天10分钟带你学会MySQL(二)SQL语句的基本书写规则
SQL语句时必须要遵守一些规则.这些规则都非常简单,接下来就让我们逐一认识一下吧. 1,SQL语句以分号(;)结尾. ■SQL语句要以分号(;)结 尾 一条SQL语句可以描述一个数据库操作.在RDBM ...
- sql 全角转半角_每天10分钟带你学会MySQL(二)SQL语句的基本书写规则
SQL语句时必须要遵守一些规则.这些规则都非常简单,接下来就让我们逐一认识一下吧. 1,SQL语句以分号(;)结尾. ■SQL语句要以分号(;)结 尾 一条SQL语句可以描述一个数据库操作.在RDBM ...
- 10分钟带你学会微信小程序的反编译
以xxxxx小程序为例10分钟带你学会微信小程序的反编译 2019-11-28 12:59:26 以一个简单的例子介绍下小程序反编译操作流程 实验环境 前置准备 模拟器内软件安装 获取小程序包 开始解 ...
- Azure IoT Hub 十分钟入门系列 (1)- 10分钟带你了解Azure IoT Hub 并创建IoT Hub
建议您先对<Azure 上 IoT 整体解决方案概览 >进行了解. 本文主要分享一个案例: 10分钟-了解Azure IoT Hub并创建Azure IoT Hub 本文主要有如下内容: ...
- 文件上传很难搞?10分钟带你学会阿里云OSS对象存储
一. 前言 最近有很多小伙伴问壹哥,如果我们要进行大规模的文件存储该怎么做? 其实实现文件存储的技术有很多,如果我们在网上搜索一下,你会发现实现的技术简直是五花八门,比如有一种技术叫FastDFS就可 ...
- 以中银E路通小程序为例10分钟带你学会微信小程序的反编译
以一个简单的例子介绍下小程序反编译操作流程 实验环境 前置准备 模拟器内软件安装 获取小程序包 开始解包 导入开发者工具 补充注意事项 技术交流群 有偿解包 uniapp 逆向服务 逆向教程小程序
- java编程石头剪刀布图片_石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源...
原标题:石头.剪刀.布!10分钟带你打开深度学习大门,代码已开源 沉沉 发自 宇宙中心 量子位 出品 | 公众号 QbitAI 深度学习技术的不断普及,越来越多的语言可以用来进行深度学习项目的开发,即 ...
- mysql和oracle冲突吗_三分钟带你分清MySQL 和Oracle之间的误区
原标题:三分钟带你分清MySQL 和Oracle之间的误区 来自:华为云开发者社区 摘要:MySQL和Oracle,别再傻傻分不清. MySQL 和Oracle 在开发中的使用是随处可见的,那就简单去 ...
- 10分钟带你了解python_10分钟Python入门系列教程及学习资源分享
本期分享笔记内容 归档此前入门教程文章,方便查看 10分钟带你Python入门的特点 简单谈下如何寻找Python学习资源 关于分享Python学习资源的分享问题 本人对于Python学习创建了一个小 ...
最新文章
- Android自定义泡泡效果 源码
- Retrofit2.0和Rxjava结合使用的简单记录
- java字符匹配,Java:匹配字符串中的短语
- Modbus协议栈应用实例之四:ModbusTCP服务器应用
- Windows10 部署 Sonarqube 代码质量管理平台
- vtkSuperquadricSource:创建以原点为中心的多边形超二次曲面
- listview的简单实现
- rmi反序列化导致rce漏洞修复_企业安全05-Fastjson =1.2.47反序列化RCE漏洞(CNVD-2019-22238)...
- Capital Asset Pricing Model (CAPM)
- SQL Server 字段类型Char Varchar 比较
- linux 自动开飞行模式,Android飞行模式灰显不能操作问题分解
- Android熟悉使用PackageManager,ActivityManager,MemoryInfo,引入布局文件Include的使用,values的管理
- Shallow Size 和 Retained Size
- body加背景图片没反应_body背景图片,给body加背景图片
- 对求一个数的各个位数的理解
- 面向对象程序设计c++版董正言张聪课本课后习题答案第二章
- 用更简单的方式画森林图
- EPICS -- base的自动化安装脚本
- 分享|雄安新区2021年大数据研究报告(附PDF)
- 我为什么选择超级IP名片
热门文章
- python做系统查人的信息_Python综合项目之员工信息查询
- mysql b 树 锁_mysql索引B+树、MVCC、锁一文搞懂
- oracle apex 发布应用,基于Oracle APEX的快速Web应用开发
- NLTK使用英文词性还原
- python函数注解
- elif else if oracle_shell中if做比较
- jquery 取值 数值_jQuery – 使用正则表达式获取数据值
- TodoMVC中的Backbone+MarionetteJS+RequireJS例子源码分析之三 Views
- 斯图加特大学GPU光线投射体渲染技术提携
- python3 pygame 坦克自动移动