国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门

聚集網(jujiwang.com) - 收錄免費分類目錄信息軟文發布網址提交
免費加入

MySQL 中的時間戳操作:使用函數、查詢和示例進行詳細說明 (mysql中DISTINCT的用法)

文章編號:10750時間:2024-09-29人氣:


mysql中DISTINCT的用法

簡介

時間戳是表示特定時間的數字,通常以 Unix 時間戳的形式存儲,它從 1970 年 1 月 1 日午夜開始以秒為單位計數。

在 MySQL 中,時間戳是使用 TIMESTAMP DATETIME 數據類型存儲的。這些數據類型允許您存儲日期、時間和時區信息。

時間戳函數

MySQL 提供了多種函數來處理時間戳,包括:

  • NOW() :返回當前時間戳。
  • CURDATE() :返回當前日期。
  • CURTIME() :返回當前時間。
  • TIMESTAMPADD(unit, interval, timestamp) :將指定的時間間隔添加到時間戳中。
  • TIMESTAMPDIFF(unit, timestamp1, timestamp2) :計算兩個時間戳之間的差異。

示例


SELECT NOW(); -- 獲取當前時間戳SELECT CURDATE(); -- 獲取當前日期SELECT CURTIME(); -- 獲取當前時間SELECT TIMESTAMPADD(HOUR, 1, NOW()); -- 將 1 小時添加到當前時間戳SELECT TIMESTAMPDIFF(DAY, '2023-01-01', '2023-02-01'); -- 計算兩個日期之間的天數

時間戳查詢

使用函數

您還可以使用時間戳在 MySQL 查詢中過濾和排序數據。例如:


SELECT  FROM orders WHERE order_date > NOW() - INTERVAL 30 DAY; -- 獲取過去 30 天內的所有訂單SELECT  FROM users ORDER BY last_login_date DESC; -- 按用戶最后登錄日期降序排序

DISTINCT 用法

DISTINCT 關鍵字可用于從查詢結果中刪除重復的行。在處理時間戳數據時,這非常有用,因為它可以幫助您避免重復的時間戳。

示例


SELECT DISTINCT order_date FROM orders; -- 獲取所有不同的訂單日期SELECT DISTINCT last_login_date FROM users; -- 獲取所有不同的用戶最后登錄日期

結論

MySQL

時間戳操作是 MySQL 中一項重要任務。通過使用函數和查詢,您可以輕松處理時間戳數據,并根據時間范圍過濾和排序數據。 DISTINCT 關鍵字還可以幫助您從查詢結果中刪除重復的行。


探究MySQL數據庫中的logs表詳解mysql中logs表

探究MySQL數據庫中的logs表詳解MySQL是一種當今最流行的關系型數據庫管理系統,用于存儲和管理數據。 在MySQL中,表是一個核心的概念,可以理解為一個以二維表格形式組織數據的集合。 在這些表中,logs表是一個特殊的表,它用于存儲系統中產生的所有事件日志。 此外,logs表還是MySQL中一個相當重要的表,因為它包含了系統中的所有操作記錄和事件日志,這些信息是系統管理者進行系統維護和故障排查的重要依據。 那么,如何使用MySQL來創建和管理logs表呢?這里我們先來了解一下logs表的基本結構和屬性,然后再通過一些示例來演示如何對其進行操作。 logs表的基本結構和屬性logs表一般包含以下基本屬性:id、user_id、user_ip、event、data和created。 其中,id是logs表的唯一標識符,其數據類型為整型,并且通過主鍵約束來保證數據的唯一性。 user_id是用戶或者客戶端的標識符,user_ip是用戶或者客戶端的網絡地址,event是事件類型的描述,data是事件數據的附加說明信息,created則是事件發生的時間戳。 此外,在實際應用中,logs表還可以根據具體需求添加其他屬性,如event_type、operation_type、module_name等。 創建logs表在MySQL中,使用CREATE TABLE語句可以創建新的表。 下面是一個創建logs表的示例代碼:CREATE TABLE `logs` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘主鍵’,`user_id` int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘用戶ID’,`user_ip` varchar(20) NOT NULL DEFAULT ” COMMENT ‘用戶IP’,`event` varchar(1000) NOT NULL DEFAULT ” COMMENT ‘事件’,`data` text COMMENT ‘數據’,`created` int(10) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘時間’,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’日志表’;通過該語句,我們可以創建一個名為logs的新表,該表包含上述基本屬性,并且使用InnoDB引擎作為存儲引擎,并且使用utf8mb4字符集。 在創建表時,我們還可以設置表的注釋,以方便后續的管理和維護。 插入數據在創建logs表之后,我們就可以開始將數據插入表中以記錄日志信息。 在MySQL中,一般使用INSERT INTO語句來向表中插入數據,下面是一個常用的插入數據的示例:INSERT INTO `logs` (`user_id`, `user_ip`, `event`, `data`, `created`) VALUES (‘123’, ‘192.168.0.1’, ‘用戶登錄’, ‘{“username”: “test”, “status”: “success”}’, UNIX_TIMESTAMP());通過該語句,我們可以向logs表中插入一條用戶登錄的日志信息,該信息包括用戶ID、用戶IP、事件描述、事件數據和時間戳。 需要注意的是,其中事件數據是JSON格式的字符串,在使用時需要進行合理轉換。 查詢數據在記錄了大量的日志信息之后,我們需要從logs表中提取出來一些有用的信息用于分析和決策。 在MySQL中,通常使用SELECT語句來查詢表中的數據。 下面是一個查詢logs表中所有事件類型的示例:SELECT DISTINCT `event` FROM `logs` ORDER BY `event` ASC;通過該語句,我們可以查詢logs表中所有事件類型的列表,并按照事件類型的字母順序排序。 需要注意的是,該查詢語句還使用了DISTINCT關鍵字來去除重復的事件類型,以便于后續的分析處理。 刪除數據在一些特殊情況下,我們需要從logs表中刪除一些已經記錄的日志信息。 在MySQL中,一般使用DELETE語句來刪除表中的數據。 下面是一個刪除指定事件類型的示例:DELETE FROM `logs` WHERE `event`=’用戶登錄’;通過該語句,我們可以刪除logs表中所有事件類型為“用戶登錄”的日志信息。 需要注意的是,該操作是不可逆的,可能會導致數據的丟失,因此在進行刪除操作時一定要謹慎操作。 總結在今天的文章中,我們詳細探討了MySQL數據庫中的logs表的創建、插入、查詢和刪除操作。 通過深入了解logs表的基本結構和屬性,我們可以更好地利用MySQL來管理和維護系統的日志信息。 相信這篇文章能夠對想要深入學習MySQL和系統管理的讀者有一些幫助。

