mysql创建表时在extra输入数据_MySQL创建数据表(CREATE TABLE语句)

在创建数据库之后,接下来就要在数据库中创建数据表。所谓创建数据表,指的是在已经创建的数据库中建立新表。

创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。接下来我们介绍一下创建数据表的语法形式。

基本语法

在MySQL中,可以使用CREATE TABLE语句创建表。其语法格式为:

CREATE TABLE ([表定义选项])[表选项][分区选项];

其中,[表定义选项]的格式为:

[,…]

CREATE TABLE 命令语法比较多,其主要是由表创建定义(create-definition)、表选项(table-options)和分区选项(partition-options)所组成的。

这里首先描述一个简单的新建表的例子,然后重点介绍 CREATE TABLE 命令中的一些主要的语法知识点。

CREATE TABLE 语句的主要语法及使用说明如下:

CREATE TABLE:用于创建给定名称的表,必须拥有表CREATE的权限。

:指定要创建表的名称,在 CREATE TABLE 之后给出,必须符合标识符命名规则。表名称被指定为 db_name.tbl_name,以便在特定的数据库中创建表。无论是否有当前数据库,都可以通过这种方式创建。在当前数据库中创建表时,可以省略 db-name。如果使用加引号的识别名,则应对数据库和表名称分别加引号。例如,'mydb'.'mytbl' 是合法的,但 'mydb.mytbl' 不合法。

:表创建定义,由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成。

默认的情况是,表被创建到当前的数据库中。若表已存在、没有当前数据库或者数据库不存在,则会出现错误。

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

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

数据表中每个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开。

在指定的数据库中创建表

数据表属于数据库,在创建数据表之前,应使用语句“USE”指定操作在哪个数据库中进行,如果没有选择数据库,就会抛出 No database selected 的错误。

【实例 1】创建员工表 tb_emp1,结构如下表所示。

字段名称

数据类型

备注

id

INT(ll)

员工编号

name

VARCHAR(25)

员工名称

deptld

INT(ll)

所在部门编号

salary

FLOAT

工资

选择创建表的数据库 test_db,创建 tb_emp1 数据表,输入的 SQL 语句和运行结果如下所示。

mysql> USE test_db;

Database changed

mysql> CREATE TABLE tb_emp1

-> (

-> id INT(11),

-> name VARCHAR(25),

-> deptId INT(11),

-> salary FLOAT

-> );

Query OK, 0 rows affected (0.37 sec)

语句执行后,便创建了一个名称为 tb_emp1 的数据表,使用 SHOW TABLES;语句查看数据表是否创建成功,如下所示。

mysql> SHOW TABLES;

+--------------------+

| Tables_in_test_db |

+--------------------+

| tb_emp1 |

+--------------------+

1 rows in set (0.00 sec)

查看表结构

在 MySQL 中,使用 SQL 语句创建好数据表之后,可以查看结构的定义,以确认表的定义是否正确。在 MySQL 中,查看表结构可以使用 DESCRIBE 和 SHOW CREATE TABLE 语句。

DESCRIBE/DESC 语句可以查看表的字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等,语法规则如下:

DESCRIBE ;

或简写成:

DESC ;

【实例 2】使用 DESCRIBE 查看表 tb_emp1 的结构,输入的 SQL 语句和运行结果如下所示。

mysql> DESCRIBE tb_emp1;

+--------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+--------+-------------+------+-----+---------+-------+

| id | int(11) | YES | | NULL | |

| name | varchar(25) | YES | | NULL | |

| deptId | int(11) | YES | | NULL | |

| salary | float | YES | | NULL | |

+--------+-------------+------+-----+---------+-------+

4 rows in set (0.14 sec)

其中,各个字段的含义如下:

Null:表示该列是否可以存储 NULL 值。

Key:表示该列是否已编制索引。PRI 表示该列是表主键的一部分,UNI 表示该列是 UNIQUE 索引的一部分,MUL 表示在列中某个给定值允许出现多次。

Default:表示该列是否有默认值,如果有,值是多少。

Extra:表示可以获取的与给定列有关的附加信息,如 AUTO_INCREMENT 等。

