zoukankan      html  css  js  c++  java
  • 宋体查询1.mysql数据库复习加强 2.mysql事务触发器 3.mysql 索引外键加强 4.zendstudio 的安装使用 5.svn版本控制器的使用java教程

    上班之余抽点间时出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家起一学习一下宋体查询

         

        1.mysql数据库温习增强  

        1,导出mysql数据库里ecshopd

        mysqldump 指令和 mysql指令是一样的

        引出一个环境变量:

        就是统系找到要需运行的程序的路径

        Mysqldump -u root -p 数据库名 导出的文件名

        1,找到mysqldump.exe这个程序,它是用来份备的

        2,行执份备命令

        E:\wamp\mysql\bin>mysqldump -u root -p ecshop > d:/ecshopbak.sql

        (2)份备数据库中某个数据表

        1,找到mysqldump.exe这个程序,它是用来份备的

        2,行执份备命令

        E:\wamp\mysql\bin>mysqldump -u root -p ecshop ecs_goods > d:goodsbak.sql

        导入外部数据库文件

        source  指令是属于mysql

        删除数据表

         drop table ecs_goods;

        清空数据表中的数据:

        delete from 表名

        delete 和 drop 区分:

        delete q清空数据表中的数据(构结)

        drop 删除个整表

        编码:

        utf-8 同一的编码,它支撑中文和英文,议建建表的时候都是用utf-8,利于网站国际化

        gb2312 支撑大陆的中文,

        gbk 括包gb2312,支撑韩文,日文,香港。。。

        mysql 数据库数据类型(列类型)

        1,数值类型(整型,浮点型,定点型)

        2,字符串类型(char, varchartextenum(枚举类型)

        但是enum类型由于兼容性和移植性,不太议建应用

        3,日期和间时类型

        datetime()------年月日时分秒

        date----------年月日

        time--------时分秒

        间时戳示表间时---------timestamp---------now()

        int示表的范围是 --- 0---

        tinyint 示表的范围------0-255

        smallint--------

          

        有号符 signed ------正负数   -128  到  127 示表的范围也是255个长度

        无号符 unsigned------没有正负数     0 -255

        如果给全班同窗建表

        unsinged

        字符串类型

        char  定长(牢固长度)字符串----- 0-65535

        varchar  可变长度----varchar (255)多少个节字 ,最多255

        text  大的文本数据

        间时日期类型

        date()

        剖析这个数据库函数

        timestamp ------------不剖析-----所以速度要比mysql日期函数快

        我议建应用间时戳示表间时

        训练:

        给我们的同窗建一张数据表,段字括包

         

        生学id
    姓名

        学入间时

        tinyint  255    -128 127  0-255 

         unsigned

        varchar(10) 可变长度,最多10个节字,真正应用几个给你分配几个

        char() ---------定长 0-65535,不管字符串或多或少都占用 65535长度

        name 

        time

        date, datetime mysql置内的日期函数,mysql引擎查询的时候要先剖析 函数,速度慢

        timestamp   字符串(2013-04-16)

        化优表注意事项:

        1,创立id-----尽量表前缀连上id,假如 商品表  goods_id  分类表  cat_id 

        2,创立表的时候---指定存储引擎------如果查询为主的话,engine=myisam ,为了免避乱码----指定utf8 default charset

        3,尽量应用间时戳或字符串 示表日期和和间时

        4,段字(数值,字符串)

        (2)查询语句:

        取得商品id为 3 5 7 8 的商品信息

        group by 分组的应用

        1,商品表和商品分类表,通过在商品表中加增 cat_id段字,联关起来了

        2ecs_category分类表,保存的是商品的分类 id

        注意:

        //查询不同cat_id,上面对应的不同的商品数量

        (1)先根据分类,分组

        (2)再统计分组面里的商品的数量

        group by 根据xx来分组,

        如果计合函数,和group by 起一应用的话,统计的是当前分组内的数据

        训练题:

        查询不同的商品分类上面,商品格价的总和

        查询不同的商品分类上面,格价最高的商品

        查询不同的商品分类上面,商品格价的平均数

        计合函数:

        Max:最大值

        M1in:最小值

        Count():统计总的录记数

        Avg:平均数

        Sum:乞降

        having  和  where 区分:

        where:制约的是个整数据表中段字

         select goods_name from ecs_goods where goods_id=9;

        having: 制约的件条是:后面查询的结果,这个结果有什么件条

        union查询

        union 合联 连接

        union可以将多个查询语句连接起来,select 1  union  select2

        (select goods_name from ecs_goods where cat_id=3 order by shop_price desc limit 3)

        union (select goods_name from ecs_goods where cat_id=4 order by shop_price asc li

        mit 3);

        //查询手机类型上面的全部的手机品牌

        mysql> select cat_name from ecs_category where cat_id=1 union select cat_name fr

        om ecs_category where parent_id=1;

        子查询

        如果一个select查询语句 包含了一另select查询语句 就称之为子查询

        1select型子查询

        select goods_name from ecs_goods where cat_id=(select cat_id from ecs_cat

        egory where cat_name = 'GSM手机');

        (2)from型子查询

        要需注意:

        from面后的子查询表列 要有自己的别名

        select goods_name from(select * from ecs_goods where cat_id in(3,5)) as tem_goods where goods_name like '诺基亚%';

        路思1

        select avg(score),name from score where name in(select name from score where score < 60 group by name having count(*)>=2) group by name;

        路思2

        1,统计每一个分组中,分数小于60的课功数量

         select count(subject) as na from score group by subject having na >=2;

        路思3

        1,统计每一个分组中,分数小于60的课功数量

        select sum(score<60) as su from score group by name having su>=2;

        select avg(score),name from score where name in(select name from score where score < 60 group by name having count(*)>=2) group by name;

        2.mysql务事触发器  

         

        1,连接查询

        union 连接的是多个select 语句

        join 连接查询:

        当我们期望的结果不再同一张表上时,我们要需应用join连接查询

        语法:

        table1 join table2 on table1的某个段字 = table2的某个段字

        件条是 商品表中商品的分类id =  分类表中这个分类的id

        当查询语句中,多次应用某个表,或者这个表名别特长的时候,我们议建给这个表加添一个别名

        mysql> select goods_name,shop_price,cat_name from ecs_goods as g join ecs_catego

        ry as c on g.cat_id = c.cat_id where g.shop_price>=1000;

        join的分类:

        左连接查询 left join:查询的结果是只要边左有的录记,会都表现,边右没有的表现为null

        每日一道理
    爱,有的时候不要需山盟海誓的承诺,但她一定要需细致入微的关怀与问候;爱,有的时候不要需梁祝化蝶的悲壮,但她一定要需心有灵犀的默契与投合;爱,有的时候不要需雄飞雌从的追随,但她一定要需相濡以沫的支撑与理解。

        右连接查询 right join

        内连接查询 inner join : 查询的结果是两个表都有的数据

        务事:

        什么是务事?

        务事是逻辑上的一组操纵,构成这组操纵的各个元单,要不全都功成要不全都失败,这个性特就是务事

        注意:mysql数据支撑务事,但是求要必须是innoDB存储引擎

        处理这个题问:

        mysql的务事处理这个题问,因为mysql的务事性特,求要这组操纵,要不全都功成,要不全都失败,这样就免避了某个操纵功成某个操纵失败。利于数据的安全

        如何应用:

        (1)在行执sql语句之前,我们要开启务事 start transaction;

        (2)常正行执我们的sql语句

        (3)sql语句行执毕完,存在两种情况:

             1,全都功成,我们要将sql语句对数据库成造的影响提交到数据库中,committ

          2,某些sql语句失败,我们行执rollback(回滚),将对数据库操纵赶忙撤销

        php代码:

        开启务事后,只要不行执commitsql语句不会对实真的数据库成造影响

        只有行执commit以后,才会对实真数据库成造影响

        触发器:

        触发器是数据库的一个程序,他是用来听监着数据表的某个行为,一旦数据表的这个行为产生了,马上行执响应的sql语句

        触发器的语法构结:

        create trigger 触发器的称名 触发器件事 on 听监的表名 for each row 行为产生后行执的sql语句

        触发器件事构成:;两部分构成:

        触发器件事产生的间时-----是在听监的表的行为 after  before  经常使用的是after

        触发器行执的容内:增编削

        创立order 表的时候,要需注意,因为ordermysql中是一个关键字 排序,为了免避错误的产生,我们可以加添反引号,明表这不是一个关键字

        如何应用触发器:

        案例究研:

        一旦成生订单,对应的库存表要减去响应的数据

        (1)建商品表和订单表

        订单表

        (2)给订单表定绑触发器,一旦订单表加增订单,马上行执sql语句,将商品库存表减去响应的数据

        在现有个题问:

        每次下订单后,库存表都是减去响应的数量牢固死的,但是我们的需求是:用户下几个订单,库存表减去几个库存

        如在何触发器中应用触发数据?

        什么是触发的数据:就是用户在订单表中买购的数量

        new 关键字代表新加增的数量,订单表中新下的订单数量

        old 关键字代表是旧的录记(从前的录记,取消的订单数量)

        new 的应用:

        old的应用:

        旧的从前的录记,之前买了几个商品,但是又不想要了,取消订单

        取消订单后,库存中要加增的响应的数量

        updatenew 和 old的应用

        在现的需求是:

        之前买购了5samsung手机,在现想买10个,要需更新订单表

        这个时候,触发器就要需听监着 update这个行为

        先将之前下的订单撤销,再从新下订单

        触发器是什么?

        用来听监数据表的某个行为(insertdeleteupdate),一旦这个行为产生了,马上行执响应的sql语句

        删除触发器:

        drop trigger 触发器的称名

        3.mysql 引索外键增强  

        1,引索

        什么是引索?

        引索------搜索---导引------导引着我去搜索到某个录记的

        义定:

        没有引索的情况下,我们查询一条录记,要需从第一条录记直一往下查询,晓得找查到我们要需的录记,如果录记数别特大的话,相当于铁树开花,速度别特慢

        引索:建一个引索-----向指的是数据的位置-----映反到新华字典-----录记在所的页数

        优势:

        查询速度快了,但是缺乏:

        加增了维护引索的工作量-----每加增一条录记----我就要在引索表列中加增一个引索号向指这条录记的位置

        查询速度快了,但是增  删除  更新  速度慢了

        扩展一点

        数据库中引索保存在哪里?

        保存在

        引索的分类:

        1,主键引索:当我们创立一个表后,指定主键后,动自将主键设置为主键引索

        2,通普引索:就是在一个通普的段字上建立引索

        3,独一引索:数据表中的某个段字是独一的,没有复重----

        4,全文引索:在某个段字上建立全文引索,将录记内的关键字抽取出来,然后对每一个关键字停止引索    sphinx-----可以建立全文引索

        创立引索:

        1create [引索类型] index 引索名 on 表名(表的某个段字上)

        2alter table 表名 add [引索类型] index (表的段字)

        创立引索之前查询的录记数

        创立引索以后查询一条录记,经过的录记数

        删除引索:

        改修引索:

        只能是先删除在加增

        外键:

        什么是外键:

        生学举例:

        每一个生学对应一张 

        个人信息表(姓名,学号)

        生学详细信息表(绩成,违纪录记,取得励奖,家庭地址,膏火,)

        这两个表通过外键联关以后,如果有一天你毕业了,应当将你姓名,学号删除,这个生学上面对应的详细信息(绩成,违纪录记,取得励奖,家庭地址,膏火)动自删除

        应用外键的件条:

        (1)证保数据表的存储引擎必须是innoDB

        (2)外键系关的两个表的列必须数据类型似相  int  tinyint   int----------varchar

        外键义定的语法:

        create table tem(id int, name varchar, foreign key(id) references outTable(id) on delete cascade on update cascade )

        听监的外键表的行为:delete  update  

         foreign key(id)  指定当前表哪个段字是外键

         references 和外部哪个表联关

        constrict ‘’;  指定一个称名,(外键联关的称名,为了来将删除这个外键的话,通过这个称名来删除)约束的称名

        mysql> create table xiaodi(id int primary key auto_increment,foreign_id int,name

         varchar(32),constraint xiaodi_for foreign key(foreign_id) references dage(id) o

        n delete cascade on update cascade)engine=innodb default charset=utf8;

        (1)应用外键将两个表联关

        在当前表创立外键段字------和外部表的某个段字可联关:foreign key(foreign_id)  references dage(id) 

        联关起来以后听监着外部那个表,如果他删除了,我要做什么?如果他更新了,我又要做什么

        on delete  (参数3)    on update  (参数3个)

        当前表听监着 外键联关的那个表,听监的行为有两种(deleteupdate,一旦这些行为产生以后,我(xiaodi)要做哪些操纵

        操纵分为3中(经常使用的有3中),cascade:瀑布,示表追随着外键联关的哪个表

        restrict 严厉,示表外部联关的那个表删除了,我自己严厉求要自己(不追随化变)

        NO ACTION  --------  无动作,没有映反

        删除外键:

        alter table 表名 drop foreign key 外键称名

        重置数据库码密

        (1)我们要明白数据库的码密保存在哪里?

         mysql数据库 的 user

        要想改修码密,先进入mysql口窗,然后改修user表的password段字

        步调:

        (1)先闭关mysqld服务器端的进程

        (2)再次开启mysqld这个服务,以不带权限验证式形开启(再打开一个口窗,开启mysqld-nt.exe这个进程以后不要闭关口窗)

        (3)通过客户端 链接到mysql服务器端,这个时候我们录登的是root用户

        (4)赶忙改修码密  注意:要需应用mysqlpassword()加密函数加密

        (5)赶忙把跳过权限验证录登的式形 闭关(结束进程,从新开启服务进程)

        4.zendstudio 的安装应用 

        同如dw notepad 的结合体~

        5.svn版本控制器的应用

        括包服务器端, 客户端

        服务器端在根目录创立repository库放存库文件 如 weibo 

        cmd口窗 运行 svnserve -d -r create 路径

        在客户端创立文件夹并从相干路径获得便可

        改修文件后 应用commit 交托给服务器

        更新时应用update 选择响应version停止更新

    文章结束给大家分享下程序员的一些笑话语录: 一程序员告老还乡,想安度晚年,于是决定在书法上有所造诣。省略数字……,准备好文房4宝,挥起毛笔在白纸上郑重的写下:Hello World

  • 相关阅读:
    书籍下载点
    总结一下散乱的开发点滴(3) (高手勿入)
    [收藏]Dynamic Controls in ASP.NET
    [收藏] ORACLE中函数
    面试题收集,面试和被面试中煎熬~~
    一句SQL得出表中重复的数据(TMP)
    总结一下散乱的开发点滴(4) (高手勿入)
    一个同步的例子
    关于学习的反思(下)系网开发记(4)
    关于学习的反思(上)系网开发记(2)
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3040039.html
Copyright © 2011-2022 走看看