mysql ddl dml 导出_MySQL:DDL和DML语句,弄明白了吗?

9fdacffccbba093891c9d3016afd6fec.png

语句分类

DDL(Data Definition Languages)语句:即数据库定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等,常用的语句关键字有:CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME。增删改表的结构

DML(Data Manipulation Language)语句:即数据操纵语句,用来查询、添加、更新、删除等,常用的语句关键字有:SELECT,INSERT,UPDATE,DELETE,MERGE,CALL,EXPLAIN PLAN,LOCK TABLE,包括通用性的增删改查。增删改表的数据

DCL(Data Control Language)语句:即数据控制语句,用于授权/撤销数据库及其字段的权限(DCL is short name of Data Control Language which includes commands such as GRANT and mostly concerned with rights, permissions and other controls of the database system.)。常用的语句关键字有:GRANT,REVOKE。

TCL(Transaction Control Language)语句:事务控制语句,用于控制事务,常用的语句关键字有:COMMIT,ROLLBACK,SAVEPOINT,SET TRANSACTION。

DDL语句

增删改表的结构,代表字段:create,alter,drop

1.创建表

创建表CREATE

演示:创建员工表

CREATE TABLE employee(

id int(4),

name VARCHAR(20),

gender CHAR(1),

birth DATE,

salary float(2),

job VARCHAR(30),

deptno int(2)

);

设置默认值 DEFAULT

可以通过DEFAULT子句给列指定默认值

CREATE TABLE emptest(

id int(4),

name VARCHAR(20),

gender CHAR(1) DEFAULT 'M',

birth DATE

);

设置列值非空NOT NULL

默认情况下,任何列都允许有空值。非空(NOT NULL)是一种条件约束,用于确保字段值不为空,当某个字段被设置了非空约束条件,这个字段中必须存在有效值,即:当执行插入数据操作时,必须提供这个列的数据;当执行更新操作时,不能给这个列的值设置为NULL。Ø NOT NULL:非空

CREATE TABLE emptest(

id int(4) ,

name VARCHAR20) NOT NULL,

gender CHAR(1) DEFAULT 'M',

birth DATE

);

2.复制表

复制表中所有数据

CREATE TABLE emptest1 as select * from emptest;

复制表中部分数据

CREATE TABLE emptest2 as select id,name from emptest;

3.修改表

修改表名RENAME

演示:修改表名

alter table emptest rename to/as testemp; #修改表名

create table testemp1 like emptest; #创建表结构.这样的建表方式,不仅仅是表的结构,连带着索引也会同时创建.

增加列ALTER ADD

演示:在testemp表下面增加hiredate列,并将默认值设置为当前时间增加列,列只能增加在最后,不能插入现有的列中。

ALTER TABLE testemp ADD(hiredate DATE DEFAULT sysdate);

删除列 ALTER DROP

删除列,删除字段需要从每行中删掉该字段占据的长度和数据,并释放在数据块中占据的空间,如果表记录比较大,删除字段可能需要比较长的时间。

演示:删除testemp表下的hiredate

ALTER TABLE testemp DROP (hiredate);

修改列 ALTER MODIFY

修改列,使用MODIFY可以改变表中列的数据类型、长度和默认值,注意这种修改仅对以后插入的数据有效。另外如果表中已经有数据的情况下,把长度由大改小,有可能不成功,比如原来类型是VARCHAR2(100),其中已经存放了100字节长度的数据,如果改为80字节,则不会修改成功。

演示:修改testemp表中name的长度为30

ALTER TABLE testemp MODIFY(name VARCHAR(30));

4.查看表的数据结构DESC

DESC employee;

5 删除表DROP

DROP TABLE emptest;

DROP TABLE if exist emptest;

DML语句

用于增删改表中数据,DML是伴随TCL事务控制的。代表字段:insert,delete, update

增加记录INSERT

INSERT语句用来给数据表增加记录,每次增加一条记录。所有的DML操作,需要再执行事务提交语句COMMIT才算真正确认了此操作。

语法: insert into tablename(columnname1,columnname2,columnname3,c...) values(value1,value2,value3,....);

字段和值必须一一对应,个数必须相同,数据类型必须一致

