1. 程式人生 > >MySQL數據庫管理

MySQL數據庫管理

搭建mysql數據庫服務器

1.3 搭建MYSQL數據庫服務器並設置數據庫管理員本機登錄的


密碼為123456

a 購買服務器(存儲 CPU 內存) DELL HP 聯想

b 安裝操作系統RHEL7.2

c 安裝提供數據庫服務的軟件包(mysql)

# rpm -qa | grep -i mariadb

# rpm -e --nodeps mariadb-libs

# rpm -qa | grep -i mariadb

#rm -rf /etc/my.cnf

#yum -y install perl-Data-Dumper perl-JSON

# tar -xvf xxxx.tar

# rm -rf mysql-community-server-minimal-5.7.17-


1.el7.x86_64.rpm

#rpm -Uvh mysql-community-*.rpm

#rpm -qa | grep -i mysql

#systemctl start mysqld

#systemctl status mysqld

#systemctl enable mysqld


服務名 mysqld

進程名 mysqld

進程的所有者/組 mysql/mysql

數據傳輸協議 tcp

端口號 3306

主配置文件 /etc/my.cnf

數據庫目錄 /var/lib/mysql

日誌文件 /var/log/mysqld.log


客戶端訪問數據庫服務器(命令行 圖形工具)

*沒有授權時,只允許數據庫管理員root用戶從本機訪問

#mysql -hlocalhost -uroot -p密碼


[root@localhost ~]# grep -i "password"


/var/log/mysqld.log

2017-06-19T02:07:11.746572Z 1 [Note] A temporary


