資料庫基礎

2021-09-30 16:54:54 字數 3906 閱讀 7857

1、資料庫的基本概念:用來儲存或運算元據內容

2、資料庫型別:關係型資料庫,是目前市場上主流的資料庫,主要代表mysql,oracle

非關係型資料庫,新興資料庫,主要代表mongodb等

3、sql語言 - 無論什麼資料庫產品,都使用sql語言

ddl - 資料定義語言(資料庫+表)

dcl - 資料控制語言(許可權)

dql - 資料查詢語言

dml - 資料操作語言

4、注意

sql語言並不區分大小寫(官方建議大寫)

sql語言使用字串時,建議使用單引號'

5、ddl                  主要三個功能  :create|alter|drop

① 資料庫操作

建立資料庫

用法 - create database 資料庫名稱;

檢視資料庫

用法 - show databases;

修改資料庫

用法 - alter database 資料庫名稱 character set utf8(具體操作);

刪除資料庫

用法 - drop database 資料庫名稱;

使用(切換)資料庫

用法 - use 資料庫名稱;

資料庫一旦被建立,很少修改或刪除

②資料表操作

資料型別

數值(number)資料型別

int - 整數

float/double - 浮點型(小數)

decimal - 精確值(金額等)

日期(date)資料型別

date - 日期(預設格式:yyyy-mm-dd)

datetime - 日期時間(yyyy-mm-dd hh:mm:ss)

timestamp - 時間戳(標識:唯一)

字串(string)資料型別

char - 長度固定的字串

定義乙個字串的長度為10,實際儲存的內容為"abc",未被字元占用的位置會以空格補位

varchar - 長度可變的字串

定義乙個字串的長度為10,實際儲存的內容為"abcde"

一、建立資料表

create table (

欄位名稱1  資料型別,

欄位名稱2  資料型別,

...);

約束主鍵約束 - primary key       作用 - 唯一,不可重複

主鍵自增約束 - auto_increment        作為主鍵的字段,用於自增,之後就可以設定主鍵的值為null了

案例:建立使用者表(id,name,pwd,age,email)

create table   user (

id  int primary key auto_increment, //標識(唯一,不可重複)

name  varchar(30),

pwd     varchar(30),

age   int,

email varchar(30),

);二、刪除資料表

用法 - drop table 表名;

三、檢視表結構

用法 - desc 表名;

6、dml(增刪改)    

一、插入(新增)資料

用法一insert into 表名 values(字段值1,字段值2,...);

* 注意   當前表具有多少字段,values輸入多少字段值,如果哪個欄位是主鍵自增的話,使用null補位

用法二insert into 表名(欄位名1,欄位名2,...) values(字段值1,字段值2,...)

* 注意表名後定義多少字段,values後輸入多少字段,當前資料表的字段是允許為空的

練習 - order表

1. 插入orderid,ordername,price,addr,ordertime

insert into order values(null,'linghuchong',3.5,'huashan','2015-11-17 15:44:40')

2. 插入ordername,addr,ordertime字段值

insert into order(ordername,addr,ordertime) values('renyingying',10,'heimuya')

二、 更新(修改)資料

用法一    update 表名 set 欄位名=字段值;            注意 - 修改所有資料(指定字段值)

用法二    update 表名 set 欄位名=字段值 where 欄位名=字段值;

set後面的"欄位名=字段值",為設定的值

where後面的"欄位名=字段值",為查詢的值

用法三     update 表名 set 欄位名1=字段值1,欄位名2=字段值2 where 欄位名=字段值;

練習:修改order表

修改addr字段值為"長春"

update order set addr='長春';

修改id為2記錄的price修改為100

update order set price=100 where orderid=2;

三、 刪除資料

用法一 - delete from 表名;                   注意 - 刪除指定表中所有資料

用法二 - delete from 表名 where 欄位名=字段值;

實際的開發中基本不使用delete語句,以防我們的使用者反悔

刪除型別

物理刪除 - 執行delete語句

邏輯刪除

簡單來說,對於使用者來講是刪除的,對於實際來講並沒有刪除

為指定表,增加乙個字段(state|status),表示當前這條記錄是什麼狀態

值為1的話,表示這條記錄是正常的

值為0的話,表示這條記錄是刪除的

7、 dql(查)

基本查詢 - 新老版本查詢所需時間一樣

用法一 - select * from 表名;

用法二 - select 欄位名1,欄位名2,... from 表名;

條件基本查詢

用法 - select * from 表名 where 欄位名=字段值;

複雜條件查詢

and                     - 表示多個條件同時滿足

or                        - 表示其中乙個條件滿足

in(set)               - 表示乙個字段包含多個值,set - 多個值,之間使用","

=                          - 表示字段值為指定值

between and    - 等於 >= and <=

is null               - 匹配null值

!=或<>               -匹配不等的值

排序查詢 - order by 欄位名

asc - 正序排序,預設值,如果想要正序排列可以不用寫

desc - 倒序排序

用法 -  select * from 表名 where 條件 order by 欄位名;

練習 - myorder

1. 查詢addr為"光明頂"的所有記錄

select * from myorder where addr='光明頂';

2. 查詢id為1或ordername為"renyingying"的所有記錄

select * from myorder where id=1 or ordername='renyingying';

3. 查詢id為1,2,3的所有記錄

select * from myorder where id in(1,2,3);

8、資料庫操作原則 - 只增不刪

資料庫表示的空

''           - 空字串   用is null查詢時不匹配

null   - 值不存在   用is null查詢時不匹配

資料庫 資料庫基礎

什麼是sql 結構化查詢語言 structtured query language sql的作用 啟動mysql.exe,連線伺服器後,就可以使用sql來操作伺服器了。類似php中操作mysql的語句就是sql語句 sql標準 由國際標準化組織 iso 制定的,對dbms 資料庫管理系統 的統一操作...

資料庫基礎 資料庫設計

一 資料庫生命週期 1.週期 需求分析,概念結構設計,邏輯設計,物理設計,系統實施,系統執行和維護。2.響應的文件 二 正規化 一般資料庫要求規範化到第三正規化,視具體需求重新調整。第一正規化 1nf 強調列的原子性,即列不能分為多列。第二正規化 2nf 關係屬於第一正規化,且每乙個非主屬性完全函式...

資料庫基礎

一.資料庫事物特徵 1.atomic 原子性 不可分割 2.consistency 一致性 參照完整 3.isolation 隔離性 防止併發 4.durability 永續性 永久儲存資料 二.事物和併發 1.併發問題 第一類丟失,髒讀,虛讀,不可重複讀,第二類丟失更新 不可重複讀的特例 2.鎖的...