SHOW CREATE TABLE语句可以用来显示创建表时的CREATE TABLE语句,语法格式如下:

SHOW CREATE TABLE \G;

【实例 3】使用 SHOW CREATE TABLE 查看表 tb_emp1 的详细信息,输入的 SQL 语句和运行结果如下所示。

mysql> SHOW CREATE TABLE tb_emp1\G

*************************** 1. row ***************************

Table: tb_emp1

Create Table: CREATE TABLE `tb_emp1` (

`id` int(11) DEFAULT NULL,

`name` varchar(25) DEFAULT NULL,

`deptId` int(11) DEFAULT NULL,

`salary` float DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=gb2312

1 row in set (0.03 sec)

提示:使用 SHOW CREATE TABLE 语句不仅可以查看创建表时的详细语句,而且可以查看存储引擎和字符编码。如果不加“\G”参数,显示的结果可能非常混乱,加上“\G”参数之后,可使显示的结果更加直观,易于查看。

这就是微学网-程序员之家为你提供的"MySQL创建数据表(CREATE TABLE语句)"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/7459.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql not in报错_mysql从5.7升级到8.0查询报错Expression #2 of SELECT list is not in GROUP BY...

报错信息:Expression #2 of SELECT list is not in GROUP BY clause and containsnonaggregated column ‘sss.month_id’ which is not functionallydependent on columns in GROUP BY clause; this is incompatible withsql_modeonly_full_group_by问题出现的原因…

mysql取消操作系统_Linux下的MySQL简单操作(服务启动与关闭、启动与关闭、查看版本)...

小弟今天记录一下在Linux系统下面的MySQL的简单使用,如下:服务启动与关闭 启动与关闭 查看版本环境Linux版本:centeros 6.6(下面演示),Ubuntu 12.04(参见文章末尾红色标注字体)MySQL版本:5.1.73查看MySQL服务的启动状态…

python文件下载速度 装饰器_python使用装饰器对文件进行读写操作'及遍历文件目录...

‘‘‘使用装饰器对文件进行读写操作‘‘‘#def check_permission(func):#‘‘‘演示嵌套函数定义及使用‘‘‘#def wrapper(*args,**kwargs):#‘‘‘*args:接收任意多个实参并存入元组中;**kwargs:接收关键字参数显示赋值并存入字典中‘‘‘#if kwargs.get(‘usern…

python日期转化成周数_[转]浅析使用python计算两个日期间隔天数﹑周数和指定若干天后对应的日期等...

>>> import datetime>>> help(datetime)http://docs.python.org/library/datetime.html查看2009年5月31日和2009年2月1日间隔多少天>>> d1datetime.date(2009,05,31)>>> d2datetime.date(2009,02,01)>>> d1-d2datetime.timedelta…

python读取csv画图datetime_python – CSV数据(Timestamp和事件)的时间表绘图:x-label常量...

(这个问题可以单独阅读,但是是续集:Timeseries from CSV data (Timestamp and events))我想通过使用python的熊猫模块(见下面的链接)的时间表表示,可视化CSV数据(从2个文件),如下所示.df1的样本数据:TIMESTAMP eventid0 2017-03-20 02:38:24 11 2017-03-…

建立通讯录python增删改查_Python编程实践之编写电话薄实现增删改查功能

初学Python编程实践,写一个小程序练习一下。主要功能就是增删改查的一些功能。主要用到的技术:字典的使用,pickle的使用,io文件操作。希望对大家学习Python编程实践有所帮助。代码如下:import pickle#studentinfo {ne…

python mysql connection close,Python数据库连接关闭

Using the code below leaves me with an open connection, how do I close?import pyodbcconn pyodbc.connect(DRIVERMySQL ODBC 5.1 driver;SERVERlocalhost;DATABASEspt;UIDwho;PWDtestest)csr conn.cursor()csr.close()del csr解决方案Connections have a close method …

python正向切片_使Python切片正常(正/正向+无无+无负索引+在边界内)

在Python中实现可以用标准Python语法进行切片的类(即负索引、单步执行等)时,有时可以将切片转换为“理智的、向前的切片”,以确定切片的元素。怎样才能以简洁/优雅的形式写出这样一个函数呢?在对于“理智的、向前的切片”,我指的是…

python笔记小白入门_Python 笔记:全网最详细最小白的Class类和实例详解

面向对象最重要的概念就是类(class)和实例(instance),类是抽象,而实例(Instance)则是一个个具体的对象面向对象三大特点:封装、继承和多态class Animal(object):def __init__(self, name):self.name name # 初始化类变量def Dog(self): # 创…

如何安装mysql5.7.2_CentOS 7.2 安装MySQL 5.7

CentOS 7之后的版本yum的默认源中使用MariaDB替代原先MySQL,因此安装方式较为以往有一些改变:下载mysql的源wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm安装yum库yum localinstall -y mysql57-community-release-el7-7.n…

java父类调用子类方法_Java 中父类怎么调用子类的方法?

父类能调用子类的方法吗?答:能。怎么做?● 把子类传递到父类的有参构造中,然后调用。● 使用反射的方式调用,你使用了反射还有谁不能调用的?!● 父类调用子类的静态方法。案例展示:p…

java entity转dto_java 使用反射在dto和entity 实体类之间进行转换

public class Utils {/*** 将dto和entity之间的属性互相转换,dto中属性一般为String等基本类型,* 但是entity中可能有复合主键等复杂类型,需要注意同名问题* param src* param target*/public static Object populate(Object src, Object target) {Method[] srcMethods src.ge…

java 字符串转dom对象_xml类型的字符串转换为Dom对象

我写这篇博客的目的是因为我在这一点转换方面耽搁了快2天时间,真是惭愧呀,dom4j.jar包有自带方法DocumentHelper.parseText(String text)用于将字符串类型的xml转换为Dom对象,从而进行下面的解析,还有一个关键是:产生字…

java nlpir_中科院NLPIR中文分词java版

摘要:为解决中文搜索的问题,最开始使用 版 SCWS ,但是处理人名和地名时,会出现截断人名地名出现错误。开始使用 NLPIR 分词,在分词准确性上效果要比 SCWS 好。本文介绍如何在 系统下 JAVA ,生成可以执行的 …

java怎编写么解析一个类型_DAY3:你必须知道的java虚拟机之类篇——类文件的结构...

马上过年啦,不知道大家今年有没有投资基金股票呢?是赚的盆满钵满还是拍断大腿,可以评论区一起交流交流,秀一秀哈哈,反正我是没来得及上车。暴富西不可能暴富的啦,打工人嘛几能写写文章啦~记得点…

java开发工具排名_排名前16的Java工具类

在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类。以下工具类、方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码。一. org.apache.commons.io.IOUtilscloseQuietly&#xf…

java 线程 事件_Java事件调度线程解释

我最近开始学习和探索Java编程的基础知识。已经编程了一段时间,我只做了后端工作或工作,因此最接近我已经得到用户界面是命令控制台(我知道的尴尬)。我使用Swing,就我可以收集这意味着通过扩展我也使用AWT。我的问题是基于这段代码&#xff1…

java自学笔记_JAVA自学笔记(4)

发现JAVA的有趣Day1 继承不是"继承"1.0 继承的格式public classFU {public voidmethod(){System.out.println("Good night!");}}public class ZI extendsFU {}public classPractice {public static voidmain(String[] args) {ZI zinewZI();zi.method();}}打…

java中isolate时间_Java HikariDataSource.setIdleTimeout方法代码示例

import com.zaxxer.hikari.HikariDataSource; //导入方法依赖的package包/类private HikariDataSource createHikariDataSource(JdbcProperties jdbcProperties) {HikariDataSource hikariDataSource new HikariDataSource();hikariDataSource.setJdbcUrl(jdbcProperties.getJ…

java连接mysql通用方法_jdbc操作数据库通用方法

1 /**2 * 增删改查操作公共类(以oracle数据库为例)3 * 2017-8-29 wuyafei4 *5 */6 public classCrudUtil {7 /**8 * 1.获取数据库连接9 * 2.获取statement,加载sql语句10 * 3.获取resultset11 *12 */13 public static Connection connnull;14 public static Stateme…