sql查詢兩個字段相同的記錄

兩種方法,一種是查詢重復的數據,只查詢重復記錄,不管其余信息,如ID什么的:

MySQL入門門門?[第一篇](附Docker使用教程)

MySQL是最流行的關系型數據庫

先明確兩個概念

數據庫的定義:數據庫是“按照數據結構來組織、存儲和管理數據的倉庫”。 是一個長期存儲在計算機內的、有組織的、可共享的、統一管理的大量數據的集合。 俗稱Database(DB)

數據庫管理軟件:對數據庫進行管理和控制,包括了增刪查改等操作,使用和維護數據庫。俗稱DataBase Management System(DBMS)

安裝配置啟動MySQL

可能是Windows,Mac,Linux,Dokcer等安裝方式,網上的安裝教程很多 為了快速啟動學習,演示Docker進行安裝(Docker本體安裝自行搜索),安裝后可以使用Navicat Premiun,SQLyog之流的圖形化工具去管理使用,出于學習目的,這里只使用命令行

docker?run?--name?testDbContainer?-v?~/testDb:/root?-e?MYSQL_ROOT_PASSWORD=?-e?MYSQL_DATABASE=testDb?-p?3306:3306?-d?mysql:8.0.29-oracle`

這段命令的作用是啟動一個MySQL的容器,如果當前沒有對應鏡像會先下載,然后啟動并輸出容器ID,3306是MySQL默認端口

--name [customName]指定了容器名字

-e MYSQL_ROOT_PASSWORD=[password]指定了root用戶的密碼

-e MYSQL_DATABASE=[testDb]創建一個名為testDb的數據庫

-p 3306:3306指定了宿主機(冒號前)與容器(冒號后)之間的端口映射,可以理解為訪問啟動Docker的機子(就是我們使用的機子,宿主機)的3306端口,就是訪問容器里的3306端口,容器可以理解為一臺完整的主機,可以選擇自己想使用的端口號

-d表示在后臺運行,MySQL:8.0.29-oracle指定了鏡像名及版本(此版本M1可用)

docker ps -a可以查看所有Docker的容器列表,包括沒有運行的容器

docker exec -it [容器Id/容器名稱] /bin/bash 這段命令中exec是execute的縮寫(執行)。 -i是交互模式。 -t是分配終端。 docker的options可以連起來縮寫(-it)。 目標容器可以用id或者名稱指定,id不一定要輸全,輸入到保證沒有其他容器id重復即可。 -v 宿主機路徑:容器路徑指定了數據卷的映射,簡單理解為我當前本機的目錄就是容器主機里的對應目錄,訪問容器內的目錄等同于訪問宿主機。 /bin/bash指要運行的命令。 總結就是通過exec命令對指定的容器執行腳本命令并提供一個可交互的終端,在bash中輸入exit可以退出終端交互

mysql -uroot -p 在終端中輸入命令,通過賬號密碼登陸mysql,出現下圖所示輸出就配置環境完畢,可以開始MySQL的學習之旅

開始入門

主要學習的是SQL語句 -- 結構化查詢語言(Structured Query Language) 這里要捋清楚數據庫-數據庫管理系統-SQL語言三者的關系

數據庫是存放數據的地方,一個文件(特定結構)就可以看成一個數據庫

數據庫管理系統是專門用來管理數據庫的軟件,可以增刪查改(CRUD)操作數據庫

SQL編寫后通過DBMS編譯執行來達到操作數據庫的目的 CRUD補充 C增(Create)R查(Retrieve,不是Read)U更新(Update)D刪除(Delete)

SQL的分類

數據庫查詢語言 DQL(Data Query Language)

數據庫操縱語言 MDL(Data Manipulation Language)

insert,delete,update

數據庫定義語言 DDL(Data Definition Language)

create,drop,alert

事務控制語言 TCL Transactional Control Language)

commit,rollback

數據控制語言 DCL(Data Control Language)

grant,revoke

查看使用的數據庫版本

select version();

查看當前所有數據庫

show database; (SQL語句遇分號才執行,且不分大小寫)會自帶4個默認的數據庫,下圖名為demo的數據庫就是通過docker命令啟動時創建的

使用數據庫

use [數據庫名]; 執行后會提示當前使用數據庫已發生改變

select database(); 查看當前使用的數據庫

創建數據庫

create database [數據庫名]; 執行后會輸出執行狀態,下圖表示創建成功

查看當前數據庫所有的表

show tables; 當前還沒有任何表,執行后只會輸出Empty set (0.00 sec)

創建表及插入數據在這之前需要先認識MySQL中的數據類型比較常見的類型類型描述char (255)定長字符,不管實際存儲值是多少,分配的存儲空間大小都是給定的字符長度空間,示例表示最多存儲255個字符,速度快varchar (255)可變長度字符,會動態的根據實際存儲數據分配存儲空間,示例表示最多存儲255個字符,速度稍慢,因為動態分配計算過程需要時間int最長11位,數字整數類型,等同于Java中的int,int(3)表示最大存儲三位數?text長文本數據bigint等同于Java中的longfloat等同于Java中的floatdouble等同于Java中的doubledate短日期類型,只有年月日datetime長日期類型,包含年月日時分秒毫秒clob字符大對象,最多可以存儲4G的字符串,clob是Character Large Object的縮寫blob二進制大對象,用于存流媒體數據,插入時要使用IO流,blob是Binary Large Object的縮寫

類型列表并不全,其他不常用的可以有需要用到時再查看,這里只做一個簡單認識

創建語法格式為create table [表名] (字段名 數據類型 [可選列約束], ...以此排列);

CREATE?TABLE?t_user?(????id?INT?PRIMARY?KEY?auto_increment,????username?VARCHAR?(?10?)?UNIQUE?);

上述語句表示創建一個名為t_user的表,其中有兩個字段,一個叫id到為int類型,作為該表的主鍵(非空且不能重復,后面約束會講),id的值自增1。 username字段則為可變長度字符,最多10個字符且不能有重名。

此時再執行show tables就能看見表名的輸出

查看表結構,創建后,可以通過desc [表名]查看表的結構(不是表數據),分別列出了每個字段的結構配置

在字段名后加上default跟上值,表示username字段當沒有傳值時,默認會使用配置的default值填充,sql中的字符串用單引號包裹,效果不演示了

create?table?t_user?(????id?int?primary?key?auto_increment,????username?varchar?(?10?)?default?test);insert 插入語法

語法結構為insert into [表名] (字段名) values(按順序對應字段的值);

這里有兩個要點,第一:字段名可以忽略,但忽略后,需要把所有的字段都一一填寫在values中,示例 insert into t_user values(1,JackMa);

第二:被自增約束的字段可以不傳入,values后面可以一次插入多行數據,只需要用逗號進行隔開,用小括號包裹另一行的值,示例 insert into t_user(username) values(aaa),(bbb),(ccc);

這段語句表示向t_user表插入三條數據 這里列舉一些使用特性

字段類型/函數/規則說明/特性mysql的日期格式%Y=年,%m=月,%d=日,%h=時,%i=分,%s=秒 注意大小寫now()獲取當前系統時間date_format(字段,格式)可以將日期轉換成特定格式,如查詢時可以將日期字段使用函數進行特定格式處理! str_to_date(日期字符串,格式)當插入時如果日期符合%Y-%m-%d(2000-01-01)格式,則可以不需要使用str_to_date函數,等價于這樣寫insert into t_user (username, age, gender,created_at) values(J12fs, 15, 1,str_to_date(2020-01-21,%Y-%m-%d));date,datetimeinsert時可以使用now()函數,date會取當天,datetime會取當前年月日時分秒,使用示例insert into t_user (username, age, gender,created_at) values(J13fs, 15, 1, now());update 更新/修改語法

語法結構為update [表名] set 字段名 = 值,字段名 = 值 where 條件 條件語句不加會導致整張表進行更新,使用時一定要加上條件,如where id = 1才進行更新這段語句表示將性別是男的數據都設置年齡為30歲

delete 刪除數據

語法結構為delete from [表名] where 條件 條件語句不加會導致整張表進行刪除,使用時一定要加上條件,如where id = 1才進行刪除這段語句表示將所有id=2的數據進行刪除

drop 刪除表

drop table [表名] 執行后整張表包括數據都會被刪除,可以加上一個判斷條件,drop table if exists t_user;,加入了if exists關鍵字,表名只有表存在情況下才會進行刪除表操作,沒有表時執行刪除會報錯

alert 修改表結構

盡量做到設計表時就處理好表結構,這里8說了

select 查詢數據(DQL重中之重)

在查詢前,需要有數據進行查詢,所以先執行下面這段SQL語句,先堆數據

drop?table?if?exists?t_user;create?table?t_user?(????id?int?primary?key?auto_increment,????username?varchar(10)?unique,????age?int(3),????gender?int(1)?comment?1表示男,0表示女);insert?into?t_user?(username,?age,?gender)?values(Jack,?15,?1),(Mike,?20,?1),(Susan,?22,?0);

插入數據有兩種方式

一種是手動的執行每一行sql(直接復制粘貼也會自動執行)

使用讀取SQL文件的方式,將上面SQL保存到sql后綴的文件文件當中,使用source [文件地址];的方式進行批量導入,由于使用了Docker,并且進行了數據卷映射-v ~/testDb:/root,這樣容器內也可以讀取宿主機的本地文件,所以按照我的配置,只要把文件保存到宿主機的~/testDb目錄下,再在容器中的bash執行source /root/就能批量執行sql文件中的語句

說了導入順便講講導出SQL的命令,先exit退出mysql回到bash中,輸入以下命令mysqldump [數據庫名稱] > [目標文件地址] -uroot -p,提示是說明文密碼不安全可以忽略,由于我進行了容器的數據卷映射,所以可以去宿主機查看導出文件查看被映射的宿主真機對應的文件夾,對應的文件便有了

select語句

最基本的查詢語法格式select 1個或多個字段名 from [表名],可以使用*通配符,表示查詢所有字段,執行時會被解析成id,username,age,gender。select和from是關鍵字,字段名和表名是標識符,查詢多個字段用逗號隔開,為了演示使用了*,實際中不建議使用,可讀性差,效率相對低

給字段設置別名

查詢時將字段轉成其他名字進行查看,as關鍵字可以省略,字段名與別名使用空格隔開即可

字段名可以進行數學計算

表達式會設置為默認別名,對應的列數據也進行了數學運算

條件查詢

select (一個或多個字段名) from [表名] where (一個或多個條件); | 操作符 | 操作符描述 | | --- | --- | | = | 等于,select * from t_user where id = 1; 查詢id等于1的數據 | | !=,<> | 不等于,兩種寫法等價,select * from t_user where id <> 1; 查詢id不等于1的數據 | | < | 小于,select * from t_user where id < 2; 查詢id小于2的數據| | = | 等于,select * from t_user where id > 1; 查詢id大于1的數據| | >= | 大于等于,select * from t_user where id >= 2; 查詢id大于等于2的數據| | <= | 小于等于,select * from t_user where id <= 1; 查詢id小于等于1的數據| | between ... and ... | 等價于 x >= 1 and x <= 2的寫法,需要遵循左小右大 select * from t_user where id between 1 and 2; 等規則,否則會報錯,查詢id>=1且id<=2的數據| | and | 并且,只有and左右兩邊的表達式都成立才算復合條件 select * from t_user where id = 1 and age > 10; 查詢id等于1且年齡大于10的數據| | or | 或者,or任意一邊的表達式成立都算復合條件 select * from t_user where id = 1 and age > 10; 查詢id等于1或者年齡大于10的數據| | in | 包含,可以替換or實現同等查詢效果 select * from t_user where username in (Jack, Mike); 查詢usernmae等于Jack或者等于Mike的數據| | like | 模糊查詢,支持%或者下劃線,百分號表示匹配任意個字符,下劃線表示匹配一個字符,想匹配的字符中就有下滑線時,需要使用`\進行轉義,select * from t_user where username like %c_k%;` 查詢usernmae包含c_k的數據,c_k的前面或者后面有沒有字符都可以

排序

select * from t_user order by 字段名 排序方式,字段名 排序方式排序可選的值有asc和desc,不寫排序方式默認為升序(等于同寫了asc)

多個字段排序只需要用逗號進行分割,規則為只有前面的排序結果為相等時,才會采用后面的排序條件,如order by age asc,id desc,age相等的話就會使用id進行排序

還可以根據查詢字段的序號進行排序,默認從1開始,order by后的字段名用序號替代,可讀性差且依賴字段,不建議使用

數據處理函數

又被稱為單行處理函數,一個輸入對應一個輸出,一些常用的函數列舉,可以用在select后的字段,也可以用在where條件后的字段 | 函數 | 語法作用 | | --- | --- | | lower | 將目標字段數據轉為小寫 select lower(username) from t_user; | | upper | 將目標字段數據轉為大寫 select lower(username) from t_user; | | substr | 將username是J開頭的數據查出,可以做到和like相同的功能 select * from t_user where substr(username,1,1) = J; 語法:substr(字段名,字符索引1開始,截取多少個不寫的則相當于截剩余部分) | | concat | 字符串拼接,將username字段的查詢結果轉為小寫開頭,結合了substr和lower select concat(lower(substr(username,1,1)),substr(username,2)) result from t_user; 語法格式:concat(字符,字符,...字符) | | length | 取字符長度 select length(username) len from t_user; | | trim | 如果字符前后有空格則去掉 select trim(username) len from t_user; | | round | 四舍五入(支持正負數),將查出數據的年齡進行個位數的四舍五入 select round(age,-1) from t_user; | | rand | 生成隨機數,生成0-100的隨機數,套了層round進行四舍五入 select round(rand() * 100) from t_user; | | ifnull | 空值處理,需要注意在所有數據庫中,涉及和null進行數學運算的結果都是null,當年齡為空時將結果集的值設為100,不會修改源數據 select ifnull(age,100) from t_user; | | | sql中的switch case語句,如果年齡為20的則年齡乘以2,否則原值輸出 select case age when 20 then age*2 else age end as result from t_user; |

分組函數

又稱為多行處理函數,輸入多行最終輸出一行,與單行處理函數相反

group by 分組

將表按照一個字段或多個字段進行分組group [字段1,字段2...], 在使用分組函數前需要先對表進行group by分組,當沒有寫group by時默認整張表為一組,分組函數也不能寫在where關鍵字后面,因為涉及到執行順序問題select sum(age) result,gender from t_user where id > 1 group by gender order by result desc; 這段SQL的執行順序為,先1 from,2 where,3 group by,4 select,5 order by,當執行到where時此時表還沒有進行分組,所以不能將分組函數應用到where 條件中,這段SQL會先將id>1的篩選掉,然后進行性別分組查詢,分組后將組里的年齡求和最后按照求和的結果降序排列

如果有group by語句,則select后面跟隨的只能是被排序的字段和分組函數

聯合字段使用逗號進行隔開即可,會將兩個字段合并起來當成一個字段進行分組

having 過濾

having需要配合group by,無法單獨使用,可以對分組后的數據進行篩選,having的執行時機在group by 之后,select之前 select sum(age) result,gender from t_user where id > 1 group by gender having result > 50 order by result desc; 直接在上面的示例加一句having result > 50,則數據會將年齡綜合低于50的篩選掉

distinct

將查詢結果相同的去重,distinct關鍵字只能出現在selec之后字段之前select distinct age from t_user; 這段代碼會將年齡相同的數據從結果集中篩選掉,如果有多個字段就表示聯合去重(多字段聯合起來相同才會去重)

第一篇先?到這 : )

原文:

mysql如何在select語句中對time類型的值進行比較?

SELECT * FROM table WHERE time_to_sec(time)

以上為比較方法。

在Oracle系統中,select語句的基本語法格式如下:

select [distinct] [*, column_name [alias], …] from tablename Where {conditions} group by {conditions} having order by expressions} [ASC/DESC];

查詢所有列:

select * from table;

查詢指定列:select colum1,colum2 from table;

取消重復行:select distinct deptno,job from emp;

使用表達式:可以在查詢列中使用表達式來連接字符串(使用 || 連接字符串)、改變顯示格式(如使用函數to_char)、計算顯示的數據(如使用+,-,×,/)等。

舉例: select * from emp; select ename ,sal,deptno from emp; select deptno from emp; select distinct deptno from emp;

MySQL——常見的一些列類型,表的增刪查改操作,表的復制

一、常見列類型(字段類型)1.數值類型 :1° 整型①tinyint [1 byte;有符號-128~127,無符號0~255] ②smallint [2 bytes;有符號-2^15~2^15 - 1,無符號0~2^16 - 1] ③mediumint [3 bytes;有符號-2^23~2^23 - 1,無符號0~2^24 - 1] ④int [4 bytes;有符號-2^31~2^31 - 1,無符號0~2^32 - 1] ⑤bigint [8 bytes;有符號-2^63~2^63 - 1,無符號0~2^64 - 1] PS : 1>Δ默認均為有符號數。 若想定義無符號數,需要在定義字段的類型時,在后面添加一個UNSIGNED。 2>以上范圍均為補碼可表示的范圍。 3>bit類型默認為無符號數,使用格式為“bit(M)”,其中M表示指定的位數,默認值是1,實際范圍是1~64;使用bit類型的字段,查詢時以二進制的形式顯示;當需要存入0或者1時,可以考慮使用bit(1)來節省空間。 2° 浮點型①float [single precision, 4 bytes] ②double [double precision, 8 bytes] ③decimal [M, D],M決定了數的長度(M最大65),D決定了其中的小數位數(D最大30);如果D是0,表示無小數點或分數部分;若D被省略,默認是0;若M被省略,默認是10;2.文本類型(字符串類型) : ①char [0~255(字符)],固定長度字符串(即分配的空間大小是固定的);這里的范圍就是字符數的范圍(不管中英文)。 ②varchar [0~ (0 ~ 2^16 - 1)(字節)],可變長度字符串(即分配的空間大小決定于實際的占用情況;這里的范圍是字節的范圍。 實際最大字節是 - 3 = ,因為要預留出1~3個字節用于存儲字段的大小,在不同編碼中最終對應的字符數不同。 ③text [0 ~ 2^16 - 1] ,更簡單,存放文本內容時可以考慮,可以將TEXT類型視為VARCHAR類型。 PS : TEXT類型沒有默認值。 ④longtext [0 ~ 2^32 - 1] PS : 實際使用時,括號中傳入的一定是字符數。 一般來講,使用varchar類型更好;但是,若某個字段已明確為定長,使用char類型可以提高查詢速度。 3.二進制類型 : ①blob [0 ~ 2^16 - 1] ②longblob [0 ~ 2^32 - 1] PS : 一般不會直接存儲二進制數據。 4.日期類型 : ①date [日期,年月日] ②time [時間,時分秒] ③datetime [年月份 時分秒 YYYY-MM-DD HH:mm:ss] ④timestamp [時間戳],可在定義時間戳類型的字段時加入以下約束——NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,其中,NOT NULL表示不為空;DEFAULT...表示默認是當前時間戳;ON UPDATE...表示以后每次修改記錄(INSERT, UPDATE),時間戳會自動更新為修改時的當前時間戳。 二、表的基本操作1.創建表 :1° 基本語法CREATE TABLE table_name ( field1 data_type, field2 data_type, field3 data_type... ) CHARACTER SET 字符集 COLLATE 校對規則 ENGINE 引擎; 其中—— ①field : 字段名,表示指定的列名。 ②data_type : 字段的數據類型,表示指定的列類型。 ③CHARACTER SET : 若不指定則為表所在數據庫的字符集。 ④COLLATE : 若不指定則為表所在數據庫的排序規則。 PS : 創建表時,要根據需保存的數據創建相應的列,并根據字段的數據類型定義相關的列類型。 2° 代碼演示現有三張一模一樣的表(table_0,table_1,table_2),表的具體內容如下圖所示 : 刪除表的代碼如下 : 2.刪除表 : 1° 基本語法①刪除整張表—— DROP TABLE table_name; ②只刪除表數據(不可使用WHERE)—— TRUNCATE TABLE table_name; ③只刪除數據(可使用WHERE)—— DELETE FROM table_name WHERE...;3.修改表 : 1° 基本語法①添加列—— ALTER TABLE table_name ADD column data_type [DEFAULT expr], ADD column data_type [DEFAULT expr]...; ②修改列的類型—— ALTER TABLE table_name MODIFY column data_type [DEFAULT expr], MODIFY column data_type [DEFAULT expr]...; ③修改列的名字—— ALTER TABLE table_name CHANGE 舊列名 新列名 data_type NOT NULL DEFAULT ; ④刪除列—— ALTER TABLE table_name DROP column, DROP column ...; PS : ①修改表名—— RENAME TABLE 舊表名 TO 新表名; ②修改表字符集—— ALTER TABLE 表名 CHARACTER SET 字符集; ③查看表的結構—— DESC 表名; (可以查看表的列的情況)4.復制表 : 1° 基本語法①表數據的復制—— INSERT INTO table_name(column_1, column_2...) SELECT (column_1, column_2...) FROM table_name; 該語句可以將查詢到的表中的指定數據復制到當前表中,亦可以通過該語句進行自我復制(蠕蟲復制)。 通過蠕蟲復制可以為表中添加海量數據,可用于SQL語句性能的測試。 ②表結構的復制—— CREATE TABLE table_name LIKE table2_name; PS : 表的去重—— 1>先創建一張臨時表,該表的表結構與要去重的表相同。 (使用LIKE); 2>通過DISTINCT關鍵字處理后,把要去重的表中的數據復制到臨時表一份; 3>清除掉要去重的表中的全部記錄; 4>將臨時表中的記錄復制到要去重的表一份; 5>刪除臨時表;2° 代碼演示演示Ⅰ—— 表的復制現有一張員工表如下 :要求建立一張新表demo,并將該員工表中的數據復制到新表demo中,代碼如下 : 運行效果 : 演示Ⅱ—— 表的去重對演示Ⅰ中的demo表進行多次蠕蟲復制,復制后,demo表中的記錄總數如下圖所示 :先對demo表進行去重操作,代碼如下 :運行效果 : (END-----------------------------------------------------------------------------;



相關標簽: 查詢和示例進行詳細說明、 中的時間戳操作使用函數、 mysql中DISTINCT的用法MySQL、

上一篇:MySQL時間戳最佳實踐確保準確性一致性和性

下一篇:MySQL時間戳高級指南從初學者到專家的深入

內容聲明:

1、本站收錄的內容來源于大數據收集,版權歸原網站所有!
2、本站收錄的內容若侵害到您的利益,請聯系我們進行刪除處理!
3、本站不接受違法信息,如您發現違法內容,請聯系我們進行舉報處理!
4、本文地址:http://m.sycxjdsbhs.com/article/206e487a8c5b8b636178.html,復制請保留版權鏈接!


溫馨小提示:在您的網站做上本站友情鏈接,訪問一次即可自動收錄并自動排在本站第一位!
隨機文章
可拓展的整站模板:滿足您的不斷增長的業務需求 (可拓展性)

可拓展的整站模板:滿足您的不斷增長的業務需求 (可拓展性)

隨著您業務的發展,您的網站也必須隨之發展,一個可拓展的整站模板可以為您提供所需的靈活性,以輕松滿足您的不斷增長的需求,可拓展性的好處無需重新設計,您可以根據需要添加或刪除頁面、功能和內容,而無需重新設計整個網站,易于維護,可拓展的模板通常使用模塊化設計,使您可以輕松更新和管理您的網站內容,提高效率,通過使用可拓展的模板,您可以節省在網...。

本站公告 2024-09-26 08:53:04

利用jssplit輕松分隔文本:面向開發者的簡便工具 (利用js語句實現九九乘法表)

利用jssplit輕松分隔文本:面向開發者的簡便工具 (利用js語句實現九九乘法表)

在文本處理中,分隔文本往往是必不可少的任務,傳統的字符串分割操作雖然簡單,但對于復雜的分隔需求來說卻顯得不夠靈活,而jssplit則是一款輕量級的JavaScript工具,為開發者提供了更加便捷和強大的文本分隔功能,jssplit的優點支持多種分隔符,除了常見的空格、逗號和分號外,還可以使用正則表達式指定任意復雜的分隔規則,分隔后輸出...。

本站公告 2024-09-15 08:37:00

SQL 索引策略:為不同 (sql server 索引策略)

SQL 索引策略:為不同 (sql server 索引策略)

<,考慮創建復合索引,同時使用多個列,以提高復雜查詢的性能,維護索引以確保它們是最新的,監控索引使用情況以識別需要調整或刪除的索引,結論索引是優化SQLServer數據庫性能的關鍵組件,通過選擇正確的索引策略,可以顯著減少查詢時間并提高應用程序的整體響應能力,遵循這些最佳實踐并定期監控和調整索引,可以確保數據庫保持最佳性能,...。

技術教程 2024-09-14 14:17:20

從初學者到專家:使用grep正則表達式進行全面文本分析 (從初學者到專家的典型工作任務包括)

從初學者到專家:使用grep正則表達式進行全面文本分析 (從初學者到專家的典型工作任務包括)

簡介grep是一種強大的文本搜索實用程序,它使用正則表達式,regex,來匹配和查找文本數據中的模式,正則表達式是一種強大的搜索語法,允許用戶指定要搜索的特定文本模式,本文將引導您從初學者到專家使用grep正則表達式進行全面文本分析,初學者典型工作任務,查找單個單詞或短語匹配文本行中的特定模式基本正則表達式,字面文本,使用引號將要匹配...。

最新資訊 2024-09-11 22:38:34

C 語言程序設計基礎:初學者友好,一步一步學習 (c語言程序設計)

C 語言程序設計基礎:初學者友好,一步一步學習 (c語言程序設計)

1.簡介C語言是一種通用高級編程語言,由丹尼斯·里奇,DennisRitchie,于1972年開發,它是一種結構化編程語言,廣泛用于開發操作系統、嵌入式系統和軟件應用程序,C語言以其高效、可移植性和靈活性而聞名,它被認為是學習編程語言的堅實基礎,因為它提供了對編程概念和計算機體系結構的深入理解,2.安裝和配置要在計算機上使用C語言,您...。

本站公告 2024-09-10 22:45:51

深入 Java 編程:利用小游戲源代碼提升你的技能 (深入java虛擬機)

深入 Java 編程:利用小游戲源代碼提升你的技能 (深入java虛擬機)

深入Java編程需要練習和實際經驗,雖然學習教程和閱讀文檔非常重要,但通過編寫實際項目可以讓你對語言和其功能有更深入的理解,小游戲是為學習編程提供了一個絕佳的平臺,它們相對較小,可以快速編寫和測試,同時涵蓋了廣泛的編程概念,包括,變量和數據類型流程控制面向對象編程圖形編程俄羅斯方塊,這是一個益智游戲,玩家控制從上方掉落的方塊,以形成水...。

最新資訊 2024-09-09 15:34:28

PHP開發人員的完整職業指南:入門、建立技能和尋找工作 (PHP開發人員面試問題)

PHP開發人員的完整職業指南:入門、建立技能和尋找工作 (PHP開發人員面試問題)

入門成為一名PHP開發人員的最佳方法是通過在線課程或認證,以下是一些推薦的資源,CourseraPHP特化課程UdemyPHP課程EdurekaPHP認證課程你還可以通過閱讀書籍、文章和博客文章來學習PHP,以下是一些有用的資源,PHP官方手冊PHP正確方法Laravel文檔建立技能成為一名成功的PHP開發人員需要具有以下方面的技能,...。

技術教程 2024-09-09 12:09:14

C語言新手救星:免費下載初學者學習指南,消除編程恐懼 (c語言從新手到高手)

C語言新手救星:免費下載初學者學習指南,消除編程恐懼 (c語言從新手到高手)

對于編程新手來說,C語言可能是一項令人生畏的任務,但是,有了正確的指導,學習C語言并消除編程恐懼也并非不可能,為了幫助初學者踏上C語言編程之旅,我們提供了一份免費的學習指南,涵蓋所有基本概念,從基礎語法到高級數據結構,指南的內容C語言簡介變量和數據類型運算符和表達式控制流,if,else、switch等,函數和數組字符串和指針文件操作...。

本站公告 2024-09-08 11:40:47

HTML 源代碼的標題革命:釋放創造力和參與度的力量 (html源代碼大全)

HTML 源代碼的標題革命:釋放創造力和參與度的力量 (html源代碼大全)

隨著HTML5的出現,HTML代碼的標題元素發生了巨大的變化,引入了一個新的標題級別,hgroup,,同時還增強了現有級別的語義和靈活性,這些變化為web開發人員提供了前所未有的標題定制和組織選項,讓他們的網站更具吸引力、用戶友好且易于訪問,標題元素的演變HTML4,標題元素為到,HTML5,新標題元素hgroup被引入,現有元素獲得...。

本站公告 2024-09-07 04:28:13

強大的視頻播放引擎:播放高清視頻、流媒體和交互式內容 (強大的視頻播放器有哪些)

強大的視頻播放引擎:播放高清視頻、流媒體和交互式內容 (強大的視頻播放器有哪些)

隨著網絡帶寬的不斷提升,視頻內容在互聯網上變得越來越流行,為了,如3D視頻播放和音效增強,GOMPlayer,GOMPlayer是一款免費的、功能全面的視頻播放器,支持各種視頻格式和編解碼器,它還提供了一些方便的功能,如字幕搜索和多媒體轉換,這些視頻播放器都提供了強大的功能,可以滿足不同的視頻播放需求,您需要根據您的具體需求來選擇最適...。

最新資訊 2024-09-06 19:25:31

提升您的 PHP 開發技能:立即下載免費的源代碼 (提升您的用戶體驗就差一步成功了)

提升您的 PHP 開發技能:立即下載免費的源代碼 (提升您的用戶體驗就差一步成功了)

用戶體驗提升僅一步之遙作為一名PHP開發人員,您一直致力于提高代碼質量、效率和應用程序性能,有時候您還需要一些額外的東西來提升您的用戶體驗,這就是免費源代碼發揮作用的地方,免費源代碼是一段可供任何人使用、修改和分發的代碼,它可以幫助您快速輕松地添加新功能、修復錯誤或提高應用程序的速度,以下是免費源代碼可以為您實現的一些好處,提高代碼質...。

最新資訊 2024-09-05 22:04:53

需要哪幾個步驟 我要建立一個網站 (需要哪幾個步驟)

需要哪幾個步驟 我要建立一個網站 (需要哪幾個步驟)

一、購買域名新手建立網站,域名是必不可少的,簡潔的域名能讓人記憶深刻,選擇域名大部分都以為主,也有很多新的后綴域名,域名后綴不同價格也不同,一般以年為單位,新手可以到阿里域名平臺購買,二、購買虛擬主機虛擬主機和服務器可以用來裝載網站程序,是網站建設必不可少的部分,對于新手來說選擇虛擬主機比較好,虛擬主機我們常稱為,空間,價格低廉,操作...。

技術教程 2024-09-02 00:15:38

Copyright ? 2025 聚集網 All Rights Reserved
此內容系本站根據來路自動抓取的結果,不代表本站贊成被顯示網站的內容或立場。
本頁閱讀量次 | 本站總訪問次 | 本站總訪客人 | 今日總訪問次 | 今日總訪客人 | 昨日總訪問次 | 昨日總訪客人 |
技術支持:聚集網

国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门
欧美老女人在线视频| 精品美女久久久久久免费| 亚洲综合中文字幕在线观看| 亚洲最大的av网站| 国精产品一区一区三区有限在线| 亚洲欧美综合区自拍另类| 国产欧美va欧美va香蕉在线| 欧美精品精品精品精品免费| 欧美精品九九久久| 国产精品久久久久久久久久久不卡| 日本精品久久电影| 亚洲欧洲激情在线| 色小说视频一区| 亚洲男人天堂2023| 97人洗澡人人免费公开视频碰碰碰| 国产精欧美一区二区三区| 欧美性猛交视频| 久久综合伊人77777尤物| 国产欧美亚洲精品| 中文字幕日韩av综合精品| 欧美麻豆久久久久久中文| 国产精品日韩专区| 上原亚衣av一区二区三区| 一道本无吗dⅴd在线播放一区| 日韩电影在线观看中文字幕| 日韩中文字幕网址| 亚洲精品国产精品乱码不99按摩| 奇米成人av国产一区二区三区| 不卡av电影院| 91免费电影网站| 97久久精品人搡人人玩| 日韩成人在线视频| 久久久国产一区二区三区| 欧美影院在线播放| 久久久久久久久久久免费精品| 国产精品视频永久免费播放| 欧美肥婆姓交大片| 久久九九全国免费精品观看| 亚洲a区在线视频| 91夜夜揉人人捏人人添红杏| 亚洲美女av网站| 精品久久久久久久久久| 欧美亚洲另类制服自拍| 欧美亚洲午夜视频在线观看| 欧美激情在线狂野欧美精品| 欧美性在线观看| 亚洲精品美女久久久久| 伊人激情综合网| 亚洲免费视频一区二区| 一区二区三区视频免费在线观看| 国产亚洲欧美aaaa| 九色精品美女在线| 一道本无吗dⅴd在线播放一区| 日韩av在线天堂网| 色综合久久88色综合天天看泰| 成人黄色在线播放| 伦伦影院午夜日韩欧美限制| 91欧美精品成人综合在线观看| 亚洲国产精品久久精品怡红院| 亚洲成人动漫在线播放| 欧美国产日韩中文字幕在线| 久久精品91久久久久久再现| 国产999精品久久久影片官网| 色无极影院亚洲| 中文字幕亚洲一区二区三区五十路| www日韩欧美| 成人妇女淫片aaaa视频| 欧美国产日韩一区二区| 国产成人精品免费视频| 精品精品国产国产自在线| 欧美激情a∨在线视频播放| 欧美成年人网站| 国产精品自拍小视频| 亚洲free嫩bbb| 久久在线免费观看视频| 亚洲欧美制服丝袜| 久久精品成人动漫| 欧美丰满少妇xxxxx做受| 97香蕉超级碰碰久久免费的优势| 久久天天躁狠狠躁夜夜躁2014| 欧美激情性做爰免费视频| 亚洲三级 欧美三级| 午夜免费日韩视频| 免费97视频在线精品国自产拍| 亚洲午夜久久久久久久| 高清亚洲成在人网站天堂| 日本精品中文字幕| 久久中文久久字幕| 精品网站999www| 国产精品视频久久久| 色哟哟入口国产精品| 欧美激情二区三区| 久久久久久综合网天天| 中文字幕久精品免费视频| 亚洲三级av在线| 亚洲性69xxxbbb| 欧美一区二粉嫩精品国产一线天| 欧美黑人xxxⅹ高潮交| 国产精品久久久91| 91chinesevideo永久地址| 日韩欧美国产高清91| 国产精品中文字幕久久久| 精品久久久一区二区| 国产精品视频中文字幕91| 26uuu另类亚洲欧美日本老年| 国产精品流白浆视频| 欧美成年人视频| 欧美在线中文字幕| 日本一欧美一欧美一亚洲视频| 欧美日韩亚洲高清| 亚洲国产精品成人av| 日本成人激情视频| 欧美激情一区二区三区久久久| 91老司机精品视频| 国产精品手机播放| 亚洲丁香久久久| 日韩精品亚洲视频| 国外成人在线视频| 亚洲精品98久久久久久中文字幕| 亚洲色图av在线| 亚洲欧美一区二区精品久久久| 在线看国产精品| 92看片淫黄大片看国产片| 成人高清视频观看www| 亚洲日本欧美中文幕| 91精品国产色综合久久不卡98| 亚洲国产天堂久久国产91| 欧美尤物巨大精品爽| 精品久久久久久中文字幕| 在线播放国产一区二区三区| 亚洲国产精品va| 久久久久久久久久久免费| 久久不射热爱视频精品| 日韩欧美亚洲国产一区| 亚洲成人aaa| 亚洲国产精品久久久久久| 欧美日韩爱爱视频| 久久久久久国产免费| 国产日韩在线播放| 国产精品精品久久久| 奇米成人av国产一区二区三区| 日韩av免费在线看| 国内精品视频在线| 国产美女精彩久久| 欧美在线视频网| 91久久在线观看| 亚洲图片欧洲图片av| 精品成人国产在线观看男人呻吟| 欧美国产日韩精品| 亚洲va欧美va在线观看| 精品国产精品自拍| 欧美国产日韩视频| 日韩视频第一页| 欧美成人在线免费| 青青久久aⅴ北条麻妃| 久久天天躁狠狠躁夜夜av| 亚洲欧美激情另类校园| 国产98色在线| 久久久久久久国产精品视频| 日韩精品在线视频| 国产精品亚洲自拍| 久久综合亚洲社区| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲美女免费精品视频在线观看|