mysql - (SQL 帮助)有人可以告诉我我在哪里出错了吗?

标签 mysql sql database

我是一年级学生,正在攻读计算机学位。我一直在从事基于设计和构建数据库的模块。

下面是我创建的数据库,它基于发布的案例研究。我曾尝试使用验证器等,但没有成功。

当我尝试执行这段代码时,我遇到了很多语法错误,请帮助我想出一个解决方案。

CREATE TABLE `students` (

      PRIMARY KEY  (`STUDENT_ID`),
      UNIQUE KEY (`TENANT_ID`)

      `STUDENT_ID` INT (11) NOT NULL auto_increment,
      `TENANT_ID` INT (11) NOT NULL default '0',
      `NAME` VARCHAR (64) NOT NULL default '',
      `SURNAME` VARCHAR (64) NOT NULL default '',
      `DOB` DATETIME NOT NULL default '0000-00-00',
      `ADDRESS` VARCHAR (64) NOT NULL default '',
      `POSTCODE` VARCHAR (7) NOT NULL default '',
      `EMAIL` VARCHAR (64) NOT NULL default '',
        `PHONE` VARCHAR (14) NOT NULL default '',
      `CONFIRMED` INT (1) NOT NULL default '0',
        `GENDER` VARCHAR(6) NOT NULL CHECK (Gender IN ('M', 'F'))


    ) 

