jjzjj

DDL和DML

wyh518 2023-03-28 原文

1.创建表

char 和 varchar 如何选择?

char 适用于数长度不会发生改变的时候,是定长的,例如:性别,生日
varchar 当一个字段数据长度不确定,例如:简介、姓名、等都是采用varchar
char是直接开辟一定长度的空间,varchar是根据存储数据的长度动态的开辟空间!

测试案例

#创建表
CREATE TABLE user(
   id  INT(10),
   username VARCHAR(30),
   PASSWORD VARCHAR(30)        #最后一行不需要,
);

2.删除表

drop table 表名;(通用)

drop table 表名 if exists 表名;	//Oracle不支持这种写法。

使用drop删除表,就像是我们把表中的数据擦干净,但是表的结构还在,可以通过rollback回滚过来数据!

我们如果需要删除大表的话,就需要truncate 来删除,会清空所有数据且执行速度很快,并且永久删除,数据不可恢复!

truncate table name 

删除表常用:

drop table if exist 表名(如果存在某个表删除该表)。

3.修改表结构
用工具:哈哈!设计表选项

 

 

 (因为在实际开发中表设计好以后,对表结构进行修改是很少的。并且修改表中结构的语句并不会写在java语句当中。)

4.insert:表中插入数据
语法:insert into 表名(字段1,字段2,字段3…)values(value1 , value2 , value3) ;

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)

INSERT INTO dept(deptno,dname,loc)VALUES(70,'大数据开发','ZHENGZHOU'),(60,'运维部','KAIFENG');

5.表的复制
了解一下即可!

CREATE TABLE mytable AS SELECT * FROM dept      #将将查询结果当作表创建出来。

将查询出来的结果插入道一张表中

INSERT INTO mytable SELECT * FROM dept

6.update:修改表中数据
语法格式:update 表名 set 字段名1 = 值1 ,字段名2 = 值2 …where 条件 ;

注意:没有条件整张表的数据全部更新 ;

UPDATE dept SET dname = '测试开发' ,loc = 'HUEL' WHERE DEPTNO = 10 ;   #就1个set!

7.delete删除表中数据
语法格式:delete from 表名 where 条件 ;

注意:没有条件表中数据全部清空!

DELETE FROM dept WHERE deptno = 70   #删除部门号为70的数据

DELETE FROM dept  #清空表中数据

 

8.增删改查有一个术语:CRUD操作
Create(增加)

Retrieve(查询)

Update(修改)

Delete(删除)

