1. 程式人生 > >mysql數據庫基本操作(表結構)

mysql數據庫基本操作(表結構)

man hmm from 字符 my.cnf show blob 名詞 rst

裝包啟服務後會自動生成相關的配置文件

首次運行時會自動生成 root 初始秘密
初始密碼在服務日誌文件中查找 grep -i password /var/log/mysql.log

進去mysql





mysql -hlocalhost -uroot -p初始密碼



set global validate_password_policy=0;
#修改密碼默認等級為0
#0為長度 , 1為字母長度符號,2為字母長度符號,字典文件



set global validate_password_length=6;
#修改密碼默認長度要求為6



alter user root@"localhost" identified by ‘123456‘;

#修改密碼



命令行指令為臨時有效,將命令寫入配置文件/etc/my.cnf永久生效
寫入完成後重啟服務即可生效

################################################################
名詞解釋
DB,DataBase
數據庫,依照某種數據模型進行組織並存放到存儲器的數據集合
DBMS,DataBase Management System
數據庫管理系統,用來操作和管理數據庫的大型服務器軟件
DBS, DataBase System
帶有數據庫,數據庫管理系統的服務器



##################################################################

sql命令的分類





DDL 數據定義語言
(create alter drop)
DML 數據操作語言
(insert update delete)
DCL 數據控制語言
(grant revoke)
DTL 數據事物語言
(commit rollback savepoint)



###################################################################
2創建庫
create database 庫名;
#創建庫
show databases;
#查看已有庫
drop database 庫名;
#刪除庫
select database();
#查看當前所在的庫
use 庫名;

#進入庫



##################################################################
建表
create table 庫名.表名(
字段名 類型(寬度) 約束條件,
字段名 類型(寬度) 約束條件,
...
...
);
create table gamedb.stu(
name char(10), #字符(10)個
age int #數值
);
insert into 庫名.表名 values(值列表);
#插入表記錄
select * from 庫名.表名;
#查看表記錄
delete from 庫名.表名;
#刪除表記錄
desc 庫名.表名;
#查看表結構
drop table 庫名.表名;
#刪除表



##################################################################
mysql數據類型
數值型:整形、浮點型
整型:根據存儲數值的範圍整型類型的又分為:
類型 tinyint smallintmediumintintbigint
用途 微小 小 中 大 特大

大小 1字節 2字節 3字節 4字節 8字節

分為有符號無符號,範圍分別為:

有符號 -128~27 -32768~2767 -2^23~2^23-1 -2^31~2^31-1 -2^63~2^63-1

無符號 0~255 0~65535 0~2^24-1 0~2^32-1 0~2^64-1

創建時使用 unsigned 修飾時,對應的字段只保存正數

寬度僅是顯示寬度,存儲數值的大小由類型決定

使用 zerofill 時,填0代替空格補位

#例如: age int(3)

insert in to a values(3)

數據庫顯示為 003

數值超出範圍時,報錯

浮點型:根據存儲的範圍分為單精度和雙精度:
單精度 float(n,m)4字節
雙精度 double(n,m)8字節

#n表示總位數,m表示小數位的位數

#例如:float(5,2) 最大為999.99最小為-999.99

數值類型的寬度是顯示寬度不能夠限制給字段的賦值的大小,大小由字段類型決定。

################################################################

字符型:

定長: char(字符數)

#最大長度255字符,不夠指定字符數時在右邊用空格補齊,字符數斷超出時,無法寫入數據。

變長:varchar

#按數據實際大小分配存儲空間,字符數斷超出時,無法寫入數據。

大文本類型:text/blob

#字符數大於65535存儲時使用。

實際生產環境中使用 char 的會相對較多,因為 varchar 會占用一部分CPU資源來計算存儲大小。

日期時間型
年 year YYYY 2017

#year默認用4為數字表示,當只用2位數字賦值時,01~69視為2000~2069

70~99時為1970~1999

日期 date YYYYMMDD20171220
時間 time HHMMSS155145
日期時間
datetime YYYYMMDDHHMMSS
timestamp YYYYMMDDHHMMSS
datetime 當沒有為他賦值時,會顯示為空
timestamp 當沒有為他賦值時,會使用系統當前時間



###################################################################
now()
#當前系統的時間
year()
#獲取數據中的年
day()
#獲取數據中的天
date()
#獲取數據中的日期
time()
#獲取數據中的時間



###################################################################
枚舉類型:字段的值只能在列舉的範圍內選擇
字段名 enum(值列表)
#單選,從給定值集合中選擇單個值。
字段名 set(值列表)
#多選,從給定值集合中選擇一個或多個值。



###################################################################
設置字段的約束條件:作用限制如何給字段賦值。
Null 是否允許為空 不允許則在類型後面跟NOT Null
Default 設置默認值,缺省為NULL 類型後面跟default



###################################################################
修改表結構
mysql> alter table 表名 執行動作;



add 字段名 類型(寬度) 約束條件,
#添加新字段,默認在最後。
add 字段名 類型(寬度) 約束條件 first;
#所有字段的前面
add 字段名 類型(寬度) 約束條件 after 字段名;
#在什麽字段後面添加
drop 字段名;
#刪除字段
modify 字段 類型(寬度) 約束條件
#修改字段類型
change 原字段名 新字段名 類型(寬度) 約束條件
#修改字段名
alter table 原表名 rename 新表名;
#修改表名

mysql數據庫基本操作(表結構)