zoukankan      html  css  js  c++  java
  • 基础SQL语句

    store_information表格:                                                                   Geography表格:

    store_name sales date
    Los Angeles 1500 1999-01-05
    San Diego 250 1999-01-07
    Los Angeles 300 1999-01-08
    Boston 700 1999-01-08
    region_name store_name
    East Boston
    East New York
    West Los Angeles
    West San Diego

     

     

     

     

    1. 查询:

    # 基本查询
    SELECT store_name FROM store_information
    #DISTINCT去除重复行
    SELECT DISTINCT store_name FROM store_information
    #WHERE条件查询
    SELECT store_name FROM store_information WHERE sales > 300
    #AND/OR增加条件
    SELECT store_name FROM store_information WHERE sales > 300 and sales < 1500
    #IN指定查询值
    SELECT store_name FROM store_information WHERE store_name IN ('Los Angeles', 'Boston')
    #BETWEEN指定查询范围
    SELECT store_name FROM store_information WHERE sales BETWEEN 300 AND 700
    #LIKE匹配
    SELECT store_name FROM store_information WHERE store_name LIKE '%AN%' #store_name中含有AN的记录
    #ORDER BY排序
    SELECT store_name, sales FROM store_information ORDER BY 2 DESC #DESC/ASC降序/升序, 2指按照第二个参数(sales)
    #利用函数:AVG(平均),COUNT(计数),MAX(最大值)
    SELECT SUM(sales) FROM store_information
    SELECT COUNT(DISTINCT store_name) FROM store_information WHERE store_name is not NULL
    #GROUP BY分组
    SELECT store_name, SUM(sales) FROM store_information GROUP BY store_name
    #HAVING对运算结果进行选择
    SELECT store_name, SUM(sales) FROM store_information GROUP BY store_name HAVING SUM(sales) > 1500
    #别名
    SELECT store_name, SUM(sales) "Total Sales" FROM store_information GROUP BY store_name #结果一样,不过SUM(sales)被显示为Total Sales
    SELECT store_name, SUM(sales) TotalSales FROM store_information GROUP BY store_name
    #连接
    SELECT A1.region_name REGION, SUM(A2.sales) SALES FROM geography A1, store_information A2
      WHERE A1.store_name = A2.store_name GROUP BY A1.region_name
    #外部连接
    #上面那个连接是需要两个表都有相同的内容才能显示,即内部连接(又称左连接: left join).要想列出某个表格中的所有资料,需要用外部连接:
    SELECT A1.store_name, SUM(A2.sales) SALES FROM geography A1, store_information A2
    WHERE A1.store_name = A2.store_name(+) GROUP BY A1.store_name #oracle用+表示外部连接,mysql还不支持
    #subquery
    SELECT SUM(sales) FROM store_information WHERE store_name IN (SELECT store_name
    FROM geography WHERE region_name = 'West') #相当于是嵌套
    #UNION将两个SQL语句的合并起来 ## UNION要求两个SQL语句的字段相同,并且UNION只会显示不同的资料值(类似SELECT DISTINCT)
    SELECT store_name FROM store_information UNION SELECT store_name FROM geography
    SELECT store_name FROM store_information UNION ALL SELECT store_name FROM geography #UNION ALL列出每一笔符合条件的资料,无论资料值是否重复 #CONCAT()字段拼接
    SELECT CONCAT(region_name, store_name) FROM geography WHERE store_name = 'Boston' #mysql语法,结果:'EastBoston'
    #SUBSTRING()字段裁剪 (mysql)
    SELECT SUBSTRING(region_name, 2,4) FROM geography #(下标从1开始),查出region_name的第2到第4个字母
    #TRIM
    SELECT TRIM(' Sample ') #结果: 'Sample'
    SELECT LTRIM(' Sample ') #去除左边空格
    SELECT RTRIM(' Sample ') #去除右边空格

    2. 修改:

    #建表
    create table geography
    (
      geographyid  INT,
      region_name  varchar(20),
      store_name   varchar(20)
    )
    #建视图
    ##视图是虚拟表格,它是建立在表格之上的一个架构。而表格代表了实际存储的资料
    CREATE VIEW V_REGION_SALES
    AS SELECT A1.region_name REGION, SUM(A2.sales) SALES
    FROM geography A1, store_information A2
    WHERE A1.store_name = A2.store_name
    GROUP BY A1.region_name;
    SELECT * FROM V_REGION_SALES; #建索引
    #建索引是为了加快查询,没有索引的表需要查询表格里所有的记录,有索引的先根据索引检索
    CREATE INDEX IDX_STORE_NAME ON geography(store_name)
    #改变表格
    # ADD: 增加 DROP: 删除 CHANGE: 改变名称 MODIFY: 改变种类
    ALTER TABLE geography ADD zipcode char(6)
    ALTER TABLE geography CHANGE region_name regionname varchar(30)  #改变名称,需要给出名称类型

    ALTER TABLE geography MODIFY regionname varchar(20)  #改变类型
    ALTER TABLE geography DROP regionname
    #设置主键
    #主键可以在建表时设置,也可以用ALTER TABLE设置 #设置为主键后,该值默认也会被设置为NOT NULL
    CREATE TABLE test
    (
      testid int primary key,
      testdata varchar(20)
    )
    CREATE TABLE test2
    (
      test2id int,
      test2data varchar(20),
      primary key (test2id)
    )
    ALTER TABLE test3 ADD primary key (test3id)
    #外键 #法1
    CREATE TABLE test1
    (
      test1id INT(11) primary key not null,
      test1data varchar(20)
    )
    CREATE TABLE test2
    (
      test2id INT(11) primary key not null,
      fid INT(11) not null,
      test2data varchar(20),
      foreign key (fid) references test1(test1id)
    )
    #法2
    ALTER TABLE test2 ADD FOREIGN KEY (fid) REFERENCES test1(test1id)
    #删除表格
    DROP TABLE test2  #删除表格后,此表格将不存在
    #清楚表格内容
    TRUNCATE TABLE geography
    #插值
    INSERT INTO test1(test1id, test1data) VALUES(1,"testdata")  #插入一条数据
    INSERT INTO store_information(store_name, sales, date) SELECT
    store_name, sales, date FROM sales_information WHERE year(date) = 1998  #插入多条数据(从一个表里将数据都找出来然后插入另一个表里)
    #UPDATE记录
    UPDATE test1 SET test1data = "message" WHERE test1id = 1
    #DELETE记录
    DELETE FROM test1 WHERE test1id = 1
  • 相关阅读:
    DOM深度优先遍历算法
    DOM事件
    DOM修改
    DOM的方法和属性
    DOM简介
    JSON.stringify()
    JSON解析
    JSON对象
    JSON语法
    JSON对比XML
  • 原文地址:https://www.cnblogs.com/wangzhijun/p/2966471.html
Copyright © 2011-2022 走看看