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