DDL和DML
1.创建表
char 和 varchar 如何选择?
char 适用于数长度不会发生改变的时候,是定长的,例如:性别,生日
varchar 当一个字段数据长度不确定,例如:简介、姓名、等都是采用varchar
char是直接开辟一定长度的空间,varchar是根据存储数据的长度动态的开辟空间!
测试案例
1 2 3 4 5 6 | #创建表 CREATE TABLE user ( id INT (10), username VARCHAR (30), PASSWORD VARCHAR (30) #最后一行不需要, ); |
2.删除表
1 2 3 | drop table 表名;(通用) drop table 表名 if exists 表名; //Oracle不支持这种写法。 |
使用drop删除表,就像是我们把表中的数据擦干净,但是表的结构还在,可以通过rollback回滚过来数据!
我们如果需要删除大表的话,就需要truncate 来删除,会清空所有数据且执行速度很快,并且永久删除,数据不可恢复!
1 | truncate table name |
删除表常用:
1 | drop table if exist 表名(如果存在某个表删除该表)。 |
3.修改表结构
用工具:哈哈!设计表选项
(因为在实际开发中表设计好以后,对表结构进行修改是很少的。并且修改表中结构的语句并不会写在java语句当中。)
4.insert:表中插入数据
语法:insert into 表名(字段1,字段2,字段3…)values(value1 , value2 , value3) ;
1 | INSERT INTO dept(deptno,dname,loc) VALUES (50, 'Java开发' , 'ZHENGZHOU' ); |
需要注意的地方:当一条insert语句执行成功之后,表格必然会多一行记录,及时多的一行记录当中某些字段为null,后期也没办法再通过insert插入数据了,只能通过update更新 !
**一次插入多行数据:**insert into 表名(字段1,字段2,字段3)values(value1,value2,value3),(value1,value2,value3)
1 | INSERT INTO dept(deptno,dname,loc) VALUES (70, '大数据开发' , 'ZHENGZHOU' ),(60, '运维部' , 'KAIFENG' ); |
5.表的复制
了解一下即可!
1 | CREATE TABLE mytable AS SELECT * FROM dept #将将查询结果当作表创建出来。 |
将查询出来的结果插入道一张表中
1 | INSERT INTO mytable SELECT * FROM dept |
6.update:修改表中数据
语法格式:update 表名 set 字段名1 = 值1 ,字段名2 = 值2 …where 条件 ;
注意:没有条件整张表的数据全部更新 ;
1 | UPDATE dept SET dname = '测试开发' ,loc = 'HUEL' WHERE DEPTNO = 10 ; #就1个 set ! |
7.delete删除表中数据
语法格式:delete from 表名 where 条件 ;
注意:没有条件表中数据全部清空!
1 2 3 | DELETE FROM dept WHERE deptno = 70 #删除部门号为70的数据 DELETE FROM dept #清空表中数据 |
8.增删改查有一个术语:CRUD操作
Create(增加)
Retrieve(查询)
Update(修改)
Delete(删除)
本文来自博客园,作者:腹白,转载请注明原文链接:https://www.cnblogs.com/wyh518/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?