溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

初識Mysql(一)

發(fā)布時間:2020-07-20 20:00:18 來源:網(wǎng)絡 閱讀:524 作者:dscp_linux 欄目:MySQL數(shù)據(jù)庫

1 搭建數(shù)據(jù)庫服務器


MYSQL數(shù)據(jù)類型


3 修改表結構




1 搭建數(shù)據(jù)庫服務器

1.1 存在mariadb時:

#systemctl status mariadb

#systemctl stop mariadb

#rpm -e --nodeps  mariadb-libs #不依賴關系卸載

#rm -rf /etc/my.cnf

#rm -rf /var/lib/mysql/*

1.2 新安裝時

[root@ser51 ~]# yum -y install perl-Data-Dumper perl-JSON

[root@ser51 ~]# rpm -Uvh mysql-community-*.rpm  

#無論軟件存在與否都執(zhí)行升級

[root@ser51 ~]# rpm -qa | grep -i mysql

1.3啟動服務

服務名稱:mysqld

端口號:3306

主配置文件:/etc/my.cnf

數(shù)據(jù)庫目錄:/var/lib/mysql 啟動服務,數(shù)據(jù)數(shù)初始化會生成文件

日志文件:/var/log/mysqld.log

服務腳本:/usr/lib/systemd/system/mysqld.service

1.4 連接數(shù)據(jù)庫

[root@ser51 ~]# which mysql

/usr/bin/mysql

[root@ser51 ~]# rpm -qf /usr/bin/mysql #詢問文件屬于哪個包

mysql-community-client-5.7.17-1.el7.x86_64

[root@ser50 ~]# mysql -u root -p密碼

[root@ser50 ~]# mysql -h 服務器 -u用戶名 -p密碼 數(shù)據(jù)庫

查看登錄的初始密碼:

[root@ser51 ~]# grep password /var/log/mysqld.log

登錄:

[root@ser51 ~]# mysql -uroot -p'5;wG)DluZ)#Q'  #特殊符號用單引

1.5 臨時登錄生效

第一次登錄需要重新設置密碼才能查看數(shù)據(jù)庫信息

設置全局密碼驗證策略:

mysql> set global validate_password_policy=0;

設置全局變量密碼長度:

mysql> set global validate_password_length=6;

mysql> alter user root@"localhost" identified by "123456" #修改密碼

1.6 全局永久生效

[root@ser51 ~]# vim /etc/my.cnf

[mysqld]

validate_password_policy=0

validate_password_length=6

1.7 數(shù)據(jù)庫使用命令

SQL指令:

DDL:數(shù)據(jù)定義語言

DML:數(shù)據(jù)操作語言

DCL:數(shù)據(jù)控制語言

DTL:數(shù)據(jù)事物語言

mysql> select database(); #查看當前所在的庫:

mysql> create database 庫名;  #創(chuàng)建數(shù)據(jù)庫

mysql> use 庫名;  #切換數(shù)據(jù)庫

mysql> system ls /var/lib/mysql #不退出操作linux命令

mysql> drop database 數(shù)據(jù)庫名;  #刪除數(shù)據(jù)庫

創(chuàng)建表

mysql> create table 庫名.表名(字段名1 字段類型(寬度) 約束條件, ...);

mysql> alter table 表名 add 字段 類型(寬度); #增加表字段

mysql> drop table 庫名.表名   #刪除表

mysql> describe 表名 #查看表內字段(desc)

mysql> insert into 表名 values();

mysql> select * from 表名;

mysql> update 表名 set 字段="新值" where 字段="值";

 

2 MYSQL數(shù)據(jù)類型

2.1 數(shù)值類型

tinyint  1字節(jié)  -128~127  0~255

int        4字節(jié)

float    4字節(jié)   float(m,n) m:總位數(shù)  n:小數(shù)位位數(shù)

double  8字節(jié)

2.2 字符類型

定長:char(255) 不寫寬度默認為1

不夠指定字符數(shù)時在右邊用空格補齊(會浪費磁盤空間)

