Java學習筆記--資料庫初識

左墾發表於2017-06-01

最近剛剛學習了資料庫的第一節課,著重學習的是Mysql資料庫
1.資料庫優點
資料儲存記憶體中優點是存取速度快,缺點是資料不能永遠儲存;資料儲存在檔案中優點是資料不可以永遠儲存,缺點是速度比記憶體操作慢,且IO操作過於頻繁,查詢資料不方便;但資料庫良好的改變了上述缺點,具有資料永久儲存,速度比較快,查詢和管理方便的優點。
2.資料庫分類
·非關係式資料庫:層次型資料庫,網狀式資料庫
很好的解決了資料的集中和共享問題,但在資料庫獨立性和抽象級別上仍有很大缺陷
·關係式資料庫:把複雜的資料結構歸結為複雜的二元關係,通過關聯的表格的分類,連結和選取來完成對資料庫的管理。常見有Mysql和Oracle.
3.Mysql結構
資料庫–表–結構
4.相關操作語句
show databases;檢視所有資料庫,一定要要以分號結束,
這樣sql語句才會傳送給mysql伺服器端執行。
create database 名稱
default character set 型別(ec.utf8);建立資料庫
drop database 名稱;除資料庫
alter database 名稱 default characer set gbk;修改資料庫預設字符集
管理表
use 資料庫名稱;選擇資料庫
show tables;顯示資料庫中所有表
create table 名稱(成員名稱,成員名稱);建立表
desc 表名稱;以表格格式返回
drop table 表名稱;刪除表
alter table 表名稱 add column 欄位名稱 欄位型別;新增欄位
alter table 表名稱 modify column 欄位名稱 欄位型別;修改欄位型別
alter table 表名稱 change column 原欄位名稱 修改為 欄位型別;
alter table 表名稱 drop column 欄位名稱;刪除欄位
alter table 表名稱 rename to 表名稱;修改表名稱
管理資料
SELECT * FROM student;
INSERT INTO student VALUES(1,’eric’,20,’廣州人’,’男’);
欄位的資料一定要和值的數量一致
INSERT INTO student(id,NAME,age,remark2) VALUES(3,’jacky’,27,’佛山人’);
UPDATE student SET gender=’男’;
UPDATE student SET gender=’女’ WHERE id=2;
UPDATE student SET age=28,remark2=’韶關人’ WHERE id=2;
DELETE FROM student;
DELETE FROM student WHERE id=2;

注意:delete from 和 truncate table 的區別?
– 1)delete from刪除全部,也可以按條件刪除,但是truncate table只能全表刪除,不能按條件刪除
– 2)delete from刪除的資料可以回滾,truncate table刪除的資料不能回滾。
– 3)delete from不可以把自增長約束(auto_increment)重置,truncate table可以把自增長約束(auto_increment)重置

SELECT * FROM student;
SELECT NAME,gender FROM student;
SELECT NAME AS '姓名',gender AS '性別' FROM student;
SELECT NAME '姓名',(servlet+jsp) '總成績'  FROM student;合併列查詢
SELECT NAME '姓名',gender '性別',age '年齡','java就業班' AS '班級' FROM student;
SELECT DISTINCT remark2 FROM student;查詢去除重複資料
條件查詢
SELECT * FROM student WHERE id=3 AND gender='男';
SELECT * FROM student WHERE servlet>80;
SELECT * FROM student WHERE remark2 IS NOT NULL AND remark2<>'';
模糊查詢
SELECT * FROM student WHERE NAME LIKE '張%';

SELECT SUM(servlet) FROM student;
SELECT AVG(servlet) FROM student;
SELECT MAX(servlet) FROM student;
SELECT MIN(servlet) FROM student;
SELECT COUNT(*) FROM student;
SELECT COUNT(id) FROM student; 
SELECT gender,COUNT(*) '人數' FROM student GROUP BY gender;
SELECT * FROM student LIMIT 0,2;        
SELECT * FROM student ORDER BY id ASC;

5.欄位型別
– char(20) vs varchar(20)
– char(20): 固定長度的字串。不管實際儲存的資料的大小,一定佔用20個字元空間
– varchar(20): 可變長度的字串。佔用的空間大小就是實際儲存的資料大小。

-- int vs int(4)
-- int: 預設最多11位,長度根據實際儲存的數值的長度
-- int(4): 固定的數值長度

相關文章