JAVA学习笔记(Mysql)

Mysql中drop、truncat、delete的用法区别:

    1.truncat和delete只删除数据不删除表的结构(定义);drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.

2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.runcate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger

3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动 显然drop语句将表所占用的空间全部释放truncate语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage; truncate 会将高水线复位(回到最开始).

4.速度,一般来说: drop> truncate > delete

5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及. 使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大. 想删除表,当然用drop 想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还 是用delete.如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据

总结:

DROP用于删除表,数据库等.

TRUNCATE和DELETE都是删除表数据.

但是TRUNCATE相当于初始化,比如如果有自增长ID,用TRUNCATE删除后,自增长Id会从1开始,(truncat会释放表所占的空间)而delete则不会.

相同点:

1.truncate和不带where子句的delete、以及drop都会删除表内的数据。

2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。

不同点:

1. truncate 和 delete 只删除数据不删除表的结构(定义)

drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为 invalid 状态。

2. delete 语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。

3.delete 语句不影响表所占用的 extent,高水线(high watermark)保持原位置不动;drop 语句将表所占用的空间全部释放。truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;truncate 会将高水线复位(回到最开始)。

4.速度,一般来说: drop> truncate > delete

5.安全性:小心使用 drop 和 truncate,尤其没有备份的时候.否则哭都来不及;使用上,想删除部分数据行用 delete,注意带上where子句. 回滚段要足够大.;想删除表,当然用 drop;想保留表而将所有数据删除,如果和事务无关,用truncate即可。如果和事务有关,或者想触发trigger,还是用delete。如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据。

6.delete是DML语句,不会自动提交。drop/truncate都是DDL语句,执行后会自动提交。

7.TRUNCATE   TABLE   在功能上与不带   WHERE   子句的   DELETE   语句相同:二者均删除表中的全部行。但   TRUNCATE   TABLE   比   DELETE   速度快,且使用的系统和事务日志资源少。DELETE   语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE   TABLE   通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

8.TRUNCATE   TABLE   删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用   DELETE。如果要删除表定义及其数据,请使用   DROP   TABLE   语句。

9、对于由   FOREIGN   KEY   约束引用的表,不能使用   TRUNCATE   TABLE,而应使用不带   WHERE   子句的   DELETE   语句。由于   TRUNCATE   TABLE   不记录在日志中,所以它不能激活触发器。

10、TRUNCATE   TABLE   不能用于参与了索引视图的表。







                                     基础语句学习


一、数据库操作

     1、查看数据库

           show   databases;

      2、创建数据库:

          create database db_name;    //db_name为数据库的名字

       3、使用数据库:

           use   db_name;

        4、删除数据库:

           drop databses db_name;

二、创建表:

1、创建表:

     create table table_name(

               id tinyint unsigned not null auto_increament; //id值,无符号、非空、递增,可以做主键

               name varchar(20) not null;

                score tinyint unsigned not null default 10;  //设置默认值为10

                primary key(id);

                ENGINE = InnoDB //设置表的存储引擎,一般常用InnoDB和MyIsAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索

                default charset=utf8;  //默认的编码,防止数据库中文乱码

)

2、复制表:

     create table table2  select * from table_name1;

3、创建临时表:

       create temporary tabel table_name;

4、查看数据库中可用的表:

     show tables;

5、查看表的结构:

      desc table_name;

     show columns from table_name;

6、删除表:

     drop table if exists table_name;

7、表重命名:

       rename table name_old to name_new;

       alter table name_old rename name_new;

三、修改表:

         ALTER TABLE tb_name ADD[CHANGE,RENAME,DROP] ...要更改的内容...

        alter table table_name add column  address varchar(10) not null ;

       alter table table_name drop address;

四、插入数据:

1、插入数据:

      insert   into table_name (colums)   values  (values);

2、插入检索出来的数据:

    insert  into table_name1  (name,score)  select name,score  from table_name2;

五、更新数据:

     update table_name set name="www" wherd id=1;

六、删除数据:

      delete from table_name where id  =  2;

七、条件控制:

1、WHERE 语句:

      SELECT * FROM tb_name WHERE id=3;

2、HAVING 语句:

       SELECT * FROM tb_name GROUP BY score HAVING count(*)>2;

3、相关条件控制符:

        =、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOT

        AND 、OR

        Linke()用法中      %  为匹配任意、  _  匹配一个字符(可以是汉字)

         IS NULL 空值检测

八、MySQL的正则表达式:

        1、Mysql支持REGEXP的正则表达式:

             select *  from table_name where name regexp '^[A-D]'; // 找出以A-D为开头的name

          2、特殊字符需要转义



1.取url字段后三位字符:

select substring(url,-3) from link;

select right(url,length(url)-5) from link

2.从左开始第3位取(包括第三位):

select substring(url,3)from link

3.取左边的3位

select substring(url,1,3) from link

4.中间截取(从第1位开始取7位,如sDate字段值是 2013-06-07)

select SUBSTRING(sDate, 1,7) from forumdata;

5.正常的模糊查询

select * from student where name like '%hello%';

6.一个字段共有13位,查询倒数四五位为31的

select * from student  where SUBSTRING(ordersn, 9,2) = 31;

7.找出比deptno=30的员工最低工资高的其他部门的员工

select * from emp where sal>ANY(select sal from emp where deptno=30)nd deptno<>30;

8.找出比deptno=30的员工最高工资高的其他部门的员工

select * from emp where sal>ALL(select sal from emp where deptno=30) and deptno<>30;

9.查询前10行记录

select * from student where rownum<=10;

10.查第几行的数据

select * from emp where  rownum<=3  and  empno not in (select empno from emp where

rownum<=3)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 外键约束 删除,更新时的四个选项 RESTRICT 当有关联数据时,无法删除(立即检出) NO ACTION 当有...
    渔樵店阅读 265评论 0 0
  • 索引的实现方式 1、B+树我们经常听到B+树就是这个概念,用这个树的目的和红黑树差不多,也是为了尽量保持树的平衡,...
    大黄大黄大黄阅读 2,365评论 1 14
  • .数据库 数据库的发展: 文件系统(使用磁盘文件来存储数据)=>第一代数据库(出现了网状模型,层次模型的数据库)=...
    小Q逛逛阅读 956评论 0 2
  • 端午小长假瑜伽特训速成班 正逢端午小长假,欢迎各位来北京度过一场瑜伽盛宴 5月27日 早6:45夏都公园北门集合 ...
    何以取暖阅读 288评论 0 0
  • 母亲的发质是“自来卷”。记忆中,母亲从没流过披肩长发,没烫过发,自始至终没有跟随时尚的发型。她的发型都体现在朴素与...
    FASHION_e018阅读 133评论 0 0