日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MYSQL——《数据库》实验壹——熟悉数据库管理工具、数据库和表的基本操作

發布時間:2025/3/15 数据库 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MYSQL——《数据库》实验壹——熟悉数据库管理工具、数据库和表的基本操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、實驗目的:

  • 了解SQL Server或MYSQL數據庫的基本知識;
  • 熟悉SQL Server或MYSQL環境和系統結構;
  • 掌握圖形化交互工具的基本操作,學會數據庫及表的創建與管理;
  • 理解和掌握SQL語言: 能夠熟練地使用create/alter/drop語句創建、修改和刪除數據庫、基本表;能夠使用insert語句;理解和掌握基本的Select語句。
  • 二、實驗要求:
    理解和掌握create, alter, drop, insert, 以及select語句的語法,特別是各種參數的具體含義和使用方法;使用SQL語句創建、修改和刪除數據庫和基本表。掌握SQL語句常見語法錯誤的調試方法。

    三、實驗重點和難點:
    重點:創建數據庫、基本表,進行基本的查詢操作。
    難點:Select語句where部分使用的多類運算符。

    四、實驗內容:(SQL Server 或MYSQL數據庫二選一,或同步比較學習)

  • 建立自己的MySQL實驗環境,掌握第三方管理工具連接本地和遠程數據庫服務器的配置過程與方法;
  • 建立與課程相關的Movies數據庫;(注意:如果SQL中不接受中文,可以將相關屬性值改成相應的英文。在SQL代碼中注意要使用英文的標點符號。下同,不再重復。)
  • 自主實踐課堂上講解過的SQL樣例;
  • 建立銷售表,字段如下:
    產品名稱 varchar(20)
    數量 int not null
    是否贈品 bit not null
    其中:字段是否贈品的值為1,表示該條記錄的產品是贈品,否則,表示是銷售。
  • 在銷售表中輸入如下記錄:
    可口可樂,100,1
    石榴,20,0
    可口可樂,50,0
    百事可樂,120,1
    百事可樂,30,0
  • 查詢每個產品的贈送和銷售情況統計,要求按如下方式顯示:
    產品名稱 銷售數量 贈送數量
    可口可樂 50 100
    石榴 20 0
    百事可樂 30 120
  • 建立一個表,表結構任意,但至少應有3個字段,現在需要你在這個表內插入1000000條記錄(數據任意),盡可能快的完成,看看你的用時。
  • 建立一個數據庫,將給的EXCEL文件導入這個數據庫,每一個sheet都構建一個表(如果有臟數據,就剔除),提示:可以使用NAVICAT等工具的導入功能,也可以使用其他工具。
  • 五、實驗步驟與結果:
    1)

    2)
    建立查詢,輸入代碼如下:

    USE my_movie_database;DROP TABLE IF EXISTS studio; CREATE TABLE studio (name char(30) NOT NULL DEFAULT '',address varchar(100) DEFAULT NULL,presC int(11) DEFAULT NULL,PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO studio VALUES ('MGM','MGM Boulevard',123),('Fox','Fox Boulevard',199),('Disney','Disney Boulevard',222),('USA Entertainm','USA Entertainm Boulevard',333),('Paramount','Paramount Boulevard',555);DROP TABLE IF EXISTS movieexec; CREATE TABLE movieexec (name char(30) DEFAULT NULL,address varchar(100) DEFAULT NULL,cert int(11) NOT NULL DEFAULT '0',netWorth int(11) DEFAULT NULL,PRIMARY KEY (`cert`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO movieexec VALUES ('Calvin Coolidge','Fast Lane',123,20000000),('Merv Griffin','Riot Rd.',199,112000000),('Stephen Spielberg','123 ET road',222,100000000),('Ted Turner','Turner Av.',333,125000000),('George Lucas','Oak Rd.',555,200000000),('Jane Fonda','Turner Av.',567,200000000);DROP TABLE IF EXISTS movies; CREATE TABLE movies (title char(100) NOT NULL DEFAULT '',year int(11) NOT NULL DEFAULT '0',length int(11) DEFAULT NULL,movieType char(10) DEFAULT NULL,studioName char(30) DEFAULT NULL,producerC int(11) DEFAULT NULL,PRIMARY KEY (title,year) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO movies VALUES ('Empire Strikes Back',1980,111,'drama','Fox',555),('Gone With the Wind',1938,238,'drama','MGM',123),('Logan\'s run',1977,120,'drama','MGM',888),('Pretty Woman',1990,119,'drama','Disney',999),('Star Trek',1979,132,'sciFic','Paramount',444),('Star Trek: Nemesis',2002,116,'sciFic','Paramount',321),('Star Wars',1977,124,'sciFic','Fox',555),('Terms of Endearment',1983,132,'drama','MGM',123),('The Man Who Wasn\'t There',2001,116,'comedy','USA Entertainm.',777),('The Usual Suspects',1995,106,'drama','MGM',999); INSERT INTO movies(title,year) VALUES ('Star Wars',2017); insert into movies(title,year,movieType,studioName) values('Star Wars',2015,'sciFic','FOX');DROP TABLE IF EXISTS moviestar; CREATE TABLE moviestar (name char(30) NOT NULL DEFAULT '',address varchar(255) DEFAULT NULL,gender char(1) DEFAULT NULL,birthdate date DEFAULT NULL,PRIMARY KEY (name) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO moviestar VALUES ('Alec Baldwin','Baldwin Av.','M','1977-06-07'),('Debra Winger','Baldwin Av.','F','1978-05-06'),('Harrison Ford','Prefect Rd.','M','1955-05-05'),('Jack Nicholson','X path','M','1949-05-05'),('Jane Fonda','Turner Av.','F','1977-07-07');DROP TABLE IF EXISTS starsin; CREATE TABLE starsin (movieTitle char(100) NOT NULL DEFAULT '',movieYear int(11) NOT NULL DEFAULT '0',starName char(30) NOT NULL DEFAULT '',PRIMARY KEY (movieTitle,movieYear,starName) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO starsin VALUES ('Empire Strikes Back',1980,'Harrison Ford'),('Star Wars',1977,'Carrie Fisher'),('Star Wars',1977,'Harrison Ford'),('Star Wars',1977,'Mark Hamill'),('Star Wars',2017,'Carrie Fisher'),('Terms of Endearment',1983,'Debra Winger'),('Terms of Endearment',1983,'Jack Nicholson'),('The Usual Suspects',1995,'Kevin Spacey');


    3)


    4)
    輸入代碼如下:

    CREATE TABLE `銷售表` (`產品名稱` varchar(20) NULL,`數量` int(11) NOT NULL,`是否贈品` bit(1) NOT NULL );


    5)
    輸入代碼如下:

    INSERT INTO `銷售表`(`產品名稱`, `數量`, `是否贈品`) VALUES ('可口可樂', 100, b'1'); INSERT INTO `銷售表`(`產品名稱`, `數量`, `是否贈品`) VALUES ('石榴', 20, b'0'); INSERT INTO `銷售表`(`產品名稱`, `數量`, `是否贈品`) VALUES ('可口可樂', 50, b'0'); INSERT INTO `銷售表`(`產品名稱`, `數量`, `是否贈品`) VALUES ('百事可樂', 120, b'1'); INSERT INTO `銷售表`(`產品名稱`, `數量`, `是否贈品`) VALUES ('百事可樂', 30, b'0');


    6)
    輸入代碼如下:

    SELECTt.產品名稱,COALESCE ( a.銷售數量, 0 ) AS 銷售數量,COALESCE ( b.贈送數量, 0 ) AS 贈送數量 FROM( SELECT DISTINCT 產品名稱 FROM 銷售表 ) tLEFT JOIN ( SELECT 產品名稱, COALESCE ( SUM( 數量 ), 0 ) AS 銷售數量 FROM 銷售表 WHERE 是否贈品 = 0 GROUP BY 產品名稱 ) a ON t.產品名稱 = a.產品名稱LEFT JOIN ( SELECT 產品名稱, COALESCE ( SUM( 數量 ), 0 ) AS 贈送數量 FROM 銷售表 WHERE 是否贈品 = 1 GROUP BY 產品名稱 ) b ON t.產品名稱 = b.產品名稱;


    7)
    建立表如下:


    輸入代碼如下:

    //初始化1000000條數據List<Map<String,String>> data = createList(1000000);Long startTime = System.currentTimeMillis();String addSql = "insert into seven (first, second, third) VALUES(?,?,?)";jdbcTemplate.batchUpdate(addSql, new BatchPreparedStatementSetter() {@Overridepublic void setValues(PreparedStatement ps, int i) throws SQLException {ps.setString(1, data.get(i).get("first"));ps.setString(2, data.get(i).get("second"));ps.setString(3, data.get(i).get("third"));}@Overridepublic int getBatchSize() {return data.size();}});Long endTime = System.currentTimeMillis();System.out.println("插入"+data.size()+"條數據用時:" + (endTime - startTime) + "毫秒");System.out.println("插入"+data.size()+"條數據用時:" + (endTime - startTime) / 1000 + "秒");

    實際耗時14.632s
    8)





    六、實驗心得:

  • 初步了解mysql數據庫;
  • 初步上手navicat軟件;
  • 初步掌握圖形化交互工具,學會數據庫、基本表的創建、查詢、導入;
  • 初步掌握SQL語言,能夠使用語句創建、修改、選擇和刪除數據庫、基本表;
  • 總結

    以上是生活随笔為你收集整理的MYSQL——《数据库》实验壹——熟悉数据库管理工具、数据库和表的基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。