password is generated for root@localhost: *?F(sfa;M3jy

[root@localhost ~]#

[root@localhost ~]# mysql -hlocalhost -uroot -p"*?F


(sfa;M3jy"

mysql> set global validate_password_policy=0;

mysql> set global validate_password_length=6;

mysql> alter user root@"localhost" identified by


"123456";

mysql>quit


[root@localhost ~]# mysql -hlocalhost -uroot -


p123456

mysql> show databases;

mysql>quit


vim /etc/my.cnf

[mysqld]

validate_password_policy=0

validate_password_length=6

:wq

# systemctl restart mysqld

#mysql -hlocalhost -uroot -p123456

mysql>


數據庫服務通常和網站服務一起使用。LAMP LNMP

購物網站 遊戲網站 論壇網站 金融網站 php java html css


數據庫存儲那些數據?註冊帳號和密碼

購物信息

儲蓄信息

帖子內容


1.4 數據庫服務的基本使用

把數據存儲到數據庫服務器上的過程?

1 連接數據庫服務器

mysql -hlocalhost -uroot -p123456

2 創建新庫 (文件夾)

3 創建表(文件)

4 向表中插入記錄

5 查看記錄

6 斷開連接


SQL命令使用規則?

每條命令必須以;結尾

命令不區分字母大小寫

\c 結束命令



管理庫的相關命令

show databases;

create database 庫名;

select database();

use 庫名;

show tables;

drop database 庫名;


管理表的相關命令

create table 表名(字段名 類型(寬度),字段名 類型(寬


度));


mysql> create table regtab(name char(10),password


char(6));


desc 表名;

desc regtab;



帳號名 密碼

plj 123456 記錄

jim 654331

tom 111199


insert into regtab values("plj","123456"),


("jim","654321"),("tom","111199");


select * from 表名

select * from regtab;


delete from 表名;

delete from regtab;


drop table 表名;

drop table regtab;


表名和庫名的命名規則?

具有唯一

區分字母大小寫

使用數字 字母 _ 命名 、不允許是純數字

不允許使用特殊符號 和 命令關鍵字

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

mysql數據類型

字符類型 姓名 家庭地址 籍貫

char 255 定長

varchar 65532 變長


大文本類型

text

blob


create database studb;

use studb;

create table t1(

name char(10),

homeaddr varchar(50)

);


insert into t1 values("lucy","beijing");

select * from t1;


create table t2(image blob,name text);

t1 t2

name name

char(10) varchar(10)

a abc

數值類型 : 年齡 成績 身高 體重 工資

11 12.23

+11 -19.23

-12


整型 (根據存儲數字的範圍又 劃分為如下類型)

有符號 無符號

tinyint -128~127 0-255

smallint

MEDIUMINT

int

bigint


create table t5(name char(10) ,age tinyint


unsigned);


create table t6(name char(10) ,age tinyint ,level


tinyint);


create table t7(name char(10) ,age tinyint


unsigned,level tinyint);


insert into t7 values("jim",-11,101);



數值類型的寬度 是顯示寬度,不能夠控制給字段賦值,字段值的


大小由類型決定。


create table t8(name char(3),level int(3));

insert into t8 values("lucy",10224);


create table t12 (id int(2) zerofill,level int zerofill);

insert into t12 values(9,7);



浮點型 (能存儲帶小數點的數) 19.23 21.75

float

double


整數.小數

1023.88

xxx.xx

999.99

-999.99

float(5,2)


create table t13 (name char(10),age tinyint(2)


unsigned,pay float(7,2));


insert into t13 values("bob",21,18800.23);

insert into t13 values("tom",29,118800.23);

+++++++++++++++++++++++++++++++

日期時間類型 註冊時間 上課時間 開會時間 生日 入職

年 year YYYY 2017

日期date YYYYMMDD 20170619

時間time HHMMSS 160258

日期時間類型YYYYMMDDHHMMSS 20170619160258

datetime

timestamp


create table t14 (

name char(10),

age tinyint(2) unsigned,

pay float(7,2),

s_year year,

birthday date,

up_class time,

meetting datetime

);


insert into t14 values


("bob",21,18800,1990,20170818,083000,20170707204


523);


使用時間函數給日期時間類型字段賦值

now()

year()

date()

month()

day()

time()


insert into t14 values("lilei",21,18800,year(now


()),date(now()),time(20150718231458),now());


insert into t14 values("hanmm",21,18800,now(),now


(),now(),now());


使用2位數字給year字段賦值,要遵循如下規律?

01-69 20XX

70-99 19XX

00 0000

100 報錯


insert into t14 values("lee",21,18800,69,now(),now


(),now());



datetime與timestamp 的區別?


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;


+++++++++++++++++++++++++

枚舉類型 性別 專業 科目 愛好

(字段值只能在列舉的範圍內選擇)

enum(值列表) 單選

set (值列表) 多選


create table t16 (

name char(10),

age tinyint(2) unsigned,

sex enum("boy","girl","no"),

likes set("it","book","film","game")

);


insert into t16 values("bob",21,"boy","it,game");

insert into t16 values("jim",21,"no","music,game");

insert into t16 values("jerry",21,2,"it,game")


mysql> desc mysql.user;

mysql> desc mysql.tables_priv;



字段約束條件:功能限制如何給字段賦值

Null 字段是否允許賦null值 空 默認允許賦null值

Key 索引

Default 字段的默認值,默認值的值是null

不給字段賦值值使用默認值給字段賦值

default 值


Extra 額外設置(自動增長)


create table t17 (

name char(10) not null ,

age tinyint(2) unsigned default 22 ,

sex enum("boy","girl","no") not null default "boy",

likes set("it","book","film","game") default "it,book"

);


insert into t17(name) values("bob");

insert into t17 values("jim",29,"no","film,game");

insert into t17 values("",NULL,"boy",NULL);

insert into t17 values("NULL",NULL,"boy",NULL);

insert into t17 values(null,NULL,"boy",NULL);


在ip地址是 192.168.4.101上部署數據庫服務並設置數據庫管理員的密碼是abc123 創建studb庫 創建存儲學生信息的表stuinfo


MySQL數據庫管理