演示:想testemp中插入一条记录

INSERT INTO testemp (id,name,gender) VALUES (1,'张三','M');

COMMIT;

插入数据时忽略字段则是全列插入,顺序不能错误,如下:

INSERT INTO testemp VALUES (10,'李四','F',sysdate);

COMMIT;

注意:如何插入中文数据
使用DOS命令窗口不能直接插入中文,因为DOS窗口是GBK的编码方式,但是数据库表只接受UTF-8
因此可以使用图形化界面工具插入数据,在DOS窗口中查询的时候出现乱码,
可以修改查询结果集的显示编码方式。
mysql> set character_set_results ='GBK';

更新表记录UPDATE

更新表中的记录,需要配合WHERE子句使用,否则全表的数据都会被更新。

语法: update tablename set 字段名=字段值,字段名=字段值,字段名=字段值 where 条件

演示:更新testemp表中张三的ID为2

UPDATE testemp SET id=2 WHERE name='张三';

COMMIT;

同时修改两个类型:

UPDATE testemp SET id=5,name='王五' WHERE name='李四';

COMMIT;

删除表记录DELETE

删除表中的记录,和UPDATE一样,需要配合WHERE子句使用,不然会将全表数据删除。

语法: delete from tableame where 条件

演示:将testemp表中id为2的记录删除

DELETE FROM testemp WHERE id=2;

清空表:

DELETE FROM testemp;

67062f113eed8bde8b55dca0627f59a7.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

敏捷水手——单体法到微服务之旅

\本文要点\\探究持续四年多的渐进式改革是什么样子;\\t探索为什么在变革软件和组织设计时要遵循康威定律;\\t看看如何将领导力应用到不同的团队、领域和层级;\\t举例说明变革管理如何依赖于理念和一贯的长远目标;\\t了解从职能型团…

SQLCMD的介绍

SQLCMD的介绍 原文:SQLCMD的介绍文章转载自:http://blog.sina.com.cn/s/blog_3eec0ced0100mhm2.html最近经常用到超过80M *.sql文件的导入问题。上网找了一下,发现超过80M的文件是不能在查询分析器中执行的。找了些解决方案,个人感觉最简单的…

Windows下用命令行导出导入MySQL数据库

