SQL的新手。无法创建表并插入值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL的新手。无法创建表并插入值相关的知识,希望对你有一定的参考价值。

如标题所述,我无法获得看似有效的SQL代码来创建表和插入值。我一直从mysql工作台获取有关CREATE TABLE STATEMENT的语法错误,但是我不确定是否确实存在任何语法错误。我的文件中缺少语法之外的任何内容吗?

    CREATE TABLE EMP_1 
(
    emp_num CHAR(3),
    emp_lname VARCHAR(15) not null,
    emp_fname VARCHAR(15) not null,
    emp_initial CHAR(1),
    emp_hiredate DATE,
    job_code char(3),
);

INSERT INTO EMP_1 (emp_lname, emp_fname, emp_initial, 
                   emp_hiredate, job_code) 
VALUES
    (101,"News","John","G","08-Nov-00",502),
    (102,"Senior","David","H","12-Jul-89",501),
    (103,"Arbough","June","E","01-Dec-96",500),
    (104,"Ramoras","Anne","K","15-Nov-87",501),
    (105,"Johnson","Alice","K","01-Feb-93",502),
    (106,"Smithfield","William","","22-Jun-04",500),
    (107,"Alonzo","Maria","D","10-Oct-93",500),
    (108,"Washington","Ralph","B","22-Aug-91",501),
    (109,"Smith","Larry","W","18-Jul-97",501);
答案

有几个问题。

  1. 您在最后一列定义之后加了一个逗号。 create table失败。
  2. 您正在使用双引号而不是单引号。这不是致命的错误,只是一种不好的做法,因为SQL标准是单引号。
  3. 您的日期应采用规范格式YYYY-MM-DD,而不要使用字符串。那是'2000-11-08'而不是'08-Nov-00'
  4. 您为插入指定了六列,但仅为其提供了五列的值。
  5. 您还有其他类型问题,混淆了字符串和数字。这些将通过隐式转换来解决,但这通常是一个坏主意。

这是代码的外观:

INSERT INTO EMP_1 (emp_num, emp_lname, emp_fname, emp_initial, 
                   emp_hiredate, job_code) 
    VALUES ('101', 'News', 'John', 'G', '2000-11-08', '502');

[Here是db <>小提琴。

以上是关于SQL的新手。无法创建表并插入值的主要内容,如果未能解决你的问题,请参考以下文章

Spark - 创建表并插入常量值

检索 ODBC 表并插入 SQL Server CE 数据库

SQL 创建一个表并插入相关数据

创建sql表并读取json数组中的值

ORACLE存储过程创建临时表并插入数据。

sql索引实例