认识实习-MySQL数据库

作者: 柳厌之 | 来源:发表于2018-07-10 17:18 被阅读157次
    1. 基础的SQL语句
      1.1. 插入语句
      数据的增加
      insert into 表名(列名列表) values (列值列表)
    insert into tb_head_line
    (line_name,line_link,line_img,priority,enable_status,create_time,last_edit_time)
    values('小米8','http://www.baidu.com','image/xiaomi8.jpg',5,1,now(),now()); 
    insert into tb_head_line(line_name,line_link,line_img,priority,enable_status)
    values('苹果6','http://www.baidu.com','image/xiaomi8.jpg',6,1); 
    

    1.2. 删除数据库中的数据
    数据库中数据的删除(没有被从表中的数据引用)
    delete from 表名 where 条件

    ##删除主键为17的数据
    delete from tb_head_line where line_id =17;
    ##多条件删除 删除 名称是小米的  或者  连接是百度
    delete from tb_head_line 
    where line_name like '%小米%' or line_link like '%baidu%'
    ##删除已被从表引用的数据(删除区域表中的数据)
    delete from tb_area where area_id =2;
    insert into tb_area (area_name,priority) values('学府路',3);
    

    1.3. 修改表中的数据
    update 表名 set 列名1=新列值,列名2=新列值 ,... where 条件

    ##更新 把名称等于4的连接地址修改为www.sina.com
    ##,并设置为不可用,并修改最后的修改时间,把名称修改为奥克斯空调
    update tb_head_line set line_name='奥克斯空调',enable_status='0',
    line_link="http:www.sina.com",last_edit_time=now()
    where line_name = '4'
    

    1.4. 查询的方法
    1.4.1. 单表查询
    select * from 表名 效率低
    select 列名列表 from 表名 where 条件

    ##查询语句  查看 '奥克斯空调'的详细信息
    select * from tb_head_line where line_name='奥克斯空调';
    

    1.4.2. 多表查询
    1.4.2.1. 条件子查询
    Select 列名 from 表名 where 列名 = (select 列名 from 表名 where 条件)

    ##查看'暴漫奶茶店'下有那些产品类别
    select * from tb_product_category where shop_id = (
    select  shop_id from tb_shop where shop_name='暴漫奶茶店')
    

    1.4.2.2. 多个表的结果查询
    同时查询多个表的数据
    Select 表一.列1,表一.列2,...,表二.列1,表二.列2 from 表一,表二 where 表一和表二关系 +其它条件

     ##查询商品类型以及对应的店铺信息
    select tpc.product_category_name ,tp.shop_name ,tp.shop_desc 
    from tb_product_category tpc, tb_shop tp where tpc.shop_id = tp.shop_id;
    
    1. 作业
    /*
    上机作业:
    在tb_area 表中插入一条记录
    在tb_product 表中插入一条记录
    修改tb_product中的记录如下
    修改编号是6号的产品,名称是农夫山泉矿泉水,默认价格5元
    修改 彪哥大排档 店的地址为 :海淀区学府路科技大学北门
    删除:由于’奶茶来了’店铺经营不善,需要关闭
    查找 电话为:1211334565的店铺信息 
    电话为:1211334565的店铺主人信息
    电话为:1211334565的店铺信息以及店铺经营的产品信息 
    创建JAVA程序,利用JDBC技术,读取数据库中 东苑路附近的商家的信息
    */
    
    ##Navicat for MySQL 中的查询编辑器
    ##在tb_area 表中插入一条记录
    INSERT INTO tb_area(area_id, area_name, create_time, last_edit_time) 
    VALUES (5,'机电楼',NOW(),NOW());
    ##在tb_product 表中插入一条记录
    INSERT INTO tb_product(product_id, product_name, product_desc, create_time, last_edit_time, shop_id) 
    VALUES (13,'易寒牌薯片','相当好吃',NOW(),NOW(), 28);
    ##修改tb_product中编号是6号的产品,名称是农夫山泉矿泉水,默认价格5元 
    UPDATE tb_product set product_name = '农夫山泉矿泉水', normal_price = '5' WHERE product_id = 6;
    ##修改tb_shop中 彪哥大排档 店的地址为 :海淀区学府路科技大学北门
    UPDATE tb_shop set shop_addr = '海淀区学府路科技大学北门' WHERE shop_name = '彪哥大排档';
    ##删除:由于’奶茶来了’店铺经营不善,需要关闭
    DELETE FROM tb_shop WHERE shop_name = '奶茶来了';
    ##查找 电话为:1211334565的店铺信息 
    SELECT * FROM tb_shop WHERE phone = '1211334565';
    ##查找 电话为:1211334565的店铺主人信息
    SELECT * FROM tb_person_info WHERE user_id = 
    (SELECT owner_id FROM tb_shop WHERE phone = '1211334565');
    ##查找 电话为:1211334565的店铺信息以及店铺经营的产品信息 
    SELECT ts.shop_name, tp.product_name, tp.product_desc, tp.normal_price FROM tb_shop ts, tb_product tp WHERE ts.phone = '1211334565';
    ##查找 读取数据库中 东苑路附近的商家的信息
    SELECT ts.shop_name, ts.shop_desc, ts.shop_addr, ts.phone FROM tb_shop ts WHERE ts.area_id = 
    (SELECT area_id FROM tb_area WHERE area_name = '东苑');
    

    结果:


    在Navicat中:东苑路附近的商家的信息
    //eclipse-jee中的代码
    package com.oracle.test;
    import java.sql.*;
    
    public class JdbcTest {
        public static void main(String[] args) {
            try {
                //1 load
                Class.forName("com.mysql.jdbc.Driver");
                //2 acquire connection
                String url = "jdbc:mysql://localhost:3306/o2o?useUnicode=true&characterEncoding=utf8";
                String username = "root";
                String password = "123456";
                Connection conn = DriverManager.getConnection(url, username, password);
                //3 acquire sql
                String sqlStr = " SELECT ts.shop_name, ts.shop_desc, ts.shop_addr, ts.phone FROM tb_shop ts WHERE ts.area_id = (SELECT area_id FROM tb_area WHERE area_name = '东苑')";
                PreparedStatement pstmt = conn.prepareStatement(sqlStr);
                //4 execute 
                ResultSet rst = pstmt.executeQuery();
                //5 manage
                System.out.println("店名\t店描述\t店地址\t店电话");
                while(rst.next()) {
                    String name = rst.getString("shop_name");
                    String desc = rst.getString("shop_desc");
                    String addr = rst.getString("shop_addr");
                    String phone = rst.getString("phone");
                    System.out.println(name + "\t" + desc + "\t" + addr + "\t" + phone);
                }
                // close
                rst.close();
                pstmt.close();
                conn.close();
            }catch(Exception ex) {
                ex.printStackTrace();
            }
        }
    }
    
    

    结果:


    利用JDBC技术,读取数据库中 东苑路附近的商家的信息
    1. 讲师的演示代码
    package com.oracle.test;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.util.Scanner;
    
    public class JdbcAddTest {
    
        public static void main(String[] args) {
            try{
                 
                //加载驱动
                Class.forName("com.mysql.jdbc.Driver");
                //获取连接  ?useUnicode=true&characterEncoding=utf8
                String url="jdbc:mysql://localhost:3306/o2o";
                String username = "root";
                String password="123456";
                Connection conn = DriverManager.getConnection(url,username,password);
                //获取执行对象
                String  sqlStr="insert into tb_person_info(name,profile_img,email,gender,enable_status,user_type,create_time,last_edit_time)values(?,?,?,'1','1','1',now(),now())";
                PreparedStatement pstmt = conn.prepareStatement(sqlStr);
                Scanner scanner = new Scanner(System.in);
                System.out.println("请输入姓名:");
                String xm = scanner.next();
                System.out.println("请输入头型:");
                String tx = scanner.next();
                System.out.println("请输入邮箱:");
                String yx = scanner.next();
                pstmt.setString(1, xm);  //设置第一个问号的值
                pstmt.setString(2, tx);  //设置第二个问号的值
                pstmt.setString(3, yx);  //设置第三个问号的值
                //执行
                int num = pstmt.executeUpdate();
                System.out.println("添加的结果:" + num);
                //关闭
                pstmt.close();
                conn.close();
                
            }catch(Exception ex){
                ex.printStackTrace();
            }
        }
    
    }
    

    相关文章

      网友评论

        本文标题:认识实习-MySQL数据库

        本文链接:https://www.haomeiwen.com/subject/ahkqpftx.html