變長:varchar  按數(shù)據(jù)實際大小分配存儲空間(會消耗CPU資源,每次都會詢問需要的儲存的空間的大小)

大文本類型:text/blob

數(shù)值類型的寬度和字符類型的寬度的區(qū)別:

字符類型超出就不能寫入數(shù)據(jù);

數(shù)值類型的寬度是顯示寬度,不能控制給字段賦值的大小,大小由類型本身決定;

 

案例:int類型的寬度

mysql> create table db1.t10(id int zerofill,pay int(3) zerofill);

#不夠字節(jié)的用0填充

mysql> insert into t10 values(25,25);

mysql> select *from t10;

+------------+------+

| id         | pay  |

+------------+------+

| 0000000025 |  025 |

+------------+------+

2.3 日期時間類型

年:  year  YYYY  

日期:date  YYYYMMDD

時間:time  HHMMSS

日期時間:datetime/timestamp   YYYYMMDDHHMMSS

Datetime占8個字節(jié)

Timestamp占4個字節(jié)

區(qū)別:當沒有給兩者分別賦值時,timestamp自動以當前系統(tǒng)時間賦值,而datetime默認為NULL

案例:

create  table   t15(

meetting  datetime,

partty       timestamp

);

insert into  t15  values(now(),now());

insert into  t15(meetting)  values(20171020091828);

insert into  t15(partty)  values(20191020091828);

select  * from t15;

2.4 時間函數(shù)

now()  獲取調用此函數(shù)時的系統(tǒng)日期時間

year()  date() time()  day() month()

mysql> select date(now()); #函數(shù)可以嵌套

Year的年份處理:默認使用4位數(shù)字表示

2位數(shù)字時:01~69為2000~2069  70~99為1970~1999

2.5 枚舉類型

字段只能在指定的范圍內選擇

格式:

字段名 enum(值1,值2,值N)  單選

字段名 set(值1,值2,值N)  多選

案例:

create table t21(name char(10),sex enum("boy","girl"),

likes set("film","game","book","food"));

mysql> insert into t21 values("tom","boy","film,game");

mysql> insert into t21 values("hai",2,"film,game");#可以用數(shù)字表示

2.6 約束條件

作用:限制如何給字段賦值

NULL:空,不設置默認為空  NOT NULL:不允許為空

Key:索引類型

Default:默認設置

Extra:額外設置

案例:查看約束條件(desc)

mysql> create table t22(name char(10) not null,

    -> sex enum("boy","girl") default "boy",

    -> age tinyint(2) unsigned not null default 18,

->likes set("game","food","book","music") not null

default "game,book");

mysql> insert into t22(name) values("tom");

#其他字段沒有寫值,使用默認

mysql> insert into t22 values("jom",1,20,"game,music");

注意:“null” 和 “” 和 null的區(qū)別

mysql> insert into t22(name) values("null");

Query OK, 1 row affected (0.04 sec)

mysql> insert into t22(name) values(null);

ERROR 1048 (23000): Column 'name' cannot be null

mysql> insert into t22(name) values("");

Query OK, 1 row affected (0.03 sec)

3 修改表結構

alter table 庫.表 執(zhí)行動作

3.1 添加新字段

add 字段名  類型(寬度);

add 字段名  類型(寬度) 約束條件;

add 字段名  類型(寬度) 約束條件 first; #添加在第一個

add 字段名  類型(寬度) 約束條件 after 字段名; #在...之后添加

add 字段名  類型(寬度),add 字段名  類型(寬度); #添加多個

案例:

mysql> alter table t21 add mail char(20);#默認添加在字段最后

mysql> alter table t21  add id int(4) not null default 0001 first;

mysql> alter table t21  add class int(4) not null default 1710  after name;

3.2 刪除已有字段

drop 字段名;

3.3 修改字段類型

modify 字段名 類型(寬度) 約束條件;

3.4 修改字段名

change 原字段名 新字段名  類型(寬度) 約束條件;

3.5 修改表名

alter table 舊表名 rename (to) 新表名


向AI問一下細節(jié)
推薦閱讀:
  1. 初識UNIX
  2. puppet 初識

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI