栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数据库的CRUD语句(create eadupdatedelete)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据库的CRUD语句(create
eadupdatedelete)

insert 语句

INSERT INTO table_name(column [, column…]) VALUES(value [, value…])
insert 语句细节说明:

  1. 插入的数据应与字段的数据类型相同。如:将’abc’插入int类型会报错
  2. 数据的长度应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中
  3. 在values中列出的数据位置必须与被加入的列的排列位置相对应
  4. 字符和日期型数据应包含在单引号中
  5. 列可以插入空值(前提是该字段允许为空)
  6. insert into table_name(列名) values(),(),()形式插入多条记录
  7. 如果是给表中的所有字段添加数据,可以不写前面的字段名称
  8. 默认值的使用,当不给某个字段值时,,如果有默认值就会添加,否则报错,默认值在创建表时确定
#练习insert语句
#创建一张商品表goods(id int,goods_name varchar(10),price double)
#添加两条记录
USE db_02;
CREATE TABLE goods(id INT,goods_name VARCHAR(10),price DOUBLE);
INSERT INTO goods(id,goods_name,price) VALUES(1,'牛奶',10.0);
SELECt * FROM goods;
#插入空值
INSERT INTO goods(id,goods_name,price) values(2,'面包',null);
SELECt * FROM goods;
#插入多条值
INSERT INTO goods(id,goods_name,price) VALUES(3,'巧克力',30),(4,'辣条',5);
SELECt * FROM goods;
#插入所有字段,可以不写前面的字段名
INSERT INTO goods VALUES(5,'可乐',3);
SELECt * FROM goods;
#如果某个列,没有指定not null,那么当添加数据时,如果没有给定值,则默认为null
INSERT INTO goods(id,goods_name) VALUES(6,'糖');
SELECt * FROM goods;
update语句

UPDATE table_name SET column_name1=expr [, column_name2=expr2…] (WHERe where_definition)
使用细节:

  1. UPDATE语法可以用新值更新原有表行中的各列
  2. SET子句指示要修改哪些列和要给予哪些值
  3. WHERe 子句指定应更新哪些行。如没有 WHERe 子句,则更新所有行
  4. 如果需要修改多字段,可以通过 SET 字段1=值1,字段2=值2…
#演示update语句
#要求:修改db_02中employee表的记录
#1.将所有员工薪水修改为5000(如果没有带where子句,则表示修改所有员工)
USE db_02;
UPDATE employee set salary=5000;
#2.将姓名为 jack 的员工薪水修改为3000
UPDATE employee set salary=3000 WHERe user_name='jack';
#3.将tom薪水在原有基础上增加1000
UPDATE employee SET salary=salary+1000 WHERe user_name='tom';
#4.修改多列
UPDATE employee set salary=8000,job='售货员' where user_name='smith';
SELECT * from employee;
delete语句

DELETE FROM table_name WHERe where_definition
使用细节:

  1. 如果不使用where子句,将删除表中所有数据
  2. delete语句不能删除某一列的值(可使用update设为null或’’)
  3. 使用delete语句仅删除记录,不删除表本身。如果要删除表,使用drop table语句。drop table 表名
#delete语句演示
#删除employee表中名为'jack'的记录
USE db_02;
DELETE from employee where user_name='jack';
SELECt * FROM employee;
#删除表中所有记录
DELETe FROM employee;
SELECt * FROM employee;
#DELETe 语句不能删除某一列的值(可使用update设为null或'')
UPDATE employee SET id=NULL;
SELECT * FROM employee;
#要删除这个表
DROp TABLE employee;
SELECT * FROM employee;
select语句

SELECT [DISTINCT] * | {column1,column2…} FROM table_name;
注意事项:

  1. SELECt 指定查询哪些列的数据
  2. column指定列名
    • 代表查询所有列
  3. FROM指定查询哪张表
  4. DISTINCT可选,指显示结果时,是否去掉重复数据
#select语句
USE db_02;
CREATE TABLE student(
id INT not null default 1,
NAME VARCHAR(20) not null default '',
chinese FLOAT NOT NULL DEFAULT 0.0,
english FLOAT not NULL default 0.0,
math FLOAT not null DEFAULT 0.0);

INSERT INTO student(id,NAME,chinese,english,math) VALUES(1,'方文俊',89,78,90);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(2,'张飞',67,97,56);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(3,'宋江',82,86,93);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(4,'关羽',56,68,82);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(5,'赵云',83,74,90);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(6,'欧阳峰',25,1,96);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(8,'黄蓉',75,34,94);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(8,'方蓉',55,64,74);

SELECT * FROM student;

#查询表中所有学生信息
SELECt * FROM student;
#查询表中所有学生的姓名和对应的英语成绩
SELECt `NAME`,english FROM student;
#过滤表中重复数据 DISTINCT
SELECt DISTINCT NAME,english from student;
#要查询的记录,每个字段都相同,才会去重
SELECt DISTINCT * from student;
  • 使用表达式对查询的列进行运算
    SELECt * |{column1|expr,column2|expr…} FROM table_name
  • 在SELECt语句中可使用as语句
    SELECT column as 别名 FROM 表名;
  • 在where子句中经常使用的运算符
    or、and、in、between…and…
#SELECt 语句的使用
use db_02;
#统计每个学生的总分
SELECT NAME,(chinese+english+math) from student;
#统计所有学生加10分的成绩
SELECt NAME,(chinese+english+math+10) from student;
#使用别名表示学生总分
SELECt NAME,(chinese+english+math+10) AS total_score from student;
#SELECt 语句
USE db_02;
#查询姓名为赵云的学生成绩
SELECT * FROM student where NAME='赵云';
#查询英语成绩大于90分的同学
SELECt * FROM student WHERe english>90;
#查询总分大于210分的所有同学
SELECt * FROM student WHERe (chinese+math+english)>210;
#查询math大于60,并且english大于80的学生成绩
SELECt * FROM student WHERe math>60 and english>80;
#查询英语成绩大于语文成绩的同学
SELECt * FROM student WHERe english>chinese;
#查询总分大于210分并且数学成绩大于于语文成绩的姓方的学生
SELECt * FROM student WHERe (chinese+math+english)>210 and 
math>chinese and 
NAME LIKE '方%';
#查询英语分数在80-90之间的同学(区间可用between...and...)
select * from student where english>80 and english<90;
SELECt * FROM student WHERe english BETWEEN 80 and 90;
#查询数学分数为82、90、93的学生(可用in)
select * from student where math=82 or math=90 or math=93;
select * from student where math in(82,90,93);
#查询所有姓宋的学生成绩
SELECt * FROM student where NAME like '宋%';
#查询数学>80,语文>80的学生
select * from student where math>80 and chinese>80;
使用order by子句排序查询结果

SELECt column1,column2… FROM table order by column asc(升序)|desc(降序)

  1. order by 指定排序的列,既可以是表中的列名,也可以是select语句后指定的列名
  2. asc升序(默认)、desc降序
  3. order by子句应位于select语句的结尾
#order by 练习
use db_02;
#1.对数学成绩排序后输出(升序)
SELECT NAME,math FROM student ORDER BY math asc;
#2.对总分按从高到低的顺序输出
SELECt NAME,chinese+math+english total FROM student ORDER BY total desc;
#3.对姓方的学生成绩排序输出(升序)
SELECt name,chinese+math+english total FROM student WHERe NAME LIKE '方%' ORDER BY total asc;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/319046.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号