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-hk/n/252306.html
微信掃一掃
支付寶掃一掃