MySQL--编写脚本_MySQL_MySQL_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • MySQL

    当前位置:主页 > 数据库 > MySQL >

    MySQL--编写脚本_MySQL

    时间:2019-11-09|栏目:MySQL|点击:
  • 首要步骤(一般可省略):
    开启mysql服务(默认是开机时就自动运行了):
    控制面板-->管理工具-->服务,在里面找到名称为mysql的项,双击就可看它的服务状态是启动还是停止,把它设为启动

    连接mysql:
    在命令行下输入 mysql -h localhost -u root -p回车,然后输入密码即可;或直接运行mysql自带的连接工具,然后输入密码即可.

    1.编写sql脚本,假设内容如下:

    create database dearabao;
    use dearabao;
    create table niuzi (name varchar(20));

    保存脚本文件,假设我把它保存在F盘的hello world目录下,于是该文件的路径为:F:/hello world/niuzi.sql


    2.执行sql脚本,可以有2种方法:
    第一种方法:
    在命令行下(未连接数据库),输入 mysql -h localhost -u root -p123456 < F:/hello world/niuzi.sql (注意路径不用加引号的!!) 回车即可.
    第二种方法:
    在命令行下(已连接数据库,此时的提示符为 mysql> ),输入 source F:/hello world/niuzi.sql (注意路径不用加引号的) 或者 /. F:/hello world/niuzi.sql (注意路径不用加引号的) 回车即可

    SQL编写规范

    1.书写格式
    示例代码:

    存储过程SQL文书写格式例
    select
    c.dealerCode,
    round(sum(c.submitSubletAmountDLR + c.submitPartsAmountDLR + c.submitLaborAmountDLR) / count(*), 2) as avg,
    decode(null, 'x', 'xx', 'CNY')
    from (
    select
    a.dealerCode,
    a.submitSubletAmountDLR,
    a.submitPartsAmountDLR,
    a.submitLaborAmountDLR
    from SRV_TWC_F a
    where (to_char(a.ORIGSUBMITTIME, 'yyyy/mm/dd') >= 'Date Range(start)'
    and to_char(a.ORIGSUBMITTIME, 'yyyy/mm/dd') = 'Date Range(start)'
    and to_char(b.ORIGSUBMITTIME,'yyyy/mm/dd') .Select/From/Where/Order by/Group by等子句必须另其一行写
    2>.Select子句内容如果只有一项,与Select同行写
    3>.Select子句内容如果多于一项,每一项单独占一行,在对应Select的基础上向右缩进8个空格(Java source无缩进)
    4>.From子句内容如果只有一项,与From同行写
    5>.From子句内容如果多于一项,每一项单独占一行,在对应From的基础上向右缩进8个空格(Java source无缩进)
    6>.Where子句的条件如果有多项,每一个条件占一行,以AND开头,且无缩进
    7>.(Update)Set子句内容每一项单独占一行,无缩进
    8>.Insert子句内容每个表字段单独占一行,无缩进;values每一项单独占一行,无缩进
    9>.SQL文中间不允许出现空行
    10>.Java source里单引号必须跟所属的SQL子句处在同一行,连接符("+")必须在行首

    3).空格
    1>.SQL内算数运算符、逻辑运算符连接的两个元素之间必须用空格分隔
    2>.逗号之后必须接一个空格
    3>.关键字、保留字和左括号之间必须有一个空格

    2.不等于统一使用""
    Oracle认为"!="和""是等价的,都代表不等于的意义。为了统一,不等于一律使用""表示

    3.使用表的别名
    数据库查询,必须使用表的别名

    4.SQL文对表字段扩展的兼容性
    在Java source里使用Select *时,严禁通过getString(1)的形式得到查询结果,必须使用getString("字段名")的形式
    使用Insert时,必须指定插入的字段名,严禁不指定字段名直接插入values

    5.减少子查询的使用
    子查询除了可读性差之外,还在一定程度上影响了SQL运行效率
    请尽量减少使用子查询的使用,用其他效率更高、可读性更好的方式替代

    6.适当添加索引以提高查询效率
    适当添加索引可以大幅度的提高检索速度
    请参看ORACLE SQL性能优化系列

    7.对数据库表操作的特殊要求
    本项目对数据库表的操作还有以下特殊要求:

    1).以逻辑删除替代物理删除
    注意:现在数据库表中数据没有物理删除,只有逻辑删除
    以deleteflag字段作为删除标志,deleteflag='1'代表此记录被逻辑删除,因此在查询数据时必须考虑deleteflag的因素
    deleteflag的标准查询条件:NVL(deleteflag, '0') '1'

    2).增加记录状态字段
    数据库中的每张表基本都有以下字段:DELETEFLAG、UPDATECOUNT、CREDATE、CREUSER、UPDATETIME、UPDATEUSER
    要注意在对标进行操作时必须考虑以下字段

    插入一条记录时要置DELETEFLAG='0', UPDATECOUNT=0, CREDATE=sysdate, CREUSER=登录User
    查询一条记录时要考虑DELETEFLAG,如果有可能对此记录作更新时还要取得UPDATECOUNT作同步检查
    修改一条记录时要置UPDATETIME=sysdate, UPDATEUSER=登录User, UPDATECOUNT=(UPDATECOUNT+1) mod 1000,
    删除一条记录时要置DELETEFLAG='1'

    3).历史表
    数据库里部分表还存在相应的历史表,比如srv_twc_f和srv_twchistory_f
    在查询数据时除了检索所在表之外,还必须检索相应的历史表,对二者的结果做Union(或Union All)

    上一篇:MySQL最新版5.7.12安装教程(windows)_MySQL

    栏    目:MySQL

    下一篇:mysql死锁几种情况的测试_MySQL

    本文标题:MySQL--编写脚本_MySQL

    本文地址:http://www.jh-floor.com/shujuku/MySQL/123584.html

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号