新聞中心
MySQL的數(shù)據(jù)類(lèi)型和表結(jié)構(gòu)
網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì),成都做網(wǎng)站公司-創(chuàng)新互聯(lián)已向上千多家企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷(xiāo)等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。
DB,DataBase
-數(shù)據(jù)庫(kù):依照某種數(shù)據(jù)模型進(jìn)行組織并存放到存儲(chǔ)器的數(shù)據(jù)集合。
DNMS,DataBase Management System
-數(shù)據(jù)庫(kù)管理系統(tǒng):用來(lái)操縱和管理數(shù)據(jù)庫(kù)的大型服務(wù)軟件。
DBS,DataBase System
-數(shù)據(jù)庫(kù)系統(tǒng):即DB+DBMS,指帶有數(shù)據(jù)庫(kù)并整合了數(shù)據(jù)庫(kù)管理軟件的計(jì)算機(jī)系統(tǒng)。
Oracle(甲骨文):Oracle Database 、 MySQL
Microsoft(微軟):SQL Server 、Access
IBM: DB2
Sybase: Sybase
MySQL主要特點(diǎn):
-關(guān)系型數(shù)據(jù)庫(kù)
-支持Linux/Unix、Windows等多種操作系統(tǒng)
-使用C和C++編寫(xiě),可移植性強(qiáng)
-通過(guò)API支持Python/Java/Perl/PHP等語(yǔ)言
應(yīng)用環(huán)境:
-LAMP平臺(tái),與Apache HTTP Server組合
-LNMP平臺(tái),與Nginx組合
關(guān)系型數(shù)據(jù)庫(kù)服務(wù)軟件(RDBMS):按照規(guī)定的結(jié)果存儲(chǔ)數(shù)據(jù),并且數(shù)據(jù)(values)之間可以做關(guān)聯(lián)操作。
例:Oracle MySQL DB2 SQL Server
非關(guān)系型數(shù)據(jù)庫(kù)軟件(NOSQL):以鍵值對(duì)的形式,一一對(duì)應(yīng),數(shù)據(jù)(values)之間沒(méi)有關(guān)聯(lián)。
例:redis mongdb
一、安裝MySQL
yum -y install perl-Data-Dumper Perl-JSON perl-Time-HiRes #依賴包
tar -xf mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar
rpm -Uvh mysql-conmmunity-*.rpm #U升級(jí)安裝,可替換沖突文文件。
二、啟動(dòng)服務(wù)
/usr/lib/systemd/system/mysqld.service
或
systemctl start mysql
systemctl enable mysql
三、登錄 mysql -uroot -p"matoa>AV 四、修改密碼 mysql>set global validate_password_policy=0; #只驗(yàn)證密碼長(zhǎng)度 mysql -uroot -p123456 #使用新密碼登錄 要想實(shí)現(xiàn)永久生效需修改配置文件: 服務(wù)相關(guān)文件 使用mysql命令: 指令類(lèi)型: 基本注意事項(xiàng): 命令: create table 庫(kù)名.表名( #創(chuàng)建指定的表 drop table 庫(kù)名.表名; 刪除指定庫(kù)下的表 insert into 庫(kù)名.表名 values(值列表); #插入表記錄 select * from 庫(kù)名.表名; 查看表的所有記錄 常見(jiàn)類(lèi)型的信息 1.數(shù)值型 1.1整數(shù)型 1.2浮點(diǎn)型 2.字符類(lèi)型 2.2變長(zhǎng):varchar(字符數(shù)) 2.3大文本類(lèi)型:text/blob 3.日期時(shí)間類(lèi)型 3.2日期時(shí)間,TIMESTAMP 3.3日期,DATE 3.4年份,YEAR 3.5時(shí)間,TIME 關(guān)于日期時(shí)間字段,當(dāng)未給TIMESTAMP字段賦值時(shí),自動(dòng)以當(dāng)前系統(tǒng)時(shí)間賦值,而DATETIME字段默認(rèn)值為NULL。 時(shí)間函數(shù): 4.枚舉類(lèi)型 4.2從給定值集合中選擇一個(gè)或多個(gè)值,SET。 約束條件 修改表的字段 執(zhí)行動(dòng)作: ADD 字段名 類(lèi)型(寬度) 約束條件 FIRST; //添加字段到最前面 ADD 字段名 類(lèi)型(寬度) 約束條件 AFTER 字段名2; //添加字段到字段2后面 2.修改字段類(lèi)型 3.修改字段名 4.刪除指定字段
默認(rèn)的數(shù)據(jù)庫(kù)管理員賬號(hào)root,允許從localhost訪問(wèn)。
首次登錄密碼在安裝時(shí)隨機(jī)生成,存儲(chǔ)在錯(cuò)誤日志文件里。
grep 'temporary password' /var/log/mysql.log
.....@localhost: matoa>AV
0 or LOW 長(zhǎng)度
1 or MEDIUM(默認(rèn)) 長(zhǎng)度,數(shù)字,小寫(xiě)/大寫(xiě),和特殊字符
2 or STRONG 長(zhǎng)度,數(shù)字,小寫(xiě)/大寫(xiě)和特殊字符,字典文件
通過(guò)客戶端工具mysql連接本地服務(wù)器,使用alter user重設(shè)置口令。
mysql>set global validate_password_length=6; #修改密碼長(zhǎng)度為6個(gè)字符,默認(rèn)是8個(gè)字符。
mysql>alter user user() identified by "123456"; #修改登錄密碼
mysql>quit #退出
vim /etc/my.cnf
.....
validate_password_policy=0
validate_password_length=6
/etc/my.cnf 配置文件
/var/lib/mysql 數(shù)據(jù)庫(kù)目錄
默認(rèn)端口 3306
進(jìn)程名 mysqld
傳輸協(xié)議 TCP
進(jìn)程所有者 mysql
進(jìn)程所屬組 mysql
mysql -h服務(wù)器ip -u用戶名 -p密碼 [數(shù)據(jù)庫(kù)庫(kù)名]
MySQL指令:環(huán)境切換,看狀態(tài),退出等控制
SQL指令:數(shù)據(jù)庫(kù)定義/查詢/操縱/授權(quán)語(yǔ)句
DDL 數(shù)據(jù)定義語(yǔ)言(create alter drop)
DML 數(shù)據(jù)操作語(yǔ)言(insert updata delect)
DCL 數(shù)據(jù)控制語(yǔ)言(grant revoke)
DTL 數(shù)據(jù)事物語(yǔ)言(commit rollback savepoint)
1.指令不區(qū)分大小寫(xiě)(密碼、變量值除外)
2.每條SQL指令以";"結(jié)束或分隔。
3.c\可廢棄當(dāng)前編寫(xiě)錯(cuò)的指令。
show databases; 查看所有的庫(kù)
use 庫(kù)名; 進(jìn)入到指定庫(kù)
show tables; 列出當(dāng)前庫(kù)內(nèi)的所有表
describe 表名; 查看表的字段結(jié)構(gòu)
create datebases 庫(kù)名; 創(chuàng)建指定庫(kù)
select database(); 查看當(dāng)前所在的庫(kù)
drop databas 庫(kù)名; 刪除指定的庫(kù)
字段名1 字段類(lèi)型(寬度) 約束條件;
字段名2 字段類(lèi)型(寬度) 約束條件;
...........
);例建表:
mysql>create table gamedb.stu(
mysql>name char(10),
mysql>age int
mysql>);
例:
insert into gamedb.stu values("jim",21),("tom",29);
delete from 庫(kù)名.表名; 刪除表的所有記錄
數(shù)值型:體重、身高、成績(jī)、工資、價(jià)格等
字符型:姓名、工作單位、地址等
枚舉型:興趣愛(ài)好、性別等
日期時(shí)間型:出生日期、注冊(cè)時(shí)間等
類(lèi)型 大小 范圍(有符號(hào)) 范圍(無(wú)符號(hào)) 用途
TINYINT 1字節(jié) -128~127 0~255 微小整數(shù)
SMALLINT 2字節(jié) -32768~32767 0~65535 小整數(shù)
MEDUIMINT 3字節(jié) -(2^23)~(2^23)-1 0~(2^24)-1 中整數(shù)
INT 4字節(jié) -(2^31)~(2^31)-1 0~(2^32)-1 大整數(shù)
BIGINT 8字節(jié) -(2^63)~(2^63)-1 0~(2^64)-1 極大整數(shù)
FLOAT 4字節(jié) 單精度浮點(diǎn)數(shù)
DOUBLE 8字節(jié) 雙精度浮點(diǎn)數(shù)
DECIMAL 對(duì)DECIMAL(M,D),其中M為有效位數(shù)、D為小數(shù)位數(shù),M應(yīng)大于D,占用M+2字符
使用UNSIGED修飾時(shí),對(duì)應(yīng)的字段只保存正數(shù)(無(wú)符號(hào))。
數(shù)值不夠指定寬度時(shí),默認(rèn)是在左邊填空格補(bǔ)位。
寬度僅是顯示寬度,存數(shù)據(jù)值的大小有類(lèi)型決定。
使用關(guān)鍵字ZEROFILL時(shí),填0代替空格補(bǔ)位。
數(shù)值超出范圍時(shí),報(bào)錯(cuò)。
定義格式:float(總寬度,小數(shù)位數(shù))
當(dāng)字段值與類(lèi)型不匹配時(shí),字段值作為0處理。
數(shù)值超出范圍時(shí),僅保存最大/最小值。
浮點(diǎn)型:根據(jù)存儲(chǔ)數(shù)值的范圍分為 單精度 雙精度
單精度f(wàn)loat(n,m)
雙精度double(n,m)
n表示總位數(shù)
m表示小數(shù)位的位數(shù)
2.1定長(zhǎng):char(字符數(shù))
最大長(zhǎng)度255字符。
不夠指定字符數(shù)時(shí)默認(rèn)在右邊用空格補(bǔ)齊。
字符數(shù)超出時(shí),無(wú)法寫(xiě)入數(shù)據(jù)。
按數(shù)據(jù)實(shí)際大小分配存儲(chǔ)空間。
字符數(shù)超出時(shí),無(wú)法寫(xiě)入數(shù)據(jù)。
缺點(diǎn):每次都要計(jì)算,消耗資源。
字符數(shù)大于655535存儲(chǔ)時(shí)使用。例:
mysql>create database ku;
mysql>create table ku.biao(
>name char(7) ,
>age tinyint(3) unsigend,
>high float(3,2)
>);
mysql>desc ku.biao;
Fied Type Null key Default Extra
字段名 字段類(lèi)型 是否為空 索引類(lèi)型 默認(rèn)值 描述信息
3.1日期時(shí)間,DATETIME
占用8個(gè)字節(jié)。
范圍:1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999
例:2017-12-31 23:59:59
占用4個(gè)字節(jié)。
范圍:1970-01-01 00:00:00.000000 ~ 2038-01-19 03:14:07.999999
例:2017-12-31 23:59:59
占用4個(gè)字節(jié)。
范圍:0001-01-01 ~ 9999-12-31
占用1個(gè)字節(jié)。
范圍:1901~2155
占用3個(gè)字節(jié)。
格式:HH:MM:SS
YEAR年份的處理,默認(rèn)用4位數(shù)字表示,當(dāng)只用2位數(shù)字賦值時(shí),01~69視為2000~2069,而70~99視為1970~1999。例:
mysql>create table ku.biao2(
>name varchar(8),
>starty year,
>birthy date,
>abc time
>);
now() 獲取調(diào)用此函數(shù)時(shí)的系統(tǒng)日期
sysdate() 執(zhí)行時(shí)間動(dòng)態(tài)獲得系統(tǒng)時(shí)間
sleep(N) 休眠N秒
curdate() 獲取當(dāng)前的系統(tǒng)時(shí)間
curtime() 獲取當(dāng)前的系統(tǒng)時(shí)刻
month() 獲取指定時(shí)間中的月份
date() 獲取指定時(shí)間中的日期
time() 獲取指定時(shí)間中的時(shí)刻例:
mysql>select now();
mysql>select date(now());
mysql>select time(now());
4.1從給定值集合中選擇單個(gè)值,ENUM。
格式:enum(值1,值2,值N)
格式:set(值1,值2,值N)例:
mysql>create table ku.biao3(
>name char(5),
>gen enum("boy","girl"),
>likes set("book","music","pingpang","sleep")
>);
Null 允許為空,默認(rèn)設(shè)置
NOT NULL 不允許為空
key 索引類(lèi)型
Default 設(shè)置默認(rèn)值,缺省為NULL例:
mysql>create table ku.tbiao5(
>name varchar(4) not null,
>gen enum("boy","girl") default "boy",
>age int(3) not null default 22,
>);
mysql>desc ku.biao5;
基本用法:
ALTER TABLE 表名 執(zhí)行動(dòng)作;
1.添加新字段
ADD 字段名 類(lèi)型(寬度) 約束條件;
MODIFY 字段名 類(lèi)型(寬度) 約束條件;
CHANGE 源字段名 新字段名 類(lèi)型(寬度) 約束條件;
DROP 字段名;例:
mysql>alter table ku.biao5 add
>kuki varchar(5) not null ;
網(wǎng)頁(yè)標(biāo)題:MySQL的數(shù)據(jù)類(lèi)型和表結(jié)構(gòu)
瀏覽路徑:http://www.ef60e0e.cn/article/gdjccp.html