sql语句,如果表中存在张三则更新分数,如果没有则插入
时间: 2023-12-23 09:54:44 浏览: 32
假设表名为student,字段为name和score,可以使用以下SQL语句:
```
IF EXISTS (SELECT * FROM student WHERE name = '张三')
UPDATE student SET score = 90 WHERE name = '张三';
ELSE
INSERT INTO student (name, score) VALUES ('张三', 90);
```
这个语句首先判断表中是否存在名为张三的记录,如果存在,则更新该记录的分数为90;如果不存在,则插入一条记录,姓名为张三,分数为90。
相关问题
写添加多条学生记录的sql语句,字段有id,姓名,年龄,性别,分数,地址
好的,以下是向 `student` 表中添加多条学生记录的 SQL 语句:
```
INSERT INTO student (name, age, gender, score, address)
VALUES
('张三', 18, '男', 90, '北京市海淀区'),
('李四', 19, '女', 85, '北京市朝阳区'),
('王五', 20, '男', 92, '北京市东城区'),
('赵六', 21, '女', 88, '北京市西城区');
```
这段 SQL 语句会向 `student` 表中插入四条记录,每条记录包含了 `name`、`age`、`gender`、`score` 和 `address` 这五个字段的值。其中,`id` 字段不需要手动指定,因为在创建表时已经设置了该字段是主键自动递增的。
设选课数据库有:学生表 S(sno , sname , sgender, sage),分别表示学号、姓名、性别、年龄;课程表 C(cno , cname , ccredit ),分别表示课程号、课程名、学分;选课表 SC(sno , cno , score ),分别表示学号、课程号、分数;加下划线为主码;SC 中分数介于 0-100,S 中性别只能取男或者女,年龄大于 15 小于 40。请完成: 6、(4 分)用 SQL 将学号为 200103305 同学所有选修课程的分数加 10 分。此语句能否执行成功?若能,给出执行后结果;不能的话,说明理由。 7、(4 分)用 SQL 将 SC 表插入权限授予用户 Jack,并收回。(用户 Jack 已经存在) 8、(2 分)用 SQL 插入一个学生:学号 200102310,姓名张三,年龄 18,性别男。
6、可以执行成功,SQL 语句如下:
```
UPDATE SC
SET score = score + 10
WHERE sno = '200103305';
```
执行后,学号为 200103305 的同学所有选修课程的分数都加了 10 分。
7、授权 SQL 语句如下:
```
GRANT INSERT ON SC TO Jack;
```
收回权限的 SQL 语句如下:
```
REVOKE INSERT ON SC FROM Jack;
```
8、插入学生的 SQL 语句如下:
```
INSERT INTO S (sno, sname, sgender, sage)
VALUES ('200102310', '张三', '男', 18);
```