MySql學習筆記(一)
資料的儲存:
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 stuwhere 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;非