mysql数据库sysdate_MySql数据库知识点复习
文章目錄
1. MySql數(shù)據(jù)類(lèi)型
1.1 數(shù)值類(lèi)型
1.2 字符串類(lèi)型
1.3 日期類(lèi)型
2.表記錄的操作
2.1 字段約束
2.2 drop、delete、truncate之間的區(qū)別?
3. MySql常見(jiàn)的函數(shù)
4. 外鍵和表關(guān)系
4.1 外鍵介紹
4.2 添加外鍵
4.3 表關(guān)系
4.4 關(guān)聯(lián)查詢、外連接查詢
1. MySql數(shù)據(jù)類(lèi)型
1.1 數(shù)值類(lèi)型
MySql中有很多數(shù)值類(lèi)型,常用的數(shù)值類(lèi)型有:
int 對(duì)應(yīng)Java中的int類(lèi)型, 占用4個(gè)字節(jié)
double 對(duì)應(yīng)Java中的double類(lèi)型, 占用8個(gè)字節(jié)
1.2 字符串類(lèi)型
Mysql中包含char和varchar兩種字符串類(lèi)型:
char(n) –- 定長(zhǎng)字符串
其中n的范圍: 0~255 /個(gè)字符
name char(10)
如果存儲(chǔ)的數(shù)據(jù)長(zhǎng)度小于定義的最大長(zhǎng)度, 剩余的空間會(huì)用空格補(bǔ)全, 因此char類(lèi)型可能會(huì)存在一定的空間浪費(fèi)。
varchar(n) -- 不定長(zhǎng)字符串
其中n的范圍: 0~255 /個(gè)字符 (mysql5.0之前)
0~65535 /個(gè)字節(jié)(mysql5.0之后)
如果存儲(chǔ)的數(shù)據(jù)長(zhǎng)度小于定義的最大長(zhǎng)度, 剩余的空間可以留給別的數(shù)據(jù)使用, 因此varchar類(lèi)型不會(huì)有空間的浪費(fèi)。
大文本類(lèi)型有:
text 0~65535 /個(gè)字節(jié)
bigtext 4GB
ps: char和varchar有什么區(qū)別?
char類(lèi)型比varchar類(lèi)型存儲(chǔ)的效率略高,但是存在空間浪費(fèi)。
1.3 日期類(lèi)型
date 格式:年月日
time 格式:時(shí)分秒
datetime 格式: 年月日 時(shí)分秒
timestamp 時(shí)間戳(實(shí)際上存儲(chǔ)的是從1970-1-1日到指定時(shí)間的毫秒值)
datetime的范圍: 1000~9999年
timestamp的范圍: 1970~2038年
timestamp類(lèi)型的列可以設(shè)置自動(dòng)更新為當(dāng)前時(shí)間,但是datetime不能設(shè)置
2.表記錄的操作
2.1 字段約束
1.主鍵約束
如果一個(gè)列添加了主鍵約束,那么該列就是這張表的主鍵,主鍵要求唯一且不能為空。
create table person1(
id int primary key,
...
);
2.唯一約束
如果為一個(gè)列添加了唯一約束,那么該列的值就不能重復(fù),但是可以為null。
create table person2(
name char(10) unique,
...
);
3.非空約束
如果為一個(gè)列添加了非空約束,那么該列的值就不能為空,但是可以重復(fù)。
create table person3(
gender varchar(2) not null,
...
);
2.2 drop、delete、truncate之間的區(qū)別?
● drop只能刪除庫(kù)和表,不能刪除表記錄。
● delete和truncate是刪除表記錄,不能刪除庫(kù)和表本身
● delete刪除表記錄時(shí),可以刪除表中的某一部分記錄,也可以刪除表中的所有記錄,而且刪除時(shí),是一條
一條刪除。
● truncate也是刪除表記錄,但是只能刪除所有記錄,刪除時(shí)不是一條一條刪除,而是將整張表摧毀重建。
3. MySql常見(jiàn)的函數(shù)
1、ifnull(列名, 值)
判斷指定的列的值是否為null, 如果為null, 則用第二個(gè)參數(shù)對(duì)null值進(jìn)行替換
2、count(列名 | *)
count函數(shù)是對(duì)指定的列或者所有列統(tǒng)計(jì)行數(shù)
3、max(列名)和min(列名)
max(列名)
對(duì)指定的列求最大值
min(列名)
對(duì)指定的列求最小值
4、sum(列名和avg(列名)
sum(列名)
對(duì)指定的列進(jìn)行求和
avg(列名)
對(duì)指定的列求平均值
5、curdate()、curtime()、sysdate()、now()
Curdate()
獲取當(dāng)前時(shí)間, 格式為年月日
Curtime()
獲取當(dāng)前時(shí)間, 格式為時(shí)分秒
Sysdate() | now()
獲取當(dāng)前時(shí)間, 格式為年月日 時(shí)分秒
4. 外鍵和表關(guān)系
4.1 外鍵介紹
外鍵就是用于通知數(shù)據(jù)庫(kù)兩張表數(shù)據(jù)之間對(duì)應(yīng)關(guān)系的一個(gè)列, 數(shù)據(jù)庫(kù)會(huì)通過(guò)外鍵來(lái)維護(hù)兩張表的對(duì)
應(yīng)關(guān)系。
4.2 添加外鍵
● 創(chuàng)建表的同時(shí)添加外鍵
CREATE TABLE student(
sid int primary key auto_increment, -- 學(xué)生編號(hào)
sname VARCHAR(10), -- 學(xué)生姓名
s_cid INT, -- 班級(jí)編號(hào)
FOREIGN KEY (s_cid) REFERENCES class(cid) --指定外鍵
);
● 在建表后添加外鍵
//添加外鍵約束:ALTER TABLE student ADD FOREIGN KEY (s_cid) REFERENCES class(cid);
4.3 表關(guān)系
● 一對(duì)一
● 一對(duì)多
● 多對(duì)多
4.4 關(guān)聯(lián)查詢、外連接查詢
● 關(guān)聯(lián)查詢
select * from class, student
where student.s_icd = class.cid;
● 左外連接查詢
左外連接查詢會(huì)將左邊表中的所有記錄都查詢出來(lái), 而右邊表中只查與左邊對(duì)應(yīng)的記錄。
select * from class left join student on student.s_icd = class.cid;
● 右外連接查詢
右外連接查詢會(huì)將右邊表中的所有記錄都查詢出來(lái),而左邊表中只查與右邊對(duì)應(yīng)的記錄。
select * from class right join student on student.s_icd = class.cid;
總結(jié)
以上是生活随笔為你收集整理的mysql数据库sysdate_MySql数据库知识点复习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 洛谷 题解 P2010 【回文日期】
- 下一篇: mysql 全文索引