CREATE TABLE emp ( id INT PRIMARY KEY, --员工姓名,非空且唯一 ename VARCHAR(50) NOT NULL UNIQUE, --员工姓名,非空并唯一 joindate DATE NOT NULL, --入职日期,非空 salary DOUBLE(7,2) NOT NULL, --工资,非空 bonus DOUBLE(7,2) DEFAULT 0 --奖金,如果没有记为零 );错哪了
时间: 2023-12-12 16:03:11 浏览: 95
在上述 SQL 语句中,DOUBLE 数据类型应该写成 DECIMAL,因为 DOUBLE 类型有精度问题。同时,如果你想要设置 bonus 的默认值为 0,应该将 DEFAULT 0 改为 DEFAULT '0'。
因此,正确的 SQL 语句如下:
```
CREATE TABLE emp (
id INT PRIMARY KEY, --员工 ID,非空且唯一
ename VARCHAR(50) NOT NULL UNIQUE, --员工姓名,非空并唯一
joindate DATE NOT NULL, --入职日期,非空
salary DECIMAL(7,2) NOT NULL, --工资,非空
bonus DECIMAL(7,2) DEFAULT '0' --奖金,如果没有记为零
);
```
相关问题
CREATE TABLE emp ( id INT PRIMARY KEY,--员工姓名,非空且唯一 ename VARCHAR(50) NOT NULL UNIQUE, --员工姓名,非空并唯一 joindate DATE NOT NULL,--入职日期,非空 salary DOUBLE(7,2) NOT NULL,--工资,非空 bonus DOUBLE(7,2) DEFAULT 0--奖金,如果没有记为零 ) > 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--员工姓名,非空且唯一 ename VARCHAR(50) NOT NULL UNIQUE, --员工姓' at line 2怎么解决
在创建表 `emp` 的语句中,注释应该使用 `/* */` 或 `--`,而不是 `>`。修改语句如下:
```
CREATE TABLE emp (
id INT PRIMARY KEY, --员工姓名,非空且唯一
ename VARCHAR(50) NOT NULL UNIQUE, --员工姓名,非空并唯一
joindate DATE NOT NULL, --入职日期,非空
salary DOUBLE(7,2) NOT NULL, --工资,非空
bonus DOUBLE(7,2) DEFAULT 0 --奖金,如果没有记为零
);
```
这样就可以成功创建表 `emp` 了。
1、以自己的姓名(拼音)创建一个mysql数据库。(10分) 2、在数据库中创建如下两个表(要求设置表之间的关系)(40分) 员工表:EMP(ENO,ENAME,SALARY,DNO),其中各属性的含义依次为职工 号、姓名、工资和所在部门号 部门表:DEPT(DNO,DNAME,MANAGER),其中各属性含义依次为部门号、 部门名称、部门经理的职工号。 二:写出SQL语句: 1、列出各部门中工资不低于600元的职工的平均工资。(10分) 2、查询001号职工所在部门名称。(10分) 3、将“销售部”的那些工资数额低于600的职工的工资上调10%。(10分) 4、在EMP表中增加“EID(员工身份证)”字段,数据类型varchar(18),不 可空,并将其设定为UNIQUE约束。(10分) 5、创建一存储过程,通过输入参数员工姓名(如“张三"),筛选出该员工 的基本信息,对不存在此员工姓名的输入值,必须作一检测,打印信息“不存在 此员工”。等讲了存储过程再做(10分)
好的,以下是根据您的要求创建MySQL数据库和表,并回答您提出的SQL语句问题。
1. 创建MySQL数据库
创建MySQL数据库的SQL语句如下:
```
CREATE DATABASE your_name;
```
请将"your_name"替换为您的拼音姓名。
2. 创建EMP表和DEPT表
创建EMP表和DEPT表的SQL语句如下:
```
CREATE TABLE EMP (
ENO INT PRIMARY KEY,
ENAME VARCHAR(20) NOT NULL,
SALARY DECIMAL(8,2) NOT NULL,
DNO INT,
FOREIGN KEY (DNO) REFERENCES DEPT(DNO)
);
CREATE TABLE DEPT (
DNO INT PRIMARY KEY,
DNAME VARCHAR(20) NOT NULL,
MANAGER INT,
FOREIGN KEY (MANAGER) REFERENCES EMP(ENO)
);
```
3. SQL语句问题
(1) 列出各部门中工资不低于600元的职工的平均工资。
```
SELECT AVG(SALARY) FROM EMP
WHERE SALARY >= 600
GROUP BY DNO;
```
(2) 查询001号职工所在部门名称。
```
SELECT DNAME FROM DEPT
WHERE DNO = (SELECT DNO FROM EMP WHERE ENO = 001);
```
(3) 将“销售部”的那些工资数额低于600的职工的工资上调10%。
```
UPDATE EMP SET SALARY = SALARY * 1.1
WHERE DNO = (SELECT DNO FROM DEPT WHERE DNAME = '销售部')
AND SALARY < 600;
```
(4) 在EMP表中增加“EID(员工身份证)”字段,数据类型varchar(18),不可空,并将其设定为UNIQUE约束。
```
ALTER TABLE EMP ADD EID VARCHAR(18) NOT NULL UNIQUE;
```
(5) 创建一存储过程,通过输入参数员工姓名(如“张三"),筛选出该员工的基本信息,对不存在此员工姓名的输入值,必须作一检测,打印信息“不存在此员工”。等讲了存储过程再做。
阅读全文