方法1:添加“系统环境变量”。我的电脑>属性>高级>环境变量,在“系统变量”栏目下找到 path 双击编辑。先添加;(分号),再添加MySQL安装目录下bin文件夹(包含m…

python模拟鼠标拖动滑块_如何通过拖动滑块来控制Kivy滚动视图?

是的,你可以这样做:在ScrollView中有一个scroll_类型属性,因此通过设置它,您可以实现您想要的功能。在如果设置scroll_type[bars],则可能需要更改bar_width属性,因为它的默认值为2,而且它太小&a…

怎样下载C/C++的免费、开源且跨平台IDE——Code::Blocks

进入Code::Blocks的官网,官网地址为:http://www.codeblocks.org/home。进入后如下图所示: 点击“Home”菜单,跳转到IDE的下载界面: 有几种模式可供选择,我选择的第一种,Download the binary rel…

网站吞吐量

http://www.blogjava.net/neverend/archive/2011/01/25/343514.html转载于:https://www.cnblogs.com/sevensole7/archive/2013/06/05/3118966.html

外链引入css有哪些方式_HTML+CSS基础(三) CSS的引入方式和CSS选择器

一、CSS概念:什么是CSS,CSS说白了就是给页面添加样式,让整个页面变的好看起来的一种东西,用来定义网页外观,如字体、背景、颜色等二、在页面中使用css的3种常用方式1.行内样式就是在一个标签内使用 style 属性,仅为某一个标签添加样式例如文字2.内嵌式就…

混合部署

http://horse87.blog.51cto.com/2633686/1628179转载于:https://blog.51cto.com/12341672/1893792

Logistic回归 python实现

Logistic回归 算法优缺点: 1.计算代价不高,易于理解和实现2.容易欠拟合,分类精度可能不高3.适用数据类型:数值型和标称型 算法思想: 其实就我的理解来说,logistic回归实际上就是加了个sigmoid函数的线性回归…

dataset转换json格式

转换json方法 public static string DataToJson(DataSet dt){StringBuilder jsonBuilder new StringBuilder();jsonBuilder.Append("{\"");jsonBuilder.Append("points");jsonBuilder.Append("\":[");for (int i 0; i < dt.Table…

《自控力》总结_完结

《自控力》总结_完结 《自控力》总结_完结 Saturday, December 15, 2012 9:35 PM 《自控力》总结 第一章 1 前额皮质的3个功能区域&#xff1a;“我要”“我不要”“我想要” 2 人的两个自我&#xff1a;冲动的自己&#xff0c;控制自己。给两个自己分别起名字&#xff0c;当某…

python 定时自动爬取_python实现scrapy爬虫每天定时抓取数据的示例代码

1. 前言。1.1. 需求背景。每天抓取的是同一份商品的数据&#xff0c;用来做趋势分析。要求每天都需要抓一份&#xff0c;也仅限抓取一份数据。但是整个爬取数据的过程在时间上并不确定&#xff0c;受本地网络&#xff0c;代理速度&#xff0c;抓取数据量有关&#xff0c;一般情…

博客园win8客户端开发记录5-app设置 登录 回复评论

这段时间完成了博客园cnblogs登录&#xff0c;注销和设置的相关功能 &#xff0c;进入软件&#xff0c; 打开win8的charm setting 选择设置就是当前软件的设置选项了&#xff0c; 感觉这有点山寨mac os x系统&#xff08;所有软件包括当前系统使用统一的设置&#xff09;。 扯远…

Oracle 修改SYS、system用户密码

Oracle 修改SYS、system用户密码 by:授客 QQ&#xff1a;1033553122 概念 SYS用户是Oracle中权限最高的用户&#xff0c;而SYSTEM是一个用于数据库管理的用户。在数据库安装完之后&#xff0c;应立即修改SYS,SYSTEM这两个用户的密码&#xff0c;以保证数据库的安全。 安装完之…

春节小作业总结1

1、x Double.parseDouble(X);字符串转Double类型&#xff1b; 2、使用正则表达式判断输入的是字母还是数字 要import java.util.regex.Pattern 和 java.util.regex.Matcher public boolean isNumeric(String str){ Pattern pattern Pattern.compile("[0-9]*&q…

简单工厂模式,工厂方法模式,抽象工厂模式,spring的狂想

菜鸟D在项目中遇见一个比较纠结的高耦合&#xff0c;所以就想办法来解耦。情况是这样的&#xff1a;系统通过用户选择treeview控件的节点判断调用不同的处理&#xff0c;这些处理中某些东西又是类似的。同事的建议是采用简单工厂&#xff0c;耦合就耦合吧&#xff0c;反正treev…

堆、栈及静态数据区详解 转

内存分为代码区、全局数据区、堆区和栈区。堆一般存放动态数据&#xff0c;栈里一般存放局部成员。 关于堆栈和堆的概念[问题] C中创建本地&#xff08;或者说局域&#xff09;变量是在堆栈&#xff08;stack&#xff09;中分配内存地址&#xff0c;而创建全局变量则是在堆&…

如何使用CSS实现居中

前言&#xff1a; 这一篇主要是翻译 《how-to-center-anything-with-css》这一篇文章的主要内容&#xff0c;再加上自己的一些概括理解&#xff1b;主要问题是解决垂直居中的问题。我们知道实现水平居中的方式很多种&#xff0c;比如&#xff1a; text-align:center; margin:0 …

java布局_运用 BoxLayout 进行 Swing 控件布局

引言在用户使用 Java Swing 进行用户界面开发过程中&#xff0c;会碰到如何对 Java Swing 的控件进行布局的问题。Swing 的控件放置在容器 (Container) 中&#xff0c;容器就是能够容纳控件或者其它容器的类&#xff0c;容器的具体例子有 Frame、Panel 等等。容器需要定义一个布…

js变量类型

js中有null和undefined&#xff0c;null是指对象不存在&#xff0c;undefined是指原生数据不存在 var h {name:lisi,age:28};console.log(h.name)//对象用的是点语法&#xff0c;php中是name->lisi 下面是数组&#xff0c;数组用的是【】语法 1 var arr [a,3,hello,true];…