一、對資料庫及表的基礎操作 1、連接資料庫伺服器 mysql -hlocalhost -uroot -p123456 2、2.退出伺服器 exit 3、查看所有的資料庫 show databases; 4、創建一個資料庫 create database java; 5、刪除資料庫 drop data ...
一、對資料庫及表的基礎操作
1、連接資料庫伺服器 mysql -hlocalhost -uroot -p123456
2、2.退出伺服器 exit
3、查看所有的資料庫 show databases;
4、創建一個資料庫 create database java;
5、刪除資料庫 drop database java;
6、選中進入資料庫 use java;
7、查看資料庫java中所有的表 show tables;
8、在資料庫java中建person表
create table person(id int, name varchar(32), age int, info text);
語法格式: create table 表名 (欄位1 數據類型, 欄位2 數據類型,...);
9、11.查看person表的結構 desc person;
10、刪除表 drop table person;
11、修改表 語法格式: alter table 表名 +操作;
a、刪除info欄位 語法格式: alter table 表名 drop 欄位;
alter table person drop info;
b、在當前表中添加欄位 語法格式: alter table 表名 add 欄位 數據類型;
alter table person add sex boolean;
c、修改某一個欄位的數據類型 alter table 表名 modify 欄位 新的數據類型;
alter table person modify name char(32);
d、同時修改欄位名字和欄位數據類型 語法格式: alter table 表名 change 老欄位 新欄位 新的數據類型;
alter table person change sex gender int;
二、MySQL常用數據類型
1、tinyint(n) 用於存儲小整數值,括弧內的n為欄位的最大長度 。
例:tinyint(2)指定欄位類型為整數,長度最大為2。
2、int(n)用於存儲大整數值;括弧內的n為欄位的最大長度,可不寫,預設11位
3、decimal(M,D)用於存儲小數值,M為欄位最大位數,D為小數點後最大位數。
例:decimal(9,3)指定欄位最多9位,小數點後最多三位。
4、char(n) 用於存儲字元串的定長字元串,欄位長度固定占n位
5、varchar 用於存儲字元串的變長字元串,欄位最多n位
註:varchar與char的區別在於varchar的長度可變,欄位實際需要幾位便占幾位,更能節省記憶體。
6、text 用於存儲文本數據,varchar和char做大隻能存儲255個字元,超過255個字元的字元串只能以文本的形式存儲。
7、timestamp、時間戳,用於存儲混合日期和時間值。
alter table person add regTime timestamp default current_timestamp;
時間戳類型的一個欄位如果將預設值設為current_timestamp,在寫入一條數據時,這條數據的這個欄位的預設值為變為寫入數據的時間。
三、對錶中數據的增刪改操作
1、插入數據
語法:insert into 表名稱 values (值1, 值2,....), 必須安照表的欄位順序寫入全部對應類型數據
例: insert into person values(1, "蓋倫", 12, 89272.78, 1,now());
或 insert into 表名稱 (列1, 列2,...) values (值1, 值2,....) 後面的值需與前面的的保存對應,但前面的列的順序可以隨意,且不要求寫出全部欄位名,未出現的欄位會符預設值。
例: insert into person (id, name, age, salary) values (2, "亞索", 34, 27288.98);
可一次插入多條數據,數據之間用“,”分隔
例: insert into person(id, name) values(4, "世齊"), (5, '永傑'),(6, "狗蛋");
2、刪除數據
語法:delete from 表名稱 where 列名稱 = 值
例1:delete from person where id = 4;
例2:delete from person where name = "蓋倫";
例3:delete from person where id in(2,3, 5); #刪除id為2、3、5的數據
例4:delete from person; #表名後沒有限制條件,刪除表中所有數據。
3、修改數據
語法: update 表名稱 set 列名稱1 = 新值1,列2=新值2,列3=新值3.... where 列名稱 = 某值
例: update person set name="蓋倫", age = 89 where id = 1;
4、事務的操作(入門)
使用事務的目的是保證數據的安全。
事務內的全部操作要麼全部成功,要麼全部失敗。
例如:張三要轉給李四100元,在資料庫的具體操作分為兩步
1、使張三賬戶減少100元;
2、使李四賬戶增加100元;
未使用事務時,在操作1完成後,如果有意外情況(如伺服器宕機)導致轉賬操作不能繼續進行第2步
就會出現轉出了100元,李四卻未收到的情況。
開啟事務後,操作1完成後,操作結果不會直接提交,要等到後續操作全部成功後,所有結果一同提交,
若後續有某個操作因意外情況失敗,則會對操作進行回滾,將一切回覆到未開始操作的狀態。
開啟事務(即關閉自動提交)
set autocommit=0; #autocommit為0時自動提交關閉,為1時自動提交開啟。
增刪改sql 不會自動提交
會有兩種狀態:
回滾: roolbakc; 增刪改sql語句沒有執行
提交: commit; 增刪改sql語句執行