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

歡迎訪問 生活随笔!

生活随笔

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

数据库

datetime插入数据_SQL项目_(一)数据源准备

發布時間:2024/10/6 数据库 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 datetime插入数据_SQL项目_(一)数据源准备 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 1 數據集查看(EmEditor Pro64_18.6.6,查看數據樣張)

打開EmEditor,拖入需要查看的csv數據文件,夠用點擊停止,切換成csv現實格式;收集分隔符信息
  • 2 導入
  • 2.1 Navicat導入

表對象,右鍵,或者上方點擊,可以顯示導入向導

選擇源文件,以及源文件的字符編碼集

源文件匹配的記錄分隔符,字段分隔符,文本限定符;使用默認,嘗試導入,如果導入失敗,需要返回頭來,調試;正確的分隔符,不僅適用于可視化導入,也對應于腳本批量導入的設置;

注意:字段行設置為1,第一個數據行設置為1,暫時測試一下;

注意,默認字段,和原始說明之間的差異,直接修改,也可以后續修改

預覽:第一行(字段行),與第二行(數據起始行),重疊了,跟數據起始行設置為1有關;

當小樣導入無異常時,可以刪除表格,重新運行向導,批量導入大數據,性能較低,耗時較長;

  • 2.2 腳本導入
-- 創建數據庫 drop database if EXISTS UserBehavior; CREATE DATABASE IF NOT EXISTS UserBehavior CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; -- 引用數據庫 use UserBehavior;-- 創建表 drop table if EXISTS UserBehavior; create table UserBehavior( ID int not null AUTO_INCREMENT, 用戶ID varchar(255), 商品ID varchar(255), 商品類目ID varchar(255), 行為類型 varchar(255),-- 包含(商品詳情頁pv,buy商品購買,cart將商品加入購物車,fav收藏商品) 時間戳 varchar(255), -- 時間戳,設置成數字型,會報錯ERROR 1265 (01000): Data truncated for column '時間戳' at row 1 primary key(ID) )AUTO_INCREMENT = 1; -- 設定自增列ID從1開始自增-- 檢查mysqld導入導出功能設置 /* 報錯:[Err] 1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 原因: 安裝MySQL的時候限制了導入與導出的目錄權限只能在規定的目錄下才能導入導出 修正: 1:查找my.ini文件中secure-file-priv選項對應的目標文件(導入導出)目錄,不是my-default.ini2: 修改選項,需要重啟mysql服務器;或者將.csv文件直接拷貝到此目錄下 */ select @@basedir; -- 定位mysql安裝文件夾 C:Program FilesMySQLMySQL Server 5.7,my-default.ini select @@datadir; -- 定位mysqlProgramData目錄文件夾 C:ProgramDataMySQLMySQL Server 5.7Data,mysql.ini show variables like '%secure%'; -- 查看my.ini文件中 secure_file_priv = C:ProgramDataMySQLMySQL Server 5.7Uploads-- 批量導入數據(csv文件) /* CR:Carriage Return,對應ASCII中轉義字符r,表示回車 LF:Linefeed,對應ASCII中轉義字符n,表示換行 CRLF:Carriage Return & Linefeed,rn,表示回車并換行 眾所周知,Windows操作系統采用兩個字符來進行換行,即CRLF; Unix/Linux/Mac OS X操作系統采用單個字符LF來進行換行; 另外,MacIntosh操作系統(即早期的Mac操作系統)采用單個字符CR來進行換行。需要借助Navicat 客戶端的導入向導,選擇10行,精準的定位數據行分隔符,否則可能只能成功導入1行數據; *//* 空值處理 字段中的空值 null 需要使用 N 表示, 如果用空字符串表示,那么根據不同的數據類型,MySQL 處理也各異數據庫字段如果是varchar/char,插入空時,load data 默認導入 空字符串 數據庫字段如果是decimal,插入空時,load data 默認導入 0.00000000 數據庫字段如果是datetime,插入空時,load data 默認導入 0000-00-00 00:00:00 */ -- 受影響的行: 100150807 -- 時間: 954.464s 約 15分鐘 load data infile 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/UserBehavior.csv' into table UserBehavior -- 設定文件,目標表格,全路徑必須用/不是 character set utf8 -- 設定字符集 fields terminated by ',' -- 設置字段分隔符 enclosed by '"' -- 設置文本限定符 lines terminated by 'n' -- 設置數據行分隔符,需要借助Navicat 客戶端的導入向導,驗證 (用戶ID,商品ID,商品類目ID,行為類型,時間戳); -- 設置插入數值的字段,必須注意順序,類型的匹配

數據驗證

第一列,是自增列,后續5列為數據源值,沒有亂碼,正確
  • 3 腳本導出
/* 空值處理 字段中的空值 null 需要使用 N 表示, 如果用空字符串表示,那么根據不同的數據類型,MySQL 處理也各異數據庫字段如果是varchar/char,插入空時,load data 默認導入 空字符串 數據庫字段如果是decimal,插入空時,load data 默認導入 0.00000000 數據庫字段如果是datetime,插入空時,load data 默認導入 0000-00-00 00:00:00 */-- 檢查mysqld導入導出功能設置 /* 報錯:[Err] 1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 原因: 安裝MySQL的時候限制了導入與導出的目錄權限只能在規定的目錄下才能導入導出 修正: 1:查找my.ini文件中secure-file-priv選項對應的目標文件(導入導出)目錄,不是my-default.ini2: 修改選項,需要重啟mysql服務器;或者將.csv文件直接拷貝到此目錄下 */ select @@basedir; -- 定位mysql安裝文件夾 C:Program FilesMySQLMySQL Server 5.7,my-default.ini select @@datadir; -- 定位mysqlProgramData目錄文件夾 C:ProgramDataMySQLMySQL Server 5.7Data,mysql.ini show variables like '%secure%'; -- 查看my.ini文件中 secure_file_priv = C:ProgramDataMySQLMySQL Server 5.7Uploads-- 批量導出數據(csv文件) -- 受影響的行: 100150807 -- 時間: 189.626s ~ 3分鐘 -- 目標文件 5.18 GB (5,564,252,503 字節)select * from UserBehavior into outfile 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/UserBehavior2.csv' -- 設定文件,目標表格,必須全路徑 character set utf8 -- 設定字符集 fields terminated by ',' -- 設置字段分隔符 optionally enclosed by '"' -- 設置文本限定符 lines terminated by 'n'; -- 設置數據行分隔符

總結

以上是生活随笔為你收集整理的datetime插入数据_SQL项目_(一)数据源准备的全部內容,希望文章能夠幫你解決所遇到的問題。

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