-- 如果存在则先删除 drop database if exists jzlg; -- 创建数据库 create database jzlg; -- 使用自己创建的数据库 use jzlg; -- 学生信息表 -- 如果存在则先删除 drop table if exists tb_student; -- 创建新表 create table tb_student( stu_id int primary key auto_increment, stu_name varchar(50) unique, create_date date, gender varchar(2), age int check(age>18 and age<24) )auto_increment=1; insert into tb_student values (1,'小黑','2001-01-01','男',20); insert into tb_student values (2,'小明','2002-01-01','男',19); insert into tb_student values (3,'张珊','2003-01-01','女',18); insert into tb_student values (4,'小王','2004-01-01','男',17); -- 查询 select * from tb_student; -- 学生成绩 -- 如果存在则先删除 drop table if exists tb_score; -- 创建新表 create table tb_score( score_id int primary key auto_increment, stu_id int, c decimal(4,2), s decimal(4,2), html decimal(4,2), constraint fk_stu_id foreign key (stu_id) references tb_student(stu_id) )auto_increment=1; insert into tb_score values (01,1001,80,85,90); insert into tb_score values (02,1002,50,40,60); insert into tb_score values (03,1003,45,60,25); insert into tb_score values (04,1004,75,65,55); -- 查询 select * from tb_score;这串代码哪里错了
时间: 2024-02-27 10:58:27 浏览: 54
这串代码没有明显的语法错误,但是其中的数据插入存在问题。在插入 tb_score 表的数据时,使用的是 stu_id 为 1001-1004,而在之前创建的 tb_student 表中,没有这些数据。应该将 tb_score 表的数据中的 stu_id 修改为 tb_student 表中已经存在的数据的 stu_id。另外,在插入 tb_score 表的数据时,score_id 值应该为整数类型,不应该以 0 开头。正确的插入数据语句应该为:
```
insert into tb_score values (1,1,80,85,90);
insert into tb_score values (2,2,50,40,60);
insert into tb_score values (3,3,45,60,25);
insert into tb_score values (4,4,75,65,55);
```
相关问题
-- 如果存在则先删除 drop database if exists jzlg; -- 创建数据库 create database jzlg; -- 使用自己创建的数据库 use jzlg; -- 学生信息表 -- 如果存在则先删除 drop table if exists tb_student; -- 创建新表 create table tb_student( stu_id int primary key auto_increment, stu_name varchar(50) unique, create_date date, gender varchar(2), age int check(age>18 and age<24) )auto_increment=1; -- 查询 select * from tb_student; -- 学生成绩 -- 如果存在则先删除 drop table if exists tb_score; -- 创建新表 create table tb_score( score_id int primary key auto_increment, stu_id int, c decimal(4,2), s decimal(4,2), html decimal(4,2), constraint fk_stu_id foreign key (stu_id) references tb_student(stu_id) )auto_increment=1; -- 查询 select * from tb_score; 在这两张表里面添加数据每个表添加三条数据
以下是向两张表中添加三条数据的 SQL 语句:
向 tb_student 表中添加三条数据:
```
insert into tb_student(stu_name, create_date, gender, age) values('小明', '2002-01-01', '男', 19);
insert into tb_student(stu_name, create_date, gender, age) values('张三', '2003-02-02', '男', 20);
insert into tb_student(stu_name, create_date, gender, age) values('李四', '2004-03-03', '女', 21);
```
向 tb_score 表中添加三条数据:
```
insert into tb_score(stu_id, c, s, html) values(1, 80, 85, 90);
insert into tb_score(stu_id, c, s, html) values(2, 50, 40, 60);
insert into tb_score(stu_id, c, s, html) values(3, 45, 60, 25);
```
注意:在向 tb_score 表中插入数据时,需要保证 tb_student 表中已经存在对应的 stu_id。
我应该如何操作spring.datasource.sql.init.schema-locations中执行DROP DATABASE IF EXISTS和CREATE DATABASE IF NOT EXISTS这些语句
如果您需要在`spring.datasource.sql.init.schema-locations`中执行`DROP DATABASE IF EXISTS`和`CREATE DATABASE IF NOT EXISTS`这些语句来创建数据库,可以按照以下步骤操作:
1. 在您的SQL脚本中添加`DROP DATABASE IF EXISTS`和`CREATE DATABASE IF NOT EXISTS`语句,例如:
```sql
DROP DATABASE IF EXISTS `spring_batch`;
CREATE DATABASE IF NOT EXISTS `spring_batch` CHARACTER SET UTF8;
USE `spring_batch`;
```
2. 在application.properties或application.yml中配置数据库访问凭据和权限,例如:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
```
3. 在application.properties或application.yml中配置`spring.datasource.initialization-mode=always`,以启用SQL初始化脚本的自动执行,例如:
```properties
spring.datasource.initialization-mode=always
```
4. 将包含SQL脚本的文件放置在`src/main/resources`目录下,并在`spring.datasource.sql.init.schema-locations`中指定该文件的路径,例如:
```properties
spring.datasource.sql.init.schema-locations=classpath:db/schema.sql
```
5. 启动应用程序,SQL脚本将在应用程序启动时自动执行,数据库将被创建或更新。
需要注意的是,在实际生产环境中,不建议在SQL脚本中使用`DROP DATABASE IF EXISTS`和`CREATE DATABASE IF NOT EXISTS`语句,因为这可能会导致数据丢失或安全问题。在生产环境中,最好由DBA或系统管理员手动创建和维护数据库。
阅读全文