INSERT INTO `students` VALUES (`01', '001', ‘GRASS’, ‘LIAM’, ‘20-JUL-1992’,‘M’,'5 BROWN LANE','SS8 4FG','lgrass@gmail.com', `07458914578', );
INSERT INTO `students` VALUES (`02', '002', ‘BONES’, ‘PAUL’, ‘01-OCT-1991’,‘M’,'112 SAND WAY','CM15 7GT','pbones@gmail.com', `07985214748', );
INSERT INTO `students` VALUES (`03', '003', ‘KOLINSKY’, ‘RAV’, ‘19-SEP-1991’,‘M’,'111 ROVER ROAD','ER44 4RT','rkoli@gmail.com', `07723698517', );
INSERT INTO `students` VALUES (`04', '004', ‘MKO’, ‘LUCY’, ‘02-DEC-1992’,‘F’,'4 PEM GROVE','E12 W34','mko@gmail.com', `07528963756', );
INSERT INTO `students` VALUES (`05', '005', ‘MAKAMA’, ‘JENNY’, ‘23-JAN-1991’,‘F’,'4445 GOGG LANE','WC1E 3ER','makama@gmail.com', `07985641577', );
INSERT INTO `students` VALUES (`06', '006', ‘RAKTA’, ‘RAUL’, ‘10-MAY-1991’,‘M’,'234 ELA ROAD','SS8 4FG','rrakta@gmail.com', `07854711147', );
INSERT INTO `students` VALUES (`07', '007', ‘KUELA’, ‘CARLORINA’, ‘15-JUN-1992’,‘F’,'234 GRAND ROAD','BD8 9RR','ckuela@gmail.com', `07444589214', );
INSERT INTO `students` VALUES (`08', '008', ‘GEORGE’, ‘BEST’, ‘18-OCT-1991’,‘M’,'4 RAIL ROAD','MM5 5NN','gbest@gmail.com', `07884710369', );
INSERT INTO `students` VALUES (`09', '010', ‘KNOW’, ‘WER’, ‘02-FEB-1992’,‘F’,'9 LANE LANE','BG74 8UH','wknow@gmail.com', `07474010502', );
INSERT INTO `students` VALUES (`10', '010', ‘FAN’, ‘FANWELL’, ‘10-NOV-1992’,‘M’,'2 GNOME ROAD','GF3 8VA','ffan@gmail.com', `07425800369', );

CREATE TABLE `accommodation` (

    PRIMARY KEY  (`ROOM_ID`)
    UNIQUE KEY (`HALLS_NAME`) 

    `ROOM_ID` INT (11) NOT NULL AUTO_INCREAMENT,
    `TYPE` VARCHAR (64) NOT NULL default '',
    `PRICE` INT (11) NOT NULL default '0',
    `HALLS_NAME` VARCHAR (64) NOT NULL default '',
    `STATUS` INT (1) NOT NULL default '0',
    `TENANT_ID` INT (11) NOT NULL default '',
    `START_DATE` DATETIME NOT NULL default '0000-00-00 00:00:00',
    `END_DATE` DATETIME NOT NULL default '0000-00-00 00:00:00',

  INSERT INTO `accommodation` VALUES (`0001`, `ENSUITE`, `400`, `FOX`, `OCCUPIED`, `001`, `01-OCT-2009`, `01-OCT-2010`,);
  INSERT INTO `accommodation` VALUES (`0002`, `SINGLE`, `200`, `FOX`, `OCCUPIED`, `002`, `01-OCT-2009`, `01-OCT-2010`,);
  INSERT INTO `accommodation` VALUES (`0003`, `SINGLE`, `200`, `FOX`, `OCCUPIED`, `003`, `01-OCT-2009`, `01-OCT-2010`,);
  INSERT INTO `accommodation` VALUES (`0004`, `DISABLED`, `600`, `FOX`, `OCCUPIED`, `004`, `01-OCT-2009`, `01-OCT-2010`,);
  INSERT INTO `accommodation` VALUES (`0001`, `SINGLE`, `300`, `CUB`, `OCCUPIED`, `005`, `01-OCT-2009`, `01-OCT-2010`,);
  INSERT INTO `accommodation` VALUES (`0002`, `SINGLE`, `300`, `CUB`, `VACANT`, ``, ``, ``,);
  INSERT INTO `accommodation` VALUES (`0003`, `ENSUITE`, `500`, `CUB`, `OCCUPIED`, `006`, `01-OCT-2009`, `01-OCT-2010`,);
  INSERT INTO `accommodation` VALUES (`0004`, `SINGLE`, `300`, `CUB`, `VACANT`, ``, ``, ``,);
  INSERT INTO `accommodation` VALUES (`0001`, `ENSUITE`, `500`, `TIGER`, `OCCUPIED`, `007`, `01-OCT-2009`, `01-OCT-2010`,);
  INSERT INTO `accommodation` VALUES (`0002`, `ENSUITE`, `500`, `TIGER`, `OCCUPIED`, `008`, `01-OCT-2009`, `01-OCT-2010`,);
  INSERT INTO `accommodation` VALUES (`0003`, `ENSUITE`, `500`, `TIGER`, `VACANT`, ``, ``, ``,);
  INSERT INTO `accommodation` VALUES (`0004`, `ENSUITE`, `500`, `TIGER`, `VACANT`, ``, ``, ``,);
  INSERT INTO `accommodation` VALUES (`0001`, `SINGLE`, `200`, `LION`, `OCCUPIED`, `009`, `01-OCT-2009`, `01-OCT-2010`,);
  INSERT INTO `accommodation` VALUES (`0002`, `SINGLE`, `200`, `LION`, `OCCUPIED`, `010`, `01-OCT-2009`, `01-OCT-2010`,);
  INSERT INTO `accommodation` VALUES (`0003`, `ENSUITE`, `500`, `LION`, `VACANT`, ``, ``, ``,);
  INSERT INTO `accommodation` VALUES (`0003`, `ENSUITE`, `500`, `LION`, `VACANT`, ``, ``, ``,);


  CREATE TABLE `staff` (

  PRIMARY KEY  (`EMPLOYEE_ID`)
  UNIQUE KEY (`EMAIL`)

      `EMPLOYEE_ID` INT (11) NOT NULL AUTO_INCREAMENT,
      `SURNAME` VARCHAR (64) NOT NULL default '',
      `GENDER` INT (1) NOT NULL default 'M',
      `INSPECTS` VARCHAR (64) NOT NULL default '',
      `RECRUITED` INT (11) NOT NULL default '',
      `POSTCODE` VARCHAR (7) NOT NULL default '',      
      `DOB` datetime NOT NULL default '0000-00-00',
      `POSITION` VARCHAR (64) NOT NULL default '',
      `SALARY` INT (11) NOT NULL default '0',
      `EMAIL` VARCHAR (64) NOT NULL default '',

    ) 

  DELIMITER //
  DROP TRIGGER IF EXISTS MAX_NUM//
  CREATE TRIGGER MAX_NUM BEFORE INSERT ON STAFF
  FOR EACH ROW 

  BEGIN
  IF NEW.SALARY < 0 or NEW.SALARY > 75000 THEN
  SET NEW.AGE = NULL;
  END IF;
  END//
  DELIMITER;

INSERT INTO `staff` (SALARY) VALUES (-1);
INSERT INTO `staff` (SALARY) VALUES (75001);
INSERT INTO `staff` (SALARY) VALUES (75000);
INSERT INTO `staff` (`0010`, `RHODES`, `M`, `LION`, `2010`, `SD20 52RF`, `10-DEC-1985`, `MANAGER`, `74999`, `rhodes@abbey.ac`,);
INSERT INTO `staff` (`0010`, `HEINZE`, `F`, `CUB`, `2009`, `WC1 4RF`, `10-DEC-1985`, `SUPERVISOR`, `71999`, `heinze@abbey.ac`,);
INSERT INTO `staff` (`0010`, `BARNES`, `F`, `FOX`, `2010`, `DD4 5VB`, `10-DEC-1985`, `ADMINISTRATOR`, `34999`, `barnes@abbey.ac`,);
INSERT INTO `staff` (`0010`, `COLE`, `F`, `TIGER`, `2010`, `NT34 5TG`, `10-DEC-1985`, `CLERK`, `22999`, `cole@abbey.ac`,);
INSERT INTO `staff` (`0010`, `LUPIRE`, `M`, `LION`, `2010`, `E4 2EE`, `10-DEC-1985`, `CARE TAKER`, `14999`, `lupire@abbey.ac`,);
INSERT INTO `staff` (`0010`, `WILSHIRE`, `F`, `TIGER`, `2010`, `WE3 8CV`, `10-DEC-1985`, `SECRETARY`, `74999`, `wilshire@abbey.ac`,);
INSERT INTO `staff` (`0010`, `WALDON`, `M`, `FOX`, `2010`, `AS1 2DF`, `10-DEC-1985`, `ACCOUNTANT`, `74999`, `waldon@abbey.ac`,);
INSERT INTO `staff` (`0010`, `KNIGHT`, `F`, `LION`, `2010`, `XC23 1WA`, `10-DEC-1985`, `ADMINISTRATOR`, `34999`, `knight@abbey.ac`,);
INSERT INTO `staff` (`0010`, `GRANT`, `M`, `TIGER`, `2010`, `ED2 5GB`, `10-DEC-1985`, `SUPERVISOR`, `71999`, `grant@abbey.ac`,);
INSERT INTO `staff` (`0010`, `RAY`, `M`, `CUB`, `2010`, `SS0 9ST`, `10-DEC-1985`, `ADMINISTRATOR`, `34999`, `ray@abbey.ac`,);

最佳答案

真是一团糟。您对某些值使用了开始/结束引号,对其他值使用了反引号,并且反引号和/或引号不匹配。

INSERT INTO `students` VALUES (`01', '001', ‘GRASS’, ‘LIAM’, ‘20-JUL-1992’,‘M’,'5 BROWN LANE','SS8 4FG','lgrass@gmail.com', `07458914578', );

注意这部分:

`07458914578'

这是不匹配的。也不要使用反引号来编写字符串或值。这些用于指定列、数据库和表名称。同样在最后你有一个逗号表示另一个值,但你没有留下任何东西。它应该是 NULL''

为了安全起见,您插入的所有值都应该只是单引号:'

关于mysql - (SQL 帮助)有人可以告诉我我在哪里出错了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25273219/

相关文章:

php - 我的插入查询失败了什么?

mysql - 如何检索添加到数据库表中的行?

数据库连接 Delphi

mysql - 使用 MYSQL 中另一个现有表的值定义表模式的 SQL 脚本

php - 使用左连接子查询优化搜索查询

mysql - UPDATE值如果大于0怎么办?

java - 在查询错误中将不同的数据类型插入postgreSQL

database - 我如何手动清理最后一次针对数据库运行的飞行路线迁移

android - 为什么我不能在我的 Android 应用程序中创建 SQLite 数据库

php - 如何使用 PHP 和 MYSQL 创建饼图?