1. 程式人生 > >MySQL的基礎分部

MySQL的基礎分部

程序 數據庫操作 大文本 cal 由於 進行 any times 向下取整

MySQL的基本操作

#進入數據庫
mysql -h localhost -uroot -p
#展示所有的數據庫
show databases  
#進入某一個數據庫
use database_name
#展示某個數據庫中的所有表
show tables
#退出數據庫
exit&&quit
#允許用戶遠程登錄
grant all on *.* to 用戶名@‘%‘identified by ‘密碼‘  #運行這句話,也就表示在MySQL的user表中創建了一個用戶。

1. MySQL的基本數據類型:

(1)整數

技術分享圖片
其中需要註意的是:bit(1) 一位,表示一個比特位。(常用與表示性別)

(2)浮點數

float:聲明格式:float(m,n) m:總長度,n:小數點位數;默認為(10,2)
double:聲明格式:double(m,n) m:總長度,n:小數點位數;默認為(16,4)
decimal:decimal(m,n),m:總長度,n:小數點位數,無默認值,主要精確的表示存款。

(3)字符串類型:

char:聲明:char(n) 表示定長字符串。不足時用空格填充,超過時報錯
varchar:聲明:varchar(n),表示可變長度字符串,不足時以字符串長度,超過時,改變長度。(65535)
text

:用戶存放大文本

(4)日期類型:

date:表示日期 (年-月-日 YYYY-MM-DD)
time:表示時間 (時-分-秒 HH:MM:SS)
datetime:日期時間 (日期時間: YYYY-MM-DD HH:MM:SS),範圍:1000 01- 00:00:00 - 9999-12-31 23:59:59
timestamp:時間戳 (時間戳: YYYYMMDDSSHHMMSS),範圍:1970 01- 00:00:00 - 2037-12-31 23:59:59

(5)其他類型:

blob:存放二進制
clob

:存放二進制
enum:枚舉類型
json:json數據

2.SQL語句

  sql是結構化的查詢語句(SQL),是一種數據庫查詢和程序設計語言,用於存儲數據以及查詢、更新、和管理關系型數據庫。用於數據庫數據的增刪改查、數據庫對象的創建,修改,和刪除、用戶權限、以及事務。
   sql語句的分類:
   - DQL:數據查詢語句:select
   - DML:數據庫操作語句:insert 、update 、delete
   - DDL :數據庫定義語句:create、alter、drop
   - DCL:數據庫控制語句:grant (授權)、revoke(取消授權)
   - TCL:事務控制語句:COMMIT、ROLLBACK

(1)DDL

   作用:用於刪除、創建、查看、切換數據庫、表
操作數據庫

#創建數據庫
create databse database_name charset=utf-8
#刪除數據庫
drop database database_name 
#使用/切換數據庫
use databse_name
#查看當前選擇的數據庫
select database() 

操作表

#展示數據庫中的所有表
show tables
#創建表
create table t_table(field1 type,field type ...)
#修改字段:add|change|drop|modify
#添加字段
alter table t_name add field type 
#添加字段位置到首位
alter table t_name add field type first
#修改已有字段位置
alter table t_name modify field1 type after/before field2
#修改字段名稱
alter table t_name change old_name new_name type 
#修改字段類型
alter table t_name modify field type
#刪除字段
alter table t_name drop field
#刪除表
drop  table t_name;

補充
change和modify的區別?
alter table 表名 modify 字段 屬性 約束;
alter table 表名 change 舊字段 新字段 屬性 約束;

#顯示表的結構
desc t_name
#表的重命名
rename table old_name to new_name 
#查看表的建表語句
show create table t_name;

(2)DML

  用於操作數據的語句(不包括修改表的結構和屬性)
插入數據

#插入一條完整的記錄
insert into 表名 values(....)
#缺省插入(字段與值要對應)
insert into 表名(fields1,field2,field3...) values(value1,value2value3...)
#多行完整數據插入
insert into 表名 values(....),(...),(...),(...)
#將一張表中所有數據插入到另一張表中
insert into table1 select * from table2 

修改數據

#update 
update t_name set field1=value1 ,field2=value2,field3=value3 where ...
ps:如果不加where  ,默認全部修改

刪除數據

#刪除一條記錄
delete from t_name where ....
ps:如果不加where 默認刪除表中的所有記錄,但是自增不會重置
#清空表數據,並將自增設置為1,重新開始
truncate table userinfo; 

(3)MySQL的備份與恢復

#數據導出
mysqldump –uroot –p 數據庫名 >  /Desktop/備份文件.sql
#數據導入(在導入數據庫時,前提是此數據庫已經存在,並且為空)
mysql –uroot –p  <  /Desktop/備份文件.sql
#加載數據文件
source /路徑/文件名.sql

由於sql主要的就是DQL操作,所以後面的博文會詳細介紹,這裏暫時不寫出。

3.MySQL中的函數

(1)聚合函數

#count 統計有多少行記錄
select  count(1) from emp;   //1表示常量,每一條記錄都有一個1,查看1的個數
#max 查看記錄中某個字段最大的
select max(id) from emp;
#min 查看記錄中某個字段最小的
select min(id) from emp;
#sum 查看記錄中某個字段的總和
select sum(salary) from emp;
#avg 查段看記錄中某個字的平均值
select avg(salary) from emp;

ps:在使用這些函數時,如果在加其他字段,可能顯示的值不一樣,默認是顯示表中的第一行的字段值

(2)MySQL的加密函數

#md5加密函數(不可逆)
MD5(pwd)
#密碼加密
passowrd(pwd)
#sha加密
sha(str)

(3)MySQL的內置函數

#數學函數
PI()          //圓周率
Ceil(num)     //向上取整
floor()        //向下取整
round(num,保留的小數位數)   //四舍五入,如果第二個參數為負數,從小數點前一會四舍五入。
Mod(5,2)     //取模  相當於  5%2
Rand()        //隨機數,[0,1)
從表中隨機取數據:select * from emp GROUP BY RAND() limit 2;
Pow(2,2)      //2的2次方
#字符函數
replace(str,oldword,newold) //替換
lpad(str,len,padstr)   //左填充,當字符串不夠len時,用字符進行左填充
rpad(str,len,padstr)   //右填充,當字符串不夠len時,用字符進行右填充
trim()   //刪除首位的空格

#日期函數

Now()            //當前的時間
Sysdate()          //獲取系統時間
Current_date()     //獲取系統當前日期
Current_time()     //獲取系統當前時間
Year(date)         //獲取日期中的年
Month(date)       //獲取日期中的月
Last_day(date)      //獲取當前月的最後一天(返回的是一個日期)
Date_add(date,interval num 單位)  //計算日期(返回的是一個日期)
#例:
select date_add(now(),INTERVAL 2 month)  //+2月
select date_add(now(),INTERVAL 2 day)    //+2天
select date_add(now(),INTERVAL 2 year)   //+2年
select date_add(now(),INTERVAL -2 year)   //-2年

4.MySQL中運算符

  MySQL中的運算符 主要用於select和from子句中:
  例:
  select 1+1,1*2,2/2,0 ; (除法,保留小數double類型)
    技術分享圖片
   整除:select 3 div 2 //返回1
   0做除數: select 3 / 0 //返回null
算數運算符
+ - * / div(整除)
比較運算符
=(等於) >= <= !=(或者<>)
1表示:true, 0表示false
is null //是否為空 is not null //是否不為空
between and //在什麽和什麽之間
in //在什麽範圍中
any //在比什麽其中之一怎麽樣
all //比所有都怎麽樣
邏輯運算符
and //與
or //或

MySQL的基礎分部