數據庫概述
存放數據的方式
- 1.存在內存中
- 2.保存在普通文件中
- 3.保存在數據庫中
什麼是數據庫
存儲數據的倉庫,用戶可以對數據庫中的數據進行增加,修改,刪除及查詢操作(sql語言)。
數據庫的優點-
數據庫是按照特定的格式將數據存儲在文件中,通過SQL語 句可以方 便/*-的對大量數據進行增、刪、改、查操作,數據庫是對大量的信息進行管理的高效的解決方案。-
數據庫管理系統(DBMS)
數據庫管理系統(DataBase Management System,DBMS):指一種操作和管理數據庫的大型軟件,用於創建、使用和維護數據庫,對數據庫進行統一管理和控制,以保證數據庫的安全性和完整性。用戶通過數據庫管理系 統訪問數據庫中表內的數據
數據庫管理系統、數據庫和表的關係
數據庫管理系統可以管理多個數據庫,每個數據庫中可以有多張數據庫表。
常見數據庫
- MYSQL :開源免費的數據庫,小型的數據庫.已經被Oracle收購了.MySQL6.x版本也開始收費。
- Oracle:收費的大型數據庫,Oracle公司的產品。Oracle收購SUN公司,收購MYSQL。
- DB2:IBM公司的數據庫產品,收費的。常應用在銀行系統中.
- SQLServer:MicroSoft 公司收費的中型的數據庫。C#、.net等語言常使用。
- SyBase:已經淡出歷史舞臺。提供了一個非常專業數據建模的工具PowerDesigner。
- SQLite: 嵌入式的小型數據庫,應用在手機端。
安裝MySql數據庫
卸載: 使用軟件管理工具,手動刪除
細節:不止要刪除數據庫,還要將保存數據的文件給手動刪除了,如果不刪除無法正常安裝新的數據庫
啓動和關閉mysql
細節注意:mysql的服務必須是啓動狀態下才是使用
- 啓動和關閉mysql:
- 方式1:操作windows服務
- 方式2:dos命令中操作mysql
- net start mysql 開啓mysql服務
- net stop mysql 停止mysql服務
登錄和退出mysql數據庫
第一種:
- mysql -u用戶名 -p密碼
例如:mysql -uroot -proot
第二種
- mysql -u用戶名 -p
- 密碼
退出
- exit
- quit
- ctrl + c
sql語句
簡介
概述
結構化查詢語言(Structured Query Language)簡稱SQL,SQL語句就是對數據庫進行操作的一種語言。
數據庫是不認識JAVA語言的,但是我們同樣要與數據庫交互,這時就需要使用到數據庫認識的語言---SQL語言
作用:
通過Sql語言可以對數據庫管理系統中的數據庫,表,表中的數據進行增刪改查(crud)。
sql分類和語法
分類:(面試題)
1.DDL(Data Definition Language)數據定義語言
用來操作數據庫和表
關鍵字:create,drop,alter等
2.DML(Data Manipulation Language)數據操作語言
用來對數據庫中表的數據進行增刪改
關鍵字:insert,delete, update等
3.DQL(Data Query Language)數據查詢語言
用來對數據庫中表的數據進行查詢
關鍵字:select,from,where等
4.DCL(Data Control Language)數據控制語言(瞭解)
用來定義數據庫的訪問權限和安全級別,及創建用戶。
關鍵字:grant, revoke等
5.TCL(Transaction Control Language) 事務控制語言
用於控制數據庫的事務操作
關鍵字: commit,rollback等
sql語法
1 SQL語句可以單行或多行書寫,以分號結尾
2 可使用空格和縮進來增強語句的可讀性
3 MySQL數據庫的SQL語句不區分大小寫
4 可以使用-- 或# 或/**/的方式完成註釋
DDL(數據定義語言)
操作數據庫
1-創建數據庫
創建數據庫 (掌握)
create database 數據庫名;
默認字符集是安裝mysql時選擇的字符集 (utf8)
判斷是否存在並創建數據庫(瞭解)
create database if not exists 數據庫名;
創建數據庫並指定字符集(瞭解)
create database 數據庫名 character set 字符集;
2-查詢數據庫
查詢所有數據庫
show databases;
查看某個數據庫的定義信息
show create database 數據庫名稱;
3-修改數據庫(瞭解)
修改數據庫字符集格式
alter database 數據庫名 character set 字符集;
4-刪除數據庫
drop database 數據庫名;
5-數據庫的其他操作
查看當前使用的數據庫
select database();
切換數據庫
use 數據庫;
操作表
條件:首先要進入到指定的數據庫中
創建表
create table 表名(
字段名1 字段類型1[長度],
字段名2 字段類型2[長度]
.....
)
ps:只有字符串類型需要手動加長度,其它類型都不需要加長度(默認有)
-- 需求: 創建一個學生表(id name sex)
數據類型:
java的數據類型 mysql數據庫的數據類型
int int
float float
double double
char/string varchar
date date yyyy-MM-dd
time HH:MM:SS
datetime YYYY-MM-DD HH:MM:SS
查看錶
查看某個數據庫中的所有表: show tables;
查看錶結構: desc 表名稱;
查詢建表語句: show create table 表名;
快速創建表結構: create table 新表名 like 舊錶名;
修改表結構
添加表列 : alter table 表名 add 列名 類型;
刪除表列 : alter table 表名 drop 列名;
修改列名 : alter table 表名 change 舊名稱 新名稱 類型;
修改列類型 : alter table 表名 modify 列名 新類型
修改表名稱 : rename table 舊錶名 to 新表名;
刪除表
直接刪除表: drop table 表名;
判斷表是否存在並刪除表(瞭解): drop table if exists 表名;
DML(數據操作語言)–重點
插入記錄
添加全部字段
方式一:insert into 表名 (字段名1, 字段名2, 字段名3…) values (值1, 值2, 值3);
方式二:insert into 表名 values (值1, 值2, 值3);
添加部分字段
insert into 表名 (字段名1, 字段名2, ...) values(值1, 值2, ...);
注意事項
值與字段必須對應,個數相同,類型相同
值的數據大小必須在字段的長度範圍內
除了數值類型外,其它的字段類型的值必須使用引號引起。
如果要插入空值,可以不寫字段,或者插入null
DOS命令窗口操作數據亂碼問題的解決(瞭解)
- 錯誤說明:
當我們使用DOS命令行進行SQL語句操作如有有中文會出現亂碼,導致SQL執行失敗 - 錯誤原因:
因爲MySQL的設置編碼是utf8,而系統的DOS命令行編碼是gbk,編碼不一致導致的亂碼 - 解決方案:
設置mysql編碼方式- 快捷設置(臨時)
set names gbk; - 修改配置文件(永久)
1 my.ini文件,在[mysql]設置字符集:GBK
2 重啓mysql服務
- 快捷設置(臨時)
蠕蟲複製
在已有的數據基礎之上,將原來的數據進行復制,插入到對應的表中
前提:表結構得一致
語法格式: insert into 新表 select * from 舊錶;
修改記錄
不帶條件修改數據 : update 表名 set 字段名 = 值,字段名 = 值 ; 全改
根據條件修改數據 : update 表名 set 字段名 = 值,字段名 = 值 where 字段名=值; 按條件改
刪除記錄
不帶條件刪除數據: delete from 表名; 全刪
根據條件刪除數據: delete from 表名 where 字段名=值; 按條件刪
truncate刪除表記錄: truncate 【table】 表名; 全刪
truncate和delete的區別:(面試題)
delete是將表中的數據一條一條刪除
truncate是將整個表摧毀,重新創建一個新的表,新的表結構和原來表結構一模一樣
delete刪除的數據可以還原 truncate的數據無法還原
DQL(數據查詢語言)
簡單查詢:
查詢所有列: select * from 表名;
查詢指定列: select 字段名1,字段名2... from 表名;
別名查詢: select 字段名1 as 別名, 字段名2 as 別名... from 表名 as 表別名;
清除重複值: select distinct 字段名 from 表名;
查詢結果參與運算: select 列名1 + 固定值 from 表名;(參數運算的字段必須爲數值型)
1 查詢所有的商品
2 查詢商品名稱和商品價格
3 使用別名查詢商品:as as可以省略
4 去重查詢 查詢去重之後的價格 distinct
5 運算查詢 查詢價格,將價格的增加100
總結
1 數據庫的概念
用來存儲數據的倉庫,倉庫需要DBMS系統創建,在硬盤上,所有數據也在硬盤上
要想操作倉庫中的數據,必須得使用sql語句
2 DBMS系統的安裝
mysql 見參考大綱 細節:卸載
oracle
db2
sqlserver
3 sql語句操作數據庫
1 使用sql語句告訴dbms系統做數據庫的crud ddl分類
2 使用sql語句告訴dbms系統做數據庫表的crud ddl分類
3 使用sql語句告訴dbms系統做數據庫表上數據的增刪改 dml分類
4 使用sql語句告訴dbms系統做數據庫表上數據的查 dql分類
簡單查詢