001.數(shù)據(jù)庫基礎(chǔ)
1.什么是數(shù)據(jù)
?? ?對客觀事物的符號表示戚哎,也是信息的載體;
2.數(shù)據(jù)庫
?? ?用來管理數(shù)據(jù)的一個軟件软舌;
3.常見的關(guān)系型數(shù)據(jù)庫
?? ?oracle:oracle公司的數(shù)據(jù)庫;
?? ?mysql:開源
?? ?sqlserver:微軟
?? ?db2:ibm;
4.數(shù)據(jù)模型的分類
?? ?層次型
?? ?網(wǎng)狀
?? ?關(guān)系型
5.mysql的安裝
?? ?1.下載
?? ?2.安裝蒲赂; ? ?不能有中文,關(guān)閉防火墻顽冶;設(shè)置UTF-8
?? ?3.安裝一個客戶端;
6.mysql的存儲結(jié)構(gòu)
?? ?mysql服務(wù)器中包含多個數(shù)據(jù)庫(database),每個庫中包含多個表(table),每個表中包括多條記錄(record)
7.mysql基本命令
?? ?mysql;
?? ?mysqladmin
?? ?mysqldump;
002.mysql命令
1.mysql命令
?? ?作用:作為客戶端的工具對服務(wù)發(fā)送連接請求召夹;它就是一個基于命令行的客戶端工具;
?? ?mysql [-h ip] -u 帳號 ?-p密碼
?? ?例如?
?? ??? ??? ?mysql -h 192.168.1.100 -u root -ptiger?? ?
?? ??? ??? ?mysql -u root -ptiger test<d:/create.sql
2.mysql程序的內(nèi)部命令
?? ?show databases:顯示當(dāng)前服務(wù)中所有數(shù)據(jù)庫列表;
?? ?use 數(shù)據(jù)庫名: 進入到某個數(shù)據(jù)庫 ? 岩喷,例如 use test
?? ?show tables:顯示當(dāng)前數(shù)據(jù)中的所有數(shù)據(jù)表的信息;
?? ?\c:放棄
?? ?\s:顯示數(shù)據(jù)庫狀態(tài)
?? ?\h:顯示 mysql程序的命令
?? ?\q: 退出? ? 等...
3.mysqladmin命令
?? ?作用:數(shù)據(jù)庫的管理工作
?? ?mysqladmin -u root -ptiger create db1;
?? ?mysqladmin -u root -ptiger password "123456"
4.mysqldump命令
?? ?作用:備份數(shù)據(jù)庫
?? ?示例: mysqldump -u root -ptiger test>d:/back.sql
003.sql語句之DDl
1.數(shù)據(jù)庫的基礎(chǔ)知識?
?? ?庫:database
?? ?表: ?table
?? ?記錄:recored
2.sql語言
?? ?sql:(structure query language)結(jié)構(gòu)化查詢語言;
?? ?作用:對數(shù)據(jù)庫中的數(shù)據(jù)做CURD 的操作(增刪查改)以及其它的管理工作;
?? ?通俗的說监憎,sql 就是開發(fā)者與關(guān)系型數(shù)據(jù)進行交互的一種語言;
3.sql語言的分類
?? ?DDL:數(shù)據(jù)定義語言纱意;
?? ?DML:數(shù)據(jù)操作語言
?? ?DCL:數(shù)據(jù)控制語言
?? ?TCL:事務(wù)控制語言?? ?
4.DDL; 用來操作數(shù)據(jù)庫對象的語言(database,table,index)
?? ?create;alter,drop,truncate;
create 語句
?? ?創(chuàng)建表的語法;
?? ??? ?create table table_name(
?? ??? ??? ?列名1 數(shù)據(jù)類型 [約束]鲸阔,
?? ??? ??? ?列名2 數(shù)據(jù)類型 [約束]妇穴,
?? ??? ??? ?。隶债。腾它。
?? ?)
?? ?示例
?? ?create table student(
?? ??? ?stuno int primary key,
?? ??? ?sname varchar(20) not null,
?? ??? ?sex varchar(5),
?? ??? ?birth date
?? ?)
mysql中的數(shù)據(jù)類型
?? ?數(shù)字:int,float,double,decimal
?? ?字符:單引號表示,char,varchar;
?? ??? ??? ??? ?char與varchar的區(qū)別死讹?
?? ??? ??? ??? ?char是固定的字符瞒滴,varchar是可變的字符;
?? ??? ??? ??? ?char(5) ? ? ? ? "a ? ? "
?? ??? ??? ??? ?varchar(5); ? ?"a"
?? ?日期:
?? ??? ??? ?date;time,datetime,year,timestamp;
?? ?大對象:
?? ??? ??? ?存儲大量數(shù)據(jù)時可以使用;
?? ??? ??? ?blob:用來存儲二進制, 可存圖片赞警,視頻等
?? ??? ??? ?text:用來存儲大文本;大量的文本;
004.char與varchar的區(qū)別
char與varchar的區(qū)別(5.5)
char 是定長的妓忍,而varchar是變長的;
關(guān)于char與varchar的最大長度,不同版本之間有區(qū)別,5.0 全都 是255愧旦,而5.5,varchar的長度變成了65535字節(jié);
每條記錄的字節(jié)總和不能超過65535世剖,但不包括大對象類型的數(shù)據(jù)(text,blob)
如果字符串以空格結(jié)尾,char會自動去除笤虫,varchar會保留存儲
005.約束
約束?? ?
?? ?約束指的就是限制旁瘫;約束的種類有
?? ?primary key :主鍵 祖凫,主鍵字符為必填,同時不能重復(fù)酬凳;每個表只有一個主鍵(主鍵可以為復(fù)合主鍵),主鍵的列通常用來唯一的標(biāo)識表中的每條記錄;
?? ?not null :非空惠况,不能為空;
?? ?unique: 唯一,可以為空宁仔,不能重復(fù);
?? ?check : mysql不支持稠屠;oracle支持,自定義規(guī)則;
?? ?foregin key:外鍵,外鍵的取值必須來源于與之關(guān)聯(lián)的主鍵值;
?? ?default 默認(rèn)值 翎苫,什么都不添的時侯的默認(rèn)值 权埠;
?? ?auto_incrment ?:自動增長,只能用于整數(shù)類型
006.DDL
1.drop 語句
?? ?drop table 表名;
?? ??? ?作用:刪除整個表煎谍;
2.truncat 截斷攘蔽;
?? ?truncate table 表名;
?? ?作用:清空表中的所有記錄,但保留表;
3.alter 語句:修改表結(jié)構(gòu)
?? ?修改表的語法是粱快;
?? ??? ?alter table ?表名 action; action之前的部分是固定的,action是變化的叔扼;
?? ?示例 事哭;
?? ??? ?1.增加一個新列
?? ??? ??? ?alter table book add price int not null;
?? ??? ?2.修改列的類型
?? ??? ??? ?alter table book modify name varchar(50);
?? ??? ?3.增加一個主鍵約束?
?? ??? ??? ?alter table book add primary key(isbn);
?? ?4.增加一個外鍵約束
---------------------
作者:Sunhongyu51
原文:https://blog.csdn.net/Sunhongyu51/article/details/85929552
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接瓜富!