zoukankan      html  css  js  c++  java
  • SQL表连接查询

    USE h
    /*默认值*/
    CREATE TABLE emp(
            id INT,
            ename VARCHAR(5),
            address VARCHAR(20) DEFAULT '山东淄博'(默认值)
            )
     INSERT INTO emp(id,ename) VALUES(1,'张三');
     INSERT INTO emp VALUES(2,'李四','山东济南');
      INSERT INTO emp VALUES(3,'小红','');
      SELECT * FROM emp;
      
      
      /*不能为空值*/
     CREATE TABLE emp02(
            id INT NOT NULL,(不能为空值,前面不加is)
            ename VARCHAR (5),
            sex VARCHAR (5)
            )
    INSERT INTO emp02 VALUES(1,'王瑞昌','');
    INSERT INTO emp02 VALUES(1,'王昌','');
    SELECT * FROM emp02;    
    
     
    /*唯一约束,可以插入重复null,但别的值不能重复*/
    CREATE TABLE emp03(
            /*非空(null)+唯一*/
            id INT NOT NULL UNIQUE,(唯一约束),
            ename VARCHAR(5)
            )
            INSERT INTO emp03 VALUES(1,'小红');
            /*id不能重复*/
             INSERT INTO emp03 VALUES(1,'小名');
             SELECT * FROM emp03;
             
             
             /*主键*/
          CREATE TABLE emp04(
            id INT PRIMARY KEY,
            ename VARCHAR (5)
            )   
            SELECT * FROM emp04; 
           INSERT INTO emp04 VALUES(1,'小红'); 
           /*不能插null*/
           INSERT INTO emp04 VALUES(NULL,'小兰');
           /*id不能重复*/
           INSERT INTO emp04 VALUES(1,'小兰');
           /*正确情况*/
           INSERT INTO emp04 VALUES(2,'小兰');
           
           
           /*自增长(前提是主键)*/
           CREATE TABLE emp05(
            id INT PRIMARY KEY AUTO_INCREMENT,(自增长)
            ename VARCHAR (5)
            ) 
            /*id自增长*/
            INSERT INTO emp05(ename) VALUES('小兰');
             INSERT INTO emp05(ename) VALUES('小红');
              INSERT INTO emp05(ename) VALUES('小明');
              SELECT * FROM emp05;
              /*删除id2后再插入2,id从3开始*/
              DELETE FROM emp05 WHERE id='2'
              
              
              /*前面id固定4位,自动补0*/
            CREATE TABLE emp06(
            id INT(4) ZEROFILL(自动补0) PRIMARY KEY AUTO_INCREMENT,
            ename VARCHAR (5)
            ) 
            SELECT * FROM emp06;
            INSERT INTO emp06(ename) VALUES('小兰');
             INSERT INTO emp06(ename) VALUES('小红');
              INSERT INTO emp06(ename) VALUES('小明');
              
              
            /*数据删除*/
            DELETE FROM emp05 WHERE id='2'
            
            /*外键(仿乱写)*/
            /*主表*/
            CREATE TABLE dept(
                   id INT PRIMARY KEY,
                   ename VARCHAR (10)
            )
            /*附表*/
            CREATE TABLE employee(
                   id INT PRIMARY KEY,
                   ename VARCHAR (5),
                   deptid INT,   
                    /*外键写法*/          
                   CONSTRAINT enmployee_dept_fk FOREIGN KEY(deptid) REFERENCES dept(id)            
            )
          INSERT INTO dept VALUES(20,'秘书部');  
          INSERT INTO dept VALUES(30,'经理部');  
          /*数据修改*/
          UPDATE dept SET id=50 WHERE id=20;
          SELECT * FROM dept;
          INSERT INTO employee VALUES(1,'张三',20);
          /*前面表没有50所以失败*/
          INSERT INTO employee VALUES(2,'李三',50); 
          /*前表有30所以成功*/
          INSERT INTO employee VALUES(2,'李三',30);
         
          SELECT * FROM employee;
          /*数据修改*/
          UPDATE employee SET deptid=30 WHERE id=1;
          
          /*表连接*/
          /*交叉连接(完全连接)如果不加条件*/
          SELECT * FROM zj1 INNER JOIN fb1;
          /*内连接(有条件on)*/
          SELECT * FROM zj1 INNER JOIN fb1 ON zj1.`protype_id`=fb1.`protype_id`;
          /*左外连接*/
          SELECT * FROM zj1 LEFT JOIN fb1 ON zj1.`protype_id`=fb1.`protype_id`;
          /*右外连接*/
          SELECT * FROM zj1 RIGHT JOIN fb1 ON zj1.`protype_id`=fb1.`protype_id`;
          /*找出索尼4g手机所属类别*/
          SELECT zj1.protype_name FROM fb1 INNER JOIN zj1 ON zj1.`protype_id`=fb1.`protype_id`
          WHERE protype_name LIKE '%索尼%' AND protype_name LIKE '%4G%';
           /*查找属于手机数码的商品*/
          SELECT *FROM fb1 INNER JOIN zj1 ON zj1.`protype_id`=fb1.`protype_id`
          WHERE protype_name='手机数码';
          /*子查询*/
           /*查找属于手机数码的商品*/
          SELECT * FROM fb1 WHERE protype_id=(
          SELECT protype_id FROM zj1 
          WHERE protype_name='手机数码'
          )
          /*找出索尼4g手机所属类别 (=可以用in)*/
          SELECT * FROM zj1 WHERE protype_id=(
          SELECT protype_id FROM fb1
          WHERE pro_name LIKE '%索尼%' AND pro_name LIKE '%4G%'
          )
          /*    */
          SELECT pro_name FROM fb1 WHERE protype_id IN (1,2);
          
          /*联合查询*/
          SELECT protype_id,protype_name FROM zj1
          UNION
          SELECT pro_id,pro_name FROM fb1;
  • 相关阅读:
    spider-抓取页面内容
    Zabbix监控
    时间戳转换
    计算机脱域
    查询指定时间内审核失败的事件日志
    spider-抓取网页内容(Beautiful soup)
    Queue
    spider-抓取网页内容
    MyEclipse+Tomcat配置
    Gradle Java Web应用程序并在Tomcat上运行
  • 原文地址:https://www.cnblogs.com/hankai2735/p/9008986.html
Copyright © 2011-2022 走看看