zoukankan      html  css  js  c++  java
  • MYSQL 常用语法格式

    2、检索数据
          检索一列:SELECT prod_name FROM products;
          检索多列:SELECT prod_name,prod_id FROM products;
          检索所有列:SELECT * FROM products;
          检索不同的行:SELECT DISTINCT prod_id FROM products;
          限定返回行数:SELECT * FROM products LIMIT 5;    返回前5行
             SELECT * FROM products LIMIT 3,2;    返回第3行开始的后2行
    3、排序检索数据
          排序数据:SELECT prod_name FROM products ORDER BY prod_name;
          多个列排序:SELECT prod_name, prod_id FROM products ORDER BY prod_name,prod_id;
          指定排序顺序:SELECT prod_name FROM products ORDER BY prod_name DESC;    ASC关键字--升序(默认)/DESC--降序
    4、过滤数据
           WHERE子句:SELECT prod_name FROM products WHERE prod_id = "JP1000";
          WHERE子句操作符:
             比较:=,<,>,>=,<=,<>,!=,!>,!<
             逻辑运算符:AND、OR、NOT、XOR
             范围检索:SELECT prod_name FROM products WHERE prod_name BETWEEN 5 AND 8;    | BETWEEN...AND、NOT BETWEEN...AND
             列表检索:SELECT prod_name FROM products WHERE prod_id IN (1,5,4,9);     | IN、NOT IN
              通配符匹配:SELECT prod_name FROM products WHERE prod_id LIKE "%NT2";     | LIKE、NOT LIKE     %匹配多个个数字符_匹配一个字符
             空值检索:SELECT prod_name FROM products WHERE prod_id IS NULL;    | IS NULL 、IS NOT NULL
    5、正则表达式进行搜索
             SELECT prod_name FROM products WHERE prod_id REGEXP "00";      .匹配任意一个字符
    6、计算字段
             拼接字段:SELECT Concat(prod_id,'(',prod_name,')') FROM products;
             别名:SELECT Concat(prod_id,'(',prod_name,')') AS "Concat" FROM products;
             算数运算:SELECT prod_price*prod_price FROM products;    结果为一列计算过的新计算列
    7、数据处理函数
           (1)字符串处理函数
              返回串左边字符:Left()
             返回串右边字符:Right()
             返回串的长度:Length()
             找出串的一个字串:Locate()
             将串转换为小写:Lower()
             将串转换为大写:Upper()
             去掉串左边的空格:LTrim()
             去掉串右边的空格:RTrim()
             返回串的SOUNDEX值:Soundex()      soundex是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。
          (2)数学函数
             返回x的绝对值:ABS()
             返回0~1的随机数:RAND()
             返回x四舍五入到小数点后y位的结果:ROUND(x,y)
             x的y次幂:POW()
    8、日期和时间处理函数
              增加一个日期(天、周等):AddDate()
             增加一个时间(时、分等):AddTime()
             返回当前日期:CurDate()
             返回当前时间:CurTime()
             返回当前日期和时间:Now()
             返回日期时间的日期部分:Date()
             返回日期时间的时间部分:Time()
             返回一个日期的年份部分:Year()
             返回一个日期的月份部分:Month()
             返回一个日期的天数部分:Day()
             返回一个时间的小时部分:Hour()
             返回一个时间的分钟部分:Minute()
             返回一个时间的秒部分:Second()
             计算两个日期之差:DateDiff()
             高度灵活的日期计算函数:Date_Add()
             返回一个格式化的日期或时间串:Date_Format()
    9、汇总数据,聚集函数
             返回某列平均值:AVG()
             返回某列行数:COUNT()
             返回某列最大值:MAX()
             返回某列最小值:MIN()
             返回某列和:SUM()
        其他函数
              返回上一条SELECT语句(或show语句等)查询结果集的记录数:FOUND_ROWS()
             返回上一条SQL语句,对表数据进行修改操作后影响的记录数:ROW_COUNT()         (如果非修改操作语句,而是查询语句,会返回-1。如果上一条SQL语句是UPDATE语句,但是UPDATE后所有数据的值并没有改变,则返回 0)
    10、联结表
          等值联结
             SELECT custom_name,custom_price,product_name FROM custom INNER JOIN product ON custom.vent_id=product.vent_id;
             SELECT custom_name,custom_price,product_name FROM custom,product
    WHERE custom.vent_id=product.vent_id;
         外部联结
             SELECT customers_id,order_num FROM customers LEFT OUTER JOIN order ON sustomers.cust_id = order.cust_id;
             SELECT customers_id,order_num FROM customers RIGHT OUTER JOIN order ON sustomers.cust_id = order.cust_id;
         复合条件联结
             SELECT companyname,productname,price,sellordernumber FROM customer,product,sell_order
    WHERE customer.customerid=sell_order.customerid AND product.productid=sell_order.productid AND companyname = "布丁科技有限公司";
    11、子查询
             使用场景:查询的结果在一个表中,查询的条件在另一个表中
             SELECT departmentname FROM department WHERE departmentid IN (SELECT departmentid FROM employee WHERE employeename = "徐亮");
    11、使用视图
             创建视图:CREATE VIEW viewName AS
             ...
             修改视图:ALTER VIEW viewName AS
             ... 
             创建或替换一个视图:CREATE OR REPLACE VIEW viewName AS 
             ...
             调用:SELECT * FROM viewName;
             删除视图:DROP VIEW viewName;
    12、创建索引
             (1) UNIQUE | FULLTEXT | SPATIAL     唯一索引 | 全文索引 | 空间索引 
             (2) INDEX     普通索引
             建表时创建索引:
                 ...
                 name varchar(20) NOT NULL UNIQUE KEY,
                 ...
             或:
                  ...
                  PRIMARY KEY index_name(id)
                  FULLTEXT KEY index_name(name)
                  );
             在已有表上创建索引:
                  CREATE UNIQUE INDEX index_name
                  ON table_name(name)
    13、创建存储过程
             改变语句结束符号:DELIMITER $
             创建
                 CREATE PROCEDURE proceduName(
                 IN a int(11) //数据传入传出处理
                 )
                 COMMENT ""
                 BEGIN
                 ...
                 END$
             调用:CALL procedureName[(传入参数)];
    14、触发器
    tips:1 声明变量:DECLARE a type
           2 new表与old表:在每次数据更新操作的时候,总会产生临时表(new表和old表),用以记录这条操作更改前后的变化
              在INSERT型的触发器中,new表存储将要before或已经after插入的新记录,old表不创建
              在DELETE型的触发器中,new表不创建,old表存储已经删除的记录
              在UPDATE型的触发器中,new表存储修改后的记录,old表存储修改前的记录
             创建触发器:
                  CREATE TRIGGER tri_Name     --tri_Name代表触发器名称
                  trigger_time trigger_event ON tableName     --trigger_time为触发时机,可选AFTER/BEFORE(之后/之前),trigger_event为触发事件,如INSERT/UPDATE/DELETE
                  FOR EACH ROW      --这句在mysql是固定的,表示触发的执行间隔,每隔一行执行一次动作
                  BEGIN 
                       ...
                  END;;
  • 相关阅读:
    John Resig 见面会视频
    《程序员羊皮卷》书评
    用 JavaScript 对 JSON 进行模式匹配 (Part 2 实现)
    工具:开发者使用,企业埋单
    「云端 JavaScript 漫游指南」
    如何让你的网站支持 IE9 Pinned Site (Part 1 理论)
    世界顶级黑客自传:Ghost in the Wires
    MVP Summit 2010 Trip (WA)
    Apple 谈论产品 vs Microsoft 谈论技术
    IBatisNet开发使用小结 之二
  • 原文地址:https://www.cnblogs.com/likoo/p/12054220.html
Copyright © 2011-2022 走看看