MySQL数据库基本管理-001
MySQL数据库============
MySQL (RHEL5/6)
MariaDB( RHEL7 )
数据迁移mysql ---> MariaDB
-------------------------
1.MySQL数据库服务安装:
# rpm-qmysql-server || yum -yinstallmysql-server
# servicemysqld status |start|stop
# chkconfigmysqld on
2.主配置文件:/etc/my.cnf
服务名/进程名: mysqld
进程所有者/组: mysql/mysql
默认监听端口号:3306
传输协议:tcp
数据库目录:/var/lib/mysql/
==============
3.安装官网下载的mysql软件提供数据库服务
# /etc/init.d/mysqldstop
# rpm -e--nodepsmysql-server mysql
# rpm -q mysql-server mysql
# rm-rf /etc/my.cnf
# rm -rf /var/lib/mysql/*
# tar -xvf MySQL-5.6.rpm.tar
# rpm-Uvh MySQL-*.rpm
# servicemysql start
# netstat -untlap| grep mysql
# cat /root/.mysql_secret //初始密码存放位置
# mysql -hlocalhost -uroot-pCxifrkkA
mysql>set passwordforroot@"localhost"=password("123");//首次进入数据库需要更改密码
mysql>quit;
# mysql -hlocalhost -uroot-p123
mysql>show databases;
===============
4.把数据存储到数据库服务器上的过程?
4.1连接数据库服务器 mysql-hlocalhost-uroot-p123
4.2选择库 use库名;
4.3创建表 createtable ...
4.4向表中插入记录 insertinto ...
4.5查询记录
4.6断开连接quit
-------------------------------
**数据以文件的形式存储在数据库目录下
**库或表都是以文件的形式存储在数据库目录下的
===============
5.数据库服务的基本使用?
SQL命令使用规则:
命令不区分字母大小写,
\c 可废弃当前编写错的操作
命令必须以;结尾
命令不支持tab键补齐
库名的命名规则:
具有唯一性
区分字母大小写
只能使用数字、字母_
不能是纯数字
不要使用特殊字符和关键字?* .
===============
6.数据库管理基本命令:
# mysql [-h服务器 -u用户名 -p密码 数据库]
# quit 或 exit 退出
showdatabases; //查看服务器上已有的库
selectdatabase(); //查看当前所在的库
showtables; //显示当前所在库下已有的表
select * from 表名; //查看表所有的记录
select 字段名列表 from 表名; //查看表记录
desc表名; //查看表结构
use库名; //切换库
createdatabase库名; //创建新数据库
createtable[库名.]表名(
字段名 类型(宽度)约束条件,
字段名 类型(宽度)约束条件,
字段名 类型(宽度)约束条件
); //创建表
insertinto表名values(); //向表中插入记录
dropdatabase库名;//删除已有的库
drop table表名; //删除表
deletefrom 表名; //删除表中的所有记录
===============
7.mysql数据库类型
字符类型(名字专业家庭地址)
数值类型 (工资 成绩 年龄 身高 体重)
日期时间类型(生日注册时间 上课时间 约会 出生年份)
枚举类型set enum(性别爱好)字段的值只能在列举的范
7.1 字符型(名字专业家庭地址)
char 定长255
varchar 变长65532//根据存储数据的多少开辟存储空间
大文本类型大于65535时使用
blob/text
-----------------------------
7.2 数值类型
整数类型 (工资 成绩 年龄 身高 体重)
根据存储数值的范围又分为:
有符号 无符号
tinyint 微小整型 -128~127 0~255
smallint 小整型
MEDIUMINT中整型
int (默认11字符)大整型 -2^31~~2^31-1 0~2^32-1
bigint 极大大整型
----------------------------
7.3 浮点型 (带小数点的数)
float(m,n) 单精度
double(m,n) 双精度
整数位.小数位总位数
n表示总位数
m 表小数位位数
decimal(M,D) 其中M为有效位数,D为小数位
***
注意):数值类型的宽度与字符类型宽度的区别?
***数值不够指定宽度时,在左边填空格补位
数值类型的宽度是显示宽度,不能够控制给字段赋值的大小,字段值的大小由字段类型决定。
1)zerofill 填0代替空格补位
2)unsigned 无符号(正数)
--------------------------
7.4.1 日期时间类型(生日注册时间 上课时间 约会 出生年份)
year (占用1字节)年 YYYY 2016
date(占用4字节)日期YYYYMMDD 20161117
time(占用3字节)时间HHMMSS 172358
datetime(占用8字节) 日期时间YYYYMMDDHHMMSS
范围:1000-01-01 ---> 9999-12-31
timestamp (占用4字节)日期时间YYYYMMDDHHMMSS
范围:1970-01-01 ---> 2038-01-19
练习:
mysql> create table t16(name char(10), age tinyint(2) zerofill unsigned, money float(7,2), s_year year, birthdaydate, up_class time, meetingdatetime);
mysql> insert intot16values("zhangbaoli",21,20000,1998,20161221,083000,20161218203000);
***
注意:
1):datetime 与 timestamp 的区别?
当未给TIMESTAMP字段赋值时,自动以当前系统时间赋值,而DATETIME字段默认赋值为 NULL.
2):year年份处理?
当只用2为数字赋值时,01-69视为2000~2069,而70-99视为1970~1999.
练习:
mysql> create table t17(time1 datetime,time2 timestamp);
mysql> insert intot17 values(20161117174928,20161117174928);
mysql> insert intot17(time1) values(20181117174929);
mysql> insert intot17(time2)values(20151117174929);
------------------------------
7.4.2 使用时间函数获取时间给日期时间类型字段赋值?
now() 获取调用此函数时的系统日期时间
year() 获取年份
date() 获取日期
month()获取月份
day() 获取日期(几号)
time() 获取时间
sleep(N)休眠N秒
sysdate() 获取时间
curdate() 获取当前系统时间
curtime() 获取当前系统时刻
练习:
mysql> select now();
mysql> selectyear( now() );
mysql> selectyear( 20191224 );
mysql> selectdate( now() );
mysql> createtablet15(name char(10),age tinyint(2) unsigned,pay float(7,2),up_class time,birthday date,s_year year,
meettingdatetime);
mysql> insert intot15values("lili",21,18800.88,093000,20171008,1995,now());
mysql> insert intot15values("jerry",29,28800.88,now(),now(),now(),now());
mysql> insert intot15values("tom",21,18800.88,time(20171224201818),date(20171224201818),year(now()),now());
------------------------------
7.5 枚举类型set enum(性别爱好)字段的值只能在列举的范
围内选择:
enum(值1,值2,值N) 只能在列举的范围内选择一个值
set(值1,值2,值N) 能在列举的范围内选择一个或多个值
练习:
mysql> createtablet21(name char(10),age tinyint(2) unsigned,pay float(7,2),birthday date,sex enum("boy","girl","no"),likes set("book","film","game","it"));
mysql> insert into t21 values("bob",21,21000,20161118,"boy","book,it");
mysql> insert into t21 values("alic",23,11000,20161218,"man","book,it,football");
mysql> insert into t21 values("lucy",18,28000,20160918,2,"film,game");
================
约束条件:(限制如何给字段赋值)
作用:当向表中插入新记录时,限制如何给字段赋值,若建表时不设置约束条件,使用mysql的默认设置。
null 允许赋null值 默认设置
not null 不允许赋null值
key 索引类型
default 设置默认值,缺省为null
字段额外设置 :字段的值自动增长 字段描述信息
练习:
mysql> createtablet24(name char(10) not null ,age tinyint(2) unsigned default 24 ,pay float(7,2) ,birthday date,sex enum("boy","girl","no") default "boy",likesset("book","film","game","it") default "film,game");
mysql> insert into t24values(null,23,11000,20161218,"man","book,it");
mysql> insert into t24values("null",23,11000,20161218,"man","book,it");
mysql> insert into t24values("",23,11000,20161218,"man","book,it");
mysql> insert into t24(name,age) vlaues("lilei",29);
mysql> insert into t24(name,pay,birthday)values("jerry",12000,20161127);
mysql> insert into t24(name,age,pay,birthday)values("jerry",31,12000,20161127);
==========================================================
页:
[1]