數據的存儲:
javaSE:定義一個變量,它都存儲在內存裏面,
當程序執行完畢了,這個變量就從內存中消失了!
javaSE-->IO流程:針對文件進行存儲
1)永久保存,
2)頻繁的使用IO流對數據進行讀寫,執行效率低
數據庫的軟件:
1)對數據永久保存
2)執行效率高
3)方便維護和管理
Mysql:數據庫軟件
* 安裝:
請百度
* 卸載:
1.關閉mysql服務
1.手動關閉:我的電腦-->右鍵-->管理
2.cmd-->services.msc,打開服務面板
3.cmd-->net stop mysql。(注意獲取cmd管理員權限)
2.卸載
3.刪除數據存儲文件
* 找到mysql的安裝目錄。中my.ini文件
datadir目錄,刪除
* 使用:
* 登陸數據庫:
cmd-->mysql -uroot -p你自己的密碼
* 服務:系統後臺進程
* 啓動服務: net start mysql
* 停止服務: net stop mysql
* 配置:
修改mysql的密碼步驟:
1) 停止mysql服務 運行輸入services.msc 停止mysql服務
或者 cmd -- net stop mysql
2) 在cmd下 輸入 mysqld --skip-grant-tables 啓動服務器 光標不動 (不要關閉該窗口)
3) 新打開cmd 輸入mysql -u root -p 不需要密碼
use mysql;
update user set password=password('abc') WHERE User='root';
4) 關閉兩個cmd窗口 在任務管理器結束mysqld 進程
5) 在服務管理頁面 重啓mysql 服務
SQL:結構化查詢語言
* 概念:通過sql語言可以操作所有的關係型數據庫。每種數據庫之間會存在差異,稱爲 "方言"
* sql分類:
DDL(Data Definition Language):數據定義語言,用來定義數據庫對象:庫、表、列等;
DML(Data Manipulation Language):數據操作語言,用來定義數據庫記錄(增、刪、改)
DCL(Data Control Language):數據控制語言,用來定義訪問權限和安全級別;
DQL(Data Query Language):數據查詢語言,用來查詢記錄(數據)。
* DDL:操作數據庫 和 表
* 操作數據庫:
* 創建:create database 數據庫名稱;
* 刪除:drop database 數據庫名稱;
* 修改:ALTER DATABASE mydb1 CHARACTER SET 要修改的字符集名稱
* 查詢:show databases; -- 查詢所有數據庫的名稱
show create database 數據庫名稱; -- 查詢創建數據庫語句
* 操作表:
* 創建:
* 列的數據類型:
* int:整型
id int,
* double:浮點型,例如double(5,2)表示最多5位,其中必須有2位小數,即最大值爲999.99;
money double(5,2)
char:固定長度字符串類型;
name char(10)
"張三"
* varchar:可變長度字符串類型;
name varchar(10)
"張三"
text:字符串類型;存大格式的文本 比如存個小說 一般不用
blob:字節類型;存字節類型的數據 比如電影字節 圖片字節 但是一般不會把字節數據存到數據庫當中
date:日期類型,格式爲:yyyy-MM-dd;
time:時間類型,格式爲:hh:mm:ss
datetime:日期時間類型 yyyy-MM-dd hh:mm:ss
* timestamp:時間戳類型
yyyy-MM-dd hh:mm:ss
* 如果該類型的字段不給賦值,則默認當前時間
* 語法:
create table 表名(
列名1 類型1,
列名2 類型2,
...
列名n 類型n
);
create table student(
sname varchar(20),
age int,
gender varchar(6)
);
* 刪除:drop table 表名;
* 修改:
1. 修改之添加列:給stu表添加classname列:
ALTER TABLE stu ADD (classname varchar(100));
2. 修改之修改列類型:修改stu表的gender列類型爲CHAR(2):
ALTER TABLE stu MODIFY gender CHAR(2);
3. 修改之修改列名:修改stu表的gender列名爲sex:
ALTER TABLE stu change gender sex CHAR(2);
4. 修改之刪除列:刪除stu表的classname列:
ALTER TABLE stu DROP classname;
5. 修改之修改表名稱:修改stu表名稱爲student:
ALTER TABLE stu RENAME TO student;
* 查詢:show tables; -- 查詢該數據庫下所有表名稱
desc 表名; -- 查詢表結構
* 注意:操作表之前,應該先選擇一個數據庫使用:use 數據庫名稱;
* DML:操作表中的數據
* 增:
* 語法:
* insert into 表名(列名1,列名2,...)
values(值1,值2,....);
* 注意:如果表的所有列都添加值,則列名可以省略
insert into stu(sname,age) values("lisi",23);
insert into stu(sname,age,sex) values("zhangsan",23,'1');
insert into stu values("ww",23,'2');
* 刪:
* 語法:
* delete from 表名 [where 條件];
* truncate table 表名;-- 刪除所有記錄
* 先刪除表,再創建表。
delete from stu
where sname = 'lisi'
* 改:
* 語法:
* update 表名
set 列名1 = 值1 , 列名2 = 值2... [where 條件]
update stu set sex = "1" where sname = "lisi";
update
customer
set
money = 500000
where
id = xxx;
* DQL:查詢
* 語法:
SELECT
selection_list /*要查詢的列名稱*/
FROM
table_list /*要查詢的表名稱*/
WHERE
condition /*行條件*/
GROUP BY
grouping_columns /*對結果分組*/
HAVING
condition /*分組後的行條件*/
ORDER BY
sorting_columns /*對結果分組*/
LIMIT
offset_start, row_count /*結果限定*/
* 條件查詢:where 子句
=、!=、<>(不等於)、<、<=、>、>=;
BETWEEN…AND; 在什麼範圍之間
IN(set);
IS NULL;爲空
IS NOT NULL 不爲空
AND; 並且
OR; 或者
NOT;非