有关DDL和DML的更多相关文章

  1. 从0开始快速使用StarUml画ER图,生成SQL建表代码,附解决DDL常见报错方法 - 2

    使用StarUml画ER图,生成SQL建表代码,解决常见报错遇到稍微复杂一些的业务,先整理需求在下手会使得开发过程中头发少掉一些,尤其是团队合作的项目效果尤为明显,在整理完业务需求后,从数据库开始下手能让后端的头发掉少一些.找个好的软件能在整理数据库的时候再少掉点头发,并且减轻简单重复的打字工作.如果图画好了,数据库建表的语句能自动打出来就好了.诶,还真有软件可以做到,而且还容易使用,这实属是懒人福音,头发的救星啊.快速开始在这里假设您了解什么是ER图以及一些相关的知识,本文将会在两分钟内结合图片介绍StarUml画ER图的方法.点击链接下载安装StarUml.有点可惜的是这个软件是收费的,而

  2. sql-server - 禁止重复列的 XML DML (Xpath) 查询。它应该在插入列之前测试它是否存在 - 2

    updateserializedvaluesetvalue.modify('insertStronglyTypedImmediatefalsetruetruetruetruefalseDeskLabel1falsetrueDeskl0Auto1StringLostFocusfalseaslastinto(/GridDataTableProperties/VisibleColumns)[1]')whereTokenlike'%gridsettings%'当我使用此查询将节点添加到现有列时。每次运行时都会添加一列。我想要实现的是它应该检查是否存在具有映射名称的特定节点,如果存在则不添加该节

  3. sql - 是否有将数据库模式(SQL DDL)转储为 XML 的工具? - 2

    我希望从SQL(Postgres)DDL自动生成数据库模式的XML版本。是否有任何工具可以帮助从DDL转换为XML?xml2ddl声称这样做,但它无法连接并且自2005年以来似乎不受支持。 最佳答案 您可以使用内置的table_to_xmlschema等;见http://www.postgresql.org/docs/current/static/functions-xml.html#FUNCTIONS-XML-MAPPING. 关于sql-是否有将数据库模式(SQLDDL)转储为XML

  4. sql-server - 动态替换 XML DML 中节点的值 - 2

    我现在正在努力解决这个问题:如何替换文本等于某个变量值的非类型化XML列中的节点值?可能吗?我的XML:ManualInsertManualInsert2ManualInsert4ManualInsert8我的尝试:DECLARE@OldValueVarchar(255)='ManualInsert'DECLARE@NewValueVarchar(255)='ReplacedValue'UPDATELabelsSETAttributes.modify('replacevalueof(/attrs/attr/text())[1]withif((/attrs/attr/text()=sql

  5. c# - 字符 Å Ä Ö 没有显示在我的 DDL 中,我如何告诉 restclient 使用特定的字符集? - 2

    在我开始之前这里是问题所在。应该是这样的:BjörnNilsson,而不是它显示奇怪的特殊字符,所有具有字符Å、Ä和Ö的值都变成这样。我用具有所有值的XML格式的API值填充我的DDL,我们还为此使用了Linq2Rest。这个过程是这样的privatereadonlyRestContextrestContext;publicConsultantContext(Uriuri,Formatformat){restContext=newRestContext(GetRestClient(uri,format),GetSerializerFactory(format));}publicenum

  6. xml - TSQL 2005,XML DML - 一次更新两个值? - 2

    有没有办法将这两个替换值与1个更新语句结合起来?UPDATEdbo.MyTableSETMyXmlColumn.modify('replacevalueof(/node/@att1)[1]with"1"')WHEREid=1UPDATEdbo.MyTableSETMyXmlColumn.modify('replacevalueof(/node/@att2)[1]with"2"')WHEREid=1http://msdn.microsoft.com/en-US/library/ms190675(v=SQL.90).aspx 最佳答案

  7. HIVE表 DML 操作——第3关:将 select 查询结果插入 hive 表中 - 2

    第3关:将select查询结果插入hive表中任务描述本关任务:根据编程要求将select查询结果插入hive表中。相关知识为了完成本关任务,你需要掌握:1.单表插入,2.多表插入。通过使用查询子句从其他表中获得查询结果,然后使用INSERT命令把数据插入到Hive新表中(Hive会根据MapReduce中的reduce任务个数在HDFS上的hive新表目录下创建相应的数据文件000000_0,若有多个reduce任务,依次以000001_0、000002_0、……类推)。该操作包括表单插入(一次性向一个hive表插入数据)和多表插入(一次性向多个hive表插入数据)。INSERT命令可以操作

  8. MySQL基础篇 | union、limit、DDL、DML、约束 - 2

    ✅作者简介:大家好我是@每天都要敲代码,希望一起努力,一起进步!📃个人主页:@每天都要敲代码的个人主页🔥系列专栏:MySQL专栏目录一:union的使用二:limit及通用分页SQL(重要)三:表结构(DDL)1.创建表(creat)2.修改表(alter)3.删除表(drop)四:处理表中数据(DML)1.插入表中的数据insert2. 修改表中的数据update3. 删除表中的数据delete&truncate五:约束1. 非空约束notnull2.唯一约束unique3. 主键约束primarykey 4.  外键约束  foreignkey一:union的使用union:可以将查询结果

  9. php - 如何修复 PHP 警告 : Unable to load dynamic library: php_intl. ddl - 2

    这个问题在这里已经有了答案:PHPWarning:PHPStartup:Unabletoloaddynamiclibrary(20个答案)关闭6年前。请问我该如何解决这个问题?我在OSX10.11.3上运行php5.6PHPWarning:PHPStartup:Unabletoloaddynamiclibrary'/usr/lib/php/extensions/no-debug-non-zts-20121212/php_intl.dll'-dlopen(/usr/lib/php/extensions/no-debug-non-zts-20121212/php_intl.dll,9):i

  10. php - PHP 为 SQL DDL 语句清理用户输入的方法是什么? - 2

    我需要从PHP更新用户密码,这是通过ALTERUSER语句完成的。我不能使用准备好的语句,因为它们不支持DDL命令。可以轻松清理用户名字段,确保它与字母数字正则表达式匹配,但我想不出一种安全的方式来清理密码。我应该怎么做?我知道情况不理想,但我不在这里做主。我只是尽量保证它的安全。编辑:这是我正在尝试运行的示例ALTERUSERmyusernameIDENTIFIEDBYmynewpassword1这在SQLDeveloper中成功运行,我可以通过串联使其工作,但我希望避免这种情况。 最佳答案 将输入传递给PL/SQLblock绑定

随机推荐