1、什麼是資料庫?
存儲數據的一個倉庫。 所有軟體(應用軟體、互聯網軟體…)的業務數據最終
都會存儲到資料庫中。例如說:購物系統訂單信息客戶信息、12306的車次信息、購票信息。
2、目前流行的資料庫有哪些?
oracle oracle -付費 用在電信行業較多
IBM db2 – 付費 用在金融行業比較多
微軟 sqlserver – 一般中小企業用的比較
…..
mysql – 免費開源 特別流行,尤其在互聯網行業, 功能強大,便於集群。
3、資料庫是一套軟體,一套c/s架構的軟體
如果說要讀寫資料庫數據(把信息寫入資料庫、把信息從數據讀出來)需要與dbms交互,先通過3306埠
建立連接,發送指令(sql)指令。
操作流程:
a.建立連接
b.發送指令 sql
c.關閉連接
4、資料庫架構體系
資料庫管理系統(dbms database manager system)
資料庫文件 (只允許dbms讀寫的磁碟文件)
資料庫監聽埠(3306)
5、安裝資料庫
6、資料庫的好處?
a.數據共享
b.數據查詢方便
=====================================================================
mysql客戶端類別:
1、可以是navicat可視化工具 、sqlog
2、命令行
3、java代碼也能夠
命令行連接資料庫:
mysql -h<IP> -u<用戶名> -p<密碼>
如果是本機:
mysql -hlocalhost -uroot -p123456
mysql -h127.0.0.1 -uroot -p123456
mysql -uroot -p123456
create database 資料庫名稱;
show databases; //查看當前有多少個庫
use study; //進入study
show tables; //查看當前庫有多少個表
可視化mysql客戶端工具。
=============================================================
1.mysql安裝好之後,會默認有4個資料庫,
2.默認資料庫主要是存儲用戶信息。
3.驗證mysql最終的數據是存儲在磁碟文件裡面,必須有資料庫管理系統dbms才能夠正常的讀寫。
============================================================
資料庫操作語言。
SQL:結構化查詢語言,按照sql標準寫的指令,能夠適配各種不同類型的資料庫。
DCL: 系統級別的操縱,比如說:增加資料庫用戶,給資料庫用戶賦許可權。
DDL: 對資料庫表進行增刪改查。
DML: 對系統用戶表進行增刪改查。
DBA:資料庫工程師
=============================================================
mysql資料庫是屬於關係型資料庫。
關係型資料庫: 用二維表的形式來表述數據。
二維表的概念:
行頭(列):欄位
行體(行):記錄
關係型資料庫的好處可以與面向對象開發語言無縫鏈接,能夠直接映射。
創建表一張:
欄位名規範: 小寫母、下劃線
數據類型:
表示字元串:char、varchar
char(12): 固定12個位元組
優點:寫的效率高
缺點:有浪費磁碟空間的可能
varchar(12):不會存儲12位元組,可變長字元
6+2 表示具體佔用位元組數
優點: 節省磁碟空間
缺點: 寫的效率低,需要維護欄位實際的長度
表示時間:timestamp
create table 新表名 select * from 舊錶 where 1=0
表創建的約束:
1、非空約束
2、主鍵約束
主鍵:能夠唯一表示一條記錄的欄位 (單值主鍵)
雙值主鍵
主鍵設置的參考建議:
a.不建議用業務欄位來做為主鍵
b.採用唯一整型自增長欄位(無業務含義)
好處:構造索引的平衡二叉樹效率會很高,維持樹的平衡關係方便,不需要旋轉。
3、外鍵約束 (不一定要設置)
4、默認值設置
5、timestamp 能夠將系統當前時間填充到字值
==================================table的基本用法 (增、刪、改、查)
dml:
insert語句:
添加一條記錄:
insert into 表名(欄位名1, 欄位名2, …) values (值1,值2, …);
insert into 表名 values (值1,值2, …); –插入所有字值(注意值的位置與欄位默認位置一一對應
insert into student(sid, name) values(‘A001’, ‘劉亮’);
insert into student values(‘A001’, ‘劉亮’, 20, ‘計算機科學與技術1班’,’江西贛州興國’, now(), ‘德方’,now(),’德方’);
now()–表示系統當前時間
同時添多條記錄:
insert into 表名(欄位名1, 欄位名2, …) values (值1,值2, …),(值1,值2, …),(值1,值2, …)
insert into 表名 values (值1,值2, …), (值1,值2, …), (值1,值2, …), (值1,值2, …)
表記錄複製:
insert into A表名 select * from B表名
select語句:
select 欄位1,欄位2… from 表名
查詢所有記錄的姓名、年齡、學號。
select name, age, sid from student;
查詢所有學生的所有信息?
select * from student;
按條件條件:
select 欄位1,欄位2… from 表名 where 欄位名=欄位值
select * from student where update_person=’德方1′
====================================
where條件表達式:
等於: =
大於:>
小於:<
大於等於: >=
小於等於:<=
不等於:<> 或者 !=
並且:and
或者:or
模糊查詢:
like
%與_的區別?
%:表示任意多個字元(包括0)
_:僅僅只代表1個字元
非空匹配:
is not null
範圍查詢:
in 範圍內 in(集合)
not in 範圍外
====================================
update: 修改記錄
語法:update 表名 set 欄位1=值1, 欄位2=值2 where 條件
update student set age=29 where sid=’A001′
delete : 刪除記錄
語法:delete from 表名 where 條件
刪除所有記錄:delete from 表名
truncate 表名:
delete 、truncate區別:
1、truncate屬於ddl級別的指令、delete 屬於dml級別的指令。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/252306.html
微信掃一掃
支付寶掃一掃