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 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;非

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章