MySQL数据库管理
1.3 搭建MYSQL数据库服务器并设置数据库管理员本机登录的密码为123456
a 购买服务器(存储 CPU 内存) DELL HP 联想
b 安装操作系统RHEL7.2
c 安装提供数据库服务的软件包(mysql)
# rpm -qa| grep -i mariadb
# rpm -e --nodepsmariadb-libs
# rpm -qa| grep -i mariadb
#rm -rf/etc/my.cnf
#yum -yinstall perl-Data-Dumperperl-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 -imysql
#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密码
# grep -i "password"
/var/log/mysqld.log
2017-06-19T02:07:11.746572Z 1 A temporary
password is generated for root@localhost: *?F(sfa;M3jy
#
# mysql -hlocalhost -uroot-p"*?F
(sfa;M3jy"
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=6;
mysql>alteruser root@"localhost"identified by
"123456";
mysql>quit
# mysql -hlocalhost -uroot-
p123456
mysql> showdatabases;
mysql>quit
vim /etc/my.cnf
validate_password_policy=0
validate_password_length=6
:wq
# systemctlrestart mysqld
#mysql -hlocalhost-uroot-p123456
mysql>
数据库服务通常和网站服务一起使用。LAMP LNMP
购物网站游戏网站论坛网站 金融网站 phpjavahtml css
数据库存储那些数据?注册帐号和密码
购物信息
储蓄信息
帖子内容
1.4 数据库服务的基本使用
把数据存储到数据库服务器上的过程?
1连接数据库服务器
mysql -hlocalhost -uroot -p123456
2创建新库 (文件夹)
3 创建表(文件)
4 向表中插入记录
5查看记录
6 断开连接
SQL命令使用规则?
每条命令必须以;结尾
命令不区分字母大小写
\c结束命令
管理库的相关命令
showdatabases;
create database库名;
selectdatabase();
use 库名;
showtables;
drop database库名;
管理表的相关命令
create table 表名(字段名类型(宽度),字段名类型(宽
度));
mysql> create table regtab(namechar(10),password
char(6));
desc 表名;
desc regtab;
帐号名 密码
plj 123456记录
jim 654331
tom 111199
insert intoregtab values("plj","123456"),
("jim","654321"),("tom","111199");
select *from表名
select* from regtab;
delete from 表名;
delete from regtab;
drop table表名;
drop tableregtab;
表名和库名的命名规则?
具有唯一
区分字母大小写
使用数字字母_命名、不允许是纯数字
不允许使用特殊符号 和 命令关键字
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mysql数据类型
字符类型 姓名家庭地址 籍贯
char 255 定长
varchar65532变长
大文本类型
text
blob
createdatabasestudb;
usestudb;
createtablet1(
name char(10),
homeaddr varchar(50)
);
insert intot1 values("lucy","beijing");
select*from t1;
createtablet2(imageblob,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
createtable t5(namechar(10) ,agetinyint
unsigned);
createtable t6(namechar(10) ,agetinyint ,level
tinyint);
createtable t7(namechar(10) ,agetinyint
unsigned,leveltinyint);
insert into t7values("jim",-11,101);
数值类型的宽度 是显示宽度,不能够控制给字段赋值,字段值的
大小由类型决定。
createtablet8(namechar(3),levelint(3));
insertintot8 values("lucy",10224);
create table t12 (idint(2) zerofill,levelintzerofill);
insertinto t12values(9,7);
浮点型 (能存储带小数点的数) 19.23 21.75
float
double
整数.小数
1023.88
xxx.xx
999.99
-999.99
float(5,2)
createtablet13 (name char(10),agetinyint(2)
unsigned,payfloat(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
createtablet14 (
name char(10),
agetinyint(2) unsigned,
payfloat(7,2),
s_year year,
birthdaydate,
up_class time,
meetting datetime
);
insert intot14values
("bob",21,18800,1990,20170818,083000,20170707204
523);
使用时间函数给日期时间类型字段赋值
now()
year()
date()
month()
day()
time()
insert intot14values("lilei",21,18800,year(now
()),date(now()),time(20150718231458),now());
insert intot14values("hanmm",21,18800,now(),now
(),now(),now());
使用2位数字给year字段赋值,要遵循如下规律?
01-69 20XX
70-99 19XX
00 0000
100 报错
insert intot14values("lee",21,18800,69,now(),now
(),now());
datetime与timestamp的区别?
createtable t15(
meettingdatetime,
partty timestamp
);
insert intot15values(now(),now());
insert intot15(meetting)values(20171020091828);
insert intot15(partty)values(20191020091828);
select* from t15;
+++++++++++++++++++++++++
枚举类型 性别 专业 科目爱好
(字段值只能在列举的范围内选择)
enum(值列表)单选
set (值列表) 多选
createtablet16 (
name char(10),
agetinyint(2) unsigned,
sex enum("boy","girl","no"),
likesset("it","book","film","game")
);
insert intot16values("bob",21,"boy","it,game");
insert intot16values("jim",21,"no","music,game");
insert intot16values("jerry",21,2,"it,game")
mysql> desc mysql.user;
mysql> desc mysql.tables_priv;
字段约束条件:功能限制如何给字段赋值
Null字段是否允许赋null值 空默认允许赋null值
Key 索引
Default 字段的默认值,默认值的值是null
不给字段赋值值使用默认值给字段赋值
default 值
Extra 额外设置(自动增长)
createtablet17 (
name char(10) notnull ,
agetinyint(2) unsigneddefault22 ,
sex enum("boy","girl","no") notnulldefault "boy",
likesset("it","book","film","game")default "it,book"
);
insert intot17(name) values("bob");
insert intot17values("jim",29,"no","film,game");
insert intot17values("",NULL,"boy",NULL);
insert intot17values("NULL",NULL,"boy",NULL);
insert intot17values(null,NULL,"boy",NULL);
在ip地址是 192.168.4.101上部署数据库服务并设置数据库管理员的密码是abc123创建studb库 创建存储学生信息的表stuinfo
页:
[1]