天天看點

mysql資料庫

進入mysql官方網站,https://dev.mysql.com/downloads/,下載下傳想要的版本

mysql資料庫

下載下傳完成後就是安裝mysql了

輕按兩下軟體開始安裝

mysql資料庫

然後一直點選下一步就完事了,直到設定好使用者名與密碼就ok了。

數值類型大類又可以分為整型、浮點型、定點型三小類。

1.整型主要用于存儲整數值,主要有:

tinyint,1位元組,小整數值

smallint,2位元組,大整數值

mediumint,3位元組,大整數值

int或者intger,4位元組,大整數值(常用)

bigint,8位元組,極大整數值

整形是經常被用到類型,最常用的int,bigint預設是有符号的,若需要存儲無符号值,可以使用unsigned屬性。

存儲位元組越小,占用空間越小,是以我們要盡量使用合适的整型,bigint類型預估字段數字取值超過42億可以使用(是以不知道為什麼java課的資料庫全是bigint類型)。

2.浮點型主要用于存儲近似值,浮點型主要有兩個類型:

float,4位元組,單精度浮點數值

double,8位元組,雙精度浮點數值

又有人要問了,這個單精度浮點數值和雙精度浮點數值代表什麼?有什麼差別?

簡單來說,由于它們的長度不同進而導緻的精确度不同。單精度浮點數值占據32位二進制,而雙精度浮點數值占據64位二進制。

3.定點型主要用于存儲有精度要求的小數,主要類型有:

decimal,對decimal(m,d) ,如果m>d,為m+2位元組 否則為d+2,精确小數值

對于聲明文法 decimal(m,d) ,自變量的值範圍如下:

m是最大位數(精度),範圍是1到65。可不指定,預設值是10。

d是小數點右邊的位數(小數位)。範圍是0到30,并且不能大于m,可不指定,預設值是0。

例如字段 salary decimal(5,2),能夠存儲具有五位數字和兩位小數的任何值,是以可以存儲在salary列中的值的範圍是從-999.99到999.99。

字元串常用的類型:

char,0-255位元組,定長字元串

varchar,0-65535位元組,變長字元串

tinytext,0-255位元組,短文本字元串

text,0-65535位元組,長文本資料

longtext,0-4294967295位元組,極大文本資料

tinyblob,0-255位元組,二進制字元串

blob,0-65535位元組,二進制形式的長文本資料

longblob,0-4294967295位元組,二進制形式的極大文本資料

其中 char 和 varchar 是最常用到的。char 類型是定長的,mysql 總是根據定義的字元串長度配置設定足夠的空間。當儲存 char 值時,在它們的右邊填充空格以達到指定的長度,當檢索到 char 值時,尾部的空格被删除掉。varchar 類型用于存儲可變長字元串,存儲時,如果字元沒有達到定義的位數,也不會在後面補空格。

blob 類型主要用于存儲二進制大對象,例如可以存儲圖檔,音視訊等檔案。日常很少用到,有存儲二進制字元串時可以考慮使用。

mysql支援的日期和時間類型如下:

year,1位元組,年份值

time,3位元組,時間值或者持續時間

date,3位元組,日期值

datetime,8位元組,混合日期和時間值

timestamp,4位元組,時間戳

根據存儲需求選擇合适類型就可以了

mysql資料庫

去網上下載下傳一個navicat,推薦12版本,因為我就用這版本。

首先需要建立一個資料庫,我們才可以進行表的建立

連接配接mysql,右鍵建立資料庫,起個名字,再點選該資料庫建立表即可。

1.建立表

create table 表名(

中間為想要建立的元素與他的資料類型還有範圍

2.添加新資料

insert into 表名 values (想要給的值)

insert into 表名 列名 values (想要給的列值)

insert into student values('基尼太美',20,'男','中國查無此人')

3.查詢資料

select name 姓名,age 年齡,sex 性别 from student

select * from student(這是查詢該表所有資料的語句)

select * from student where name=“xxxx”(這是查詢該表xxxx的資料)

4.修改:

update <表名> set <列名=更新值> [where <更新條件>]

5.删除

delete from <表名> [where <删除條件>]

truncate table <表名>(這是删除整個表)

select * from student where id in(11,13)(查id在11到13之間)

between跟上面那個in用法相似,也是查某某之間

like是模糊查詢,搭配%與_使用

select * from student where name like “張%”(就會查出student所有姓張的人)

select * from student where name like “張_”(隻會查出student單個姓張的人)

一、from子句嵌套

select ...from (子查詢) as 别名

二、where 子句嵌套(in,exists判斷的應用)

select ...from ...where ... = (子查詢) -- 單值比較(=,>,<,!=等)

select ...from ...where ... in (子查詢) -- 集合比較

select ...from ...where ... exists (子查詢) -- 是否有存在查詢記錄

三、select 子句嵌套

select ...,(子查詢),...from ...

總結:

子查詢可看作是“表”、“多值集合”(單列)、“單值”(單列單行)

執行順序是先内後外

嵌套在where、select的子查詢是多次執行的

内外層資料列引用時遇到重名列應使用完全限定列名

嵌套查詢獲得的結果一般都能通過連接配接查詢實作

内連接配接

滿足條件的記錄才會出現在結果集中

select ...form 表1 inner join 表2 on 表1.列x=表2.列y....(連接配接查詢表1表2當表1的清單x=表2的清單y)

select...form 表1,表2 where 表1.列x=表2.列y(效果同上)

外連接配接

表a全部出現在結果集中,若表b無對應記錄,則相應字段為null(左外連接配接)

select t1.*,t2.* from tb_name t1 left join tb_class t2 on t1.學号=t2.學号;

表b全部出現在結果集中,若表a無對應記錄,則相應字段為null(右外連接配接)

select t1.*,t2.* from tb_name t1 right join tb_class t2 on t1.學号=t2.學号;

sql full join結合的左,右外連接配接的結果。

連接配接表将包含的所有記錄來自兩個表,并使用null值作為兩側缺失比對結果

目前mysql不支援全連接配接,不過full join是一切分布式資料庫都有的概念,不是mysql的概念。

avg()求平均值

count()統計數目

max()求最大值

min()求最小值

sum()求和

以上幾個為最常用的統計函數,

sin()傳回以弧度表示的角的正弦

cos()傳回以弧度表示的角的餘弦

tan()傳回以弧度表示的角的正切

cot()傳回以弧度表示的角的餘切

以上為舉例,其實還有很多

lower() --函數把字元串全部轉換為小寫

upper() --函數把字元串全部轉換為大寫

str() --函數把數值型資料轉換為字元型資料

ltrim() --函數把字元串頭部的空格去掉

rtrim() --函數把字元串尾部的空格去掉

cast() 函數文法如下

cast (expression as data_type(length))

convert() 函數文法如下

convert(data_type(length),data_to_be_converted,style)

day() --函數傳回date_expression 中的日期值

month() --函數傳回date_expression 中的月份值

year() --函數傳回date_expression 中的年份值

app_name() --函數傳回目前執行的應用程式的名稱

我就會這個,其他的看不懂。