第一节 建表,建库
内容:数据库介绍?存储数据的仓库
*********************************************************************
1.数据库服务都那些公司在使用?
购物网站游戏网站金融网站
2.数据服务存储的是什么数据?
帐号信息对应的数据信息
3.提供数据库服务的软件有那些?
帐号信息对应的数据信息
4.提供数据库服务的软件有那些?
开源软件mysql、mongodb、redis
商业软件oracle、db2、SQL SERVER
5.软件是否跨平台?
Linux Unix Windows
6.软件包的来源:官网下载使用操作系统安装光盘自带软件包
7.mysql软件介绍?mysql mariadb
8.关系型数据型软件
:要按照一定组织结构存储数据,并且数据和数据之间可以互相关联操作
9.跨平台Linux Unix Windows
:可移植性强支持多种语言Python/Java/Perl/PHP
10.生产环境中,数据服务和网站服务一起使用构建网站运行平台
LNMP LAMP WNMP WAMP
11.mysql软件包的封包类型:rpm包源码包
+++++++++++++++++++++++++++++++
非关系型数据库软件(NoSQL)mongodb、redis、memcached
可以自定义安装信息key=值
*********************************************************
搭建mysql数据库服务器192.168.4.51
试题概述:
装包
修改配置文件
启动服务
查看服务进程和端口号
服务名mysqld
服务的主配置文件/etc/my.cnf
数据目录/var/lib/mysql
日志文件/var/log/mysqld.log
解题参考:
1)除系统自带mariadb mysql数据库软件
]#rpm -qa | grep-i mariadb
]#systemctl stop mariadb
]#rpm -e --nodeps mariad b-server mariadb
]#rm -rf /etc/my.cnf
]#rm -rf /var/lib/mysql
2)安装mysql软件
]#tar -xf mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar
]#ls *.rpm
]#rm -rf mysql-community-server-minimal-5.7.17-1.el7.x86_64.rpm
]#yum -y install perl-JSON
]#rpm -Uvh mysql-community-*.rpm
]#rpm -qa | grep -i mysql
3)ls /etc/my.cnf修改配置文件(不需要修改配置文件按默认配置运行即可启动服务)
]#systemctl start mysqld
]#systemctl enable mysqld
4)查看服务进程和端口号
[root@mysql51 mysql]#ps -C mysqld
[root@mysql51 mysql]#netstat -utnlp | grep mysqld
数据库服务的基本使用
解题参考:
2.1使用初始密码在本机连接数据库服务
mysql[-h数据库服务器ip地址-u用户名-p'密码'
2.2重置本机连接密码
mysql>alter user root@"localhost"identified by"密码";
2.3把数据存储到数据库服务器上的过程?
2.4 sql命令分类?DDL DML DTL DCL
2.5 sql命令使用规则?
2.6管理数据库的sql命令及库名的命名规则
2.7管理表的sql命令
建表的语法格式?
create table库名.表名(
字段名类型(宽度)约束条件,
字段名类型(宽度)约束条件,
.....
);
2.8管理记录的sql命令
查看
插入
更新
删除
数据库服务的基本使用 【 --设置root密码】
2.1使用初始密码在本机连接数据库服务
]#grep password/var/log/mysqld.log
]#mysql-hlocalhost-uroot-p'hqToPwaqf5,g!><'
2.2重置本机连接密码
mysql>set global validate_password_policy=0;只检查密码的长度
mysql>set global validate_password_length=6;密码长度不能小于6个字符
mysql>alter user root@"localhost" identified by "123456";
mysql>quit
]#mysql -hlocalhost -uroot -p123456
mysql>show databases;
2.3让密码策略永久生效
]#vim/etc/my.cnf
[mysqld]
server_id=55
#skip-grant-tables
validate_password_policy=0
validate_password_length=6
:wq
]#systemctl restart mysqld
2.4查看当前登入用户
Select user();
2.5.查看当前登陆数据库服务器用户的权限?
Show grants;
把数据存储在数据库服务器上的过程?
连接数据库服务器(命令行API图形工具)
选择库(存放数据的文件夹)
选择表(就是文件)
插入记录(文件中的行)
断开连接
2.4 sql命令使用规则?
2.5 sql命令分类?
2.6 管理数据库的sql命令
查看show databases;
创建create database库名;
切换use库名;
删除drop database库名;
显示当前所在的库select database();
2.7管理表的sql命令
查看mysql>show tables;
创建mysql>create table gamedb.stuinfo(
->name char(10),
->addr char(20)
->);
删除drop table库名.表名;
查看表记录select*from库名.表名;
查看表结构desc库名.表名;
2.8管理记录的sql命令
查看select*from库名.表名;
插入insert into库名.表名values(字段值列表);
insert into gamedb.stuinfo values("tom","beijing");
insert into gamedb.stuinfo values("bob","beijing");
修改update库名.表名set字段名=值where条件;
update gamedb.stuinfo set addr="shanghai"where name="tom";
删除
delete from库名.表名;
delete from gamedb.stuinfo;
mysql数据类型
3.1数值类型(成绩年龄工资)
每种类型的存储数据的范围都是固定
整数类型(只能存储整数)
微小整型小整型中整型大整型极大整型
tinyint smallint MEDIUMINT INT bigint
*****unsigned使用数值类型有符号的范围。
浮点型(存储小数)
float(M,N)
double(M,N)
M设置总位数
N设置小数位位数
正数.小数总位数整数位小数位
18088.88 7 5 2
3.2字符类型(商品名称籍贯姓名生产厂家)
char(255)固定长度字符类型
varchar(65532)变长字符类型
大文本类型(音频文件视频文件图片文件)
blob
Text
3.3日期时间类型
(注册时间约会时间开会时间入职时间生日)
年year YYYY 2018
日期date YYYYMMDD 20180423
时间time HHMMSS 161958
日期时间datetime/timestamp
格式:YYYYMMDDHHMMSS 20180423161958
获取日期时间给对应的日期时间类型的字段赋值
获取日期时间函数
now()获取当期系统的时间
year(日期时间)获取指定时间中的年
month(日期时间)获取指定时间中的月
date(日期时间)获取指定时间中的日期
day(日期时间)获取指定时间中的号(天)
time(日期时间)获取指定时间中的时间
可以使用2位数字给year类型的字段赋值,规律如下:
01-69 20XX
70-99 19XX
datetime与timestamp的区别?
3.4枚举类型(插入记录时记录的值在列举的范围内选择
enum(值列表)单选(性别爱好专业)
set(值列表)多选(性别爱好专业)
参考案例1:
1)建库
create database studb;
2)进库
use studb;
3)建表
create table t1(level smallint,age tinyint);
4)表里建值
insert into t1 values(1024,19),(9,21);
insert into t1 values(21.45,9.87);
5)查看表里数据
select*from t1;
参考案例2:
1)建表
mysql>create table t6(
>name char(15),
>age tinyint unsigned,
>pay float(7,2),
>email varchar(30),
>birthday date,
>up_time time,
>start_year year,
>party datetime
);
2)查看表结构
desc t6;
3)表里建值
mysql>insert into t6 values
>("lanyiqun",18,26800,"lyq@tedu.cn",20181001,083000,
>1990,20180501220000);
4)查看表里数据
select*from t6;
****************************************************
时间类型
mysql>select now();
mysql>select year(now());
mysql>select year(20191120);
mysql>select month(now());
mysql>select day(now());
mysql>select date(now());
mysql>select time(now());
参考案例:
1)表里建值
mysql>lnsert into t6 values("lucy",21,18800,
>"lucy@tedu.cn",date(now()),time(now()),year
>(20111218),now());
mysql>insert into t6(name,start_year)values("tom",69);
2)建表
mysql>create table t7(
>meetting datetime,
>party timestamp
);
3)查看表结构
desc t7;
4)表里建值
insert into t7 values(now(),now());
insert into t7(party)values(20161123184518);
insert into t7(meetting)values(20201123153000);
5)查看表里数据
select*from t7;
*课后总结
客户端把数据储存到数据库服务器的器过程
create database test;
use test;
create table test1(name char(15),address char(30));
desc test1;
insert into test1 values("lisa","beijing");
insert into test1 values("lisa","beijing"),("dc","shanghai");
Select * from test1;
select name from test1
update test1 set address="shanghai";
Select * from test1;
Delete * from test1;
Select * from test1;
show tables;
drop table test1;
show databases;
drop database test;
show databases;