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級別的指令。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。