進入mysql官方網站,https://dev.mysql.com/downloads/,下載下傳想要的版本
下載下傳完成後就是安裝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位元組,時間戳
根據存儲需求選擇合适類型就可以了
去網上下載下傳一個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() --函數傳回目前執行的應用程式的名稱
我就會這個,其他的看不懂。