1.持久化資料到本地
2.可以實作結構化查詢,友善管理
1、db:資料庫,儲存一組有組織的資料的容器
2、dbms:資料庫管理系統,又稱為資料庫軟體(産品),用于管理db中的資料
3、sql:結構化查詢語言,用于和dbms通信的語言
1、将資料放到表中,表再放到庫中
2、一個資料庫中可以有多個表,每個表都有一個的名字,用來辨別自己。表名具有唯一性。
3、表具有一些特性,這些特性定義了資料在表中如何存儲,類似java中 “類”的設計。
4、表由列組成,我們也稱為字段。所有表都是由一個或多個列組成的,每一列類似java 中的”屬性”
5、表中的資料是按行存儲的,每一行類似于java中的“對象”。
方式一:計算機——右擊管理——服務
方式二:通過管理者身份運作
net start 服務名(啟動服務)
net stop 服務名(停止服務)
方式一:通過mysql自帶的用戶端
隻限于root使用者
1.不區分大小寫,但建議關鍵字大寫,表名、列名小寫
2.每條指令最好用分号結尾
3.每條指令根據需要,可以進行縮進 或換行
4.注釋
單行注釋:#注釋文字
單行注釋:-- 注釋文字
多行注釋:/* 注釋文字 */
dql(data query language):資料查詢語言
select
dml(data manipulate language):資料操作語言
insert 、update、delete
ddl(data define languge):資料定義語言
create、drop、alter
tcl(transaction control language):事務控制語言
commit、rollback
文法:
select 要查詢的東西
【from 表名】;
條件查詢:根據條件過濾原始表的資料,查詢到想要的資料
select
要查詢的字段|表達式|常量值|函數
from
表
where
條件 ;
1、字元函數
concat拼接
substr截取子串
upper轉換成大寫
lower轉換成小寫
trim去前後指定的空格和字元
ltrim去左邊空格
rtrim去右邊空格
replace替換
lpad左填充
rpad右填充
instr傳回子串第一次出現的索引
length 擷取位元組個數
2、數學函數
round 四舍五入
rand 随機數
floor向下取整
ceil向上取整
mod取餘
truncate截斷
3、日期函數
now目前系統日期+時間
curdate目前系統日期
curtime目前系統時間
str_to_date 将字元轉換成日期
date_format将日期轉換成字元
4、流程控制函數
if 處理雙分支
case語句 處理多分支
情況1:處理等值判斷
情況2:處理條件判斷
5、其他函數
version版本
database目前庫
user目前連接配接使用者
特點:
1、可以按單個字段分組
2、和分組函數一同查詢的字段最好是分組後的字段
3、分組篩選
針對的表 位置 關鍵字
分組前篩選: 原始表 group by的前面 where
分組後篩選: 分組後的結果集 group by的後面 having
4、可以按多個字段分組,字段之間用逗号隔開
5、可以支援排序
6、having後可以支援别名
一、傳統模式下的連接配接 :等值連接配接——非等值連接配接
二、sql99文法:通過join關鍵字實作連接配接
三、自連接配接
案例:查詢員工名和直接上級的名稱
sql99
sql92
含義:
特點:
應用場景:
文法:
引入:
union 聯合、合并
insert into 表名(字段名,...)
values(值1,...);
修改單表文法:
修改多表文法:
方式1:delete語句
單表的删除: ★
delete from 表名 【where 篩選條件】
多表的删除:
delete 别名1,别名2
from 表1 别名1,表2 别名2
where 連接配接條件
and 篩選條件;
方式2:truncate語句
兩種方式的差別【面試題】
庫的管理:
表的管理:
#1.建立表
);
desc studentinfo;
#2.修改表 alter
文法:alter table 表名 add|modify|drop|change column 字段名 【字段類型】;
#①修改字段名
alter table studentinfo change column sex gender char;
#②修改表名
alter table stuinfo rename [to] studentinfo;
#③修改字段類型和列級限制
alter table studentinfo modify column borndate date ;
#④添加字段
alter table studentinfo add column email varchar(20) first;
#⑤删除字段
alter table studentinfo drop column email;
#3.删除表
drop table [if exists] studentinfo;
相關步驟:
隐式事務,沒有明顯的開啟和結束事務的标志
顯式事務,具有明顯的開啟和結束事務的标志
事務并發問題如何發生?
事務的并發問題有哪些?
如何避免事務的并發問題?
設定隔離級别:
檢視隔離級别:
含義:了解成一張虛拟的表
視圖和表的差別:
視圖的好處:
4、删除視圖的資料
delete from my_v4;
含義:一組經過預先編譯的sql語句的集合
好處:
分類:
類似于方法:
注意
調用存儲過程
學過的函數:length、substr、concat等
一、全局變量
作用域:針對于所有會話(連接配接)有效,但不能跨重新開機
二、會話變量
作用域:針對于目前會話(連接配接)有效
一、使用者變量
聲明并初始化:
指派:
使用:
二、局部變量
聲明:
二者的差別:
使用者變量 目前會話 會話的任何地方 加@符号,不用指定類型
局部變量 定義它的begin end中 begin end的第一句話 一般不用加@,需要指定類型
一、if函數
文法:if(條件,值1,值2)
特點:可以用在任何位置
二、case語句
可以用在任何位置
三、if elseif語句
隻能用在begin end中!!!!!!!!!!!!!!!
三者比較:
應用場合
if函數 簡單雙分支
case結構 等值判斷 的多分支
if結構 區間判斷 的多分支