mysql数据库基础

Wesley13
• 阅读 534
数据库详解

什么是数据库?

-数据库:依照某种数据模型进行组织并存放在存储器的数据集合

-数据库管理系统:用来操纵和管理数据库的大型服务软件

-数据库系统:即DB+DBMS,指带有数据库并整合了数据库管理软件的计算机系统

MySQL数据库服务器

服务名称:mysqld

进程名称:

端口号:3306

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

安装依赖包:yum -y install perl-Data-Dumper.x86_64 perl-JSON

# 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

# rpm -Uvh mysql-community-*.rpm

# rpm -qa | grep -i mysql

# systemctl status mysqld    //查看服务状态

# ps -C mysqld  //查看进程

# netstat -nultp | grep :3306

# systemctl start mysqld

# systemctl enable mysqld

# ps aux | grep -i mysqld

# ls /var/lib/mysql  //数据库目录

# netstat -nultp | grep :3306

# grep mysql /etc/passwd

# grep mysql /etc/group

# /etc/my.cnf    //配置文件

安装mysql软件

1.安装mysql软件

2.卸载系统自带的包,防止冲突

#systemctl  status mariadb

Systemctc stop mariadb

rpm -e --nodeps mariadb-server mariadb

3.启动服务:服务名称 进程名称 端口号 传输协议

进程所有者 进程所属组   数据库目录

4.网站服务和数据库服务一起使用

LAMP LNMP

mysql>system  系统命令  //在数据库里执行系统命令

数据存储过程

一.连接数据库服务器

2.修改密码验证策略和密码长度,修改密码

3.使用修改的密码登陆

4.修改服务的主配置文件使用密码验证策略永久生效

# which mysql

/usr/bin/mysql

# rpm -qf /usr/bin/mysql      //查看命令是由哪个软件包提供

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

# grep password /var/log/mysqld.log    //查看日志文件

2018-01-17T03:07:08.701090Z 1 [Note] A temporary password is generated for root@localhost: !6FvuDf/%yua //初始密码

1.使用初始密码登陆数据库服务器

# mysql -uroot -p'!6FvuDf/%yua'  //以数据库root身份初始密码登陆

2.修改密码验证策略和密码长度,修改密码

mysql> set global validate_password_policy=0;  //密码验证策略为0,只检查长度

mysql> set global validate_password_length=6;  //在全局配置密码长度不小于6位

mysql> alter user root@'localhost' identified by '123456';  //设置密码为123456

设置为永久生效

# vim /etc/my.cnf

[mysqld]

validate_password_policy=0

validate_password_length=6

#systemctl restart mysqld  //重启服务

二.建数据库

库和表都是以文件的形式存在数据库目录下的

查看:show databases;

创建:create database  库名;

删除:drop database 库名;

切换:use 库名;

显示当前所在库:select database();

SQL语法规则

SQL命令分类:

-DDL数据定义语言

-DML数据操作语言

-DCL 数据控制语言

-DTL 数据事物语言

数据库命名规则

-可以使用数字/字母/下划线,但不能纯数字

-区分大小写,具有唯一性

-不可使用指令关键字,特殊符号

三.建表

建表:create table 库名.表名(

字段名 类型() 约束条件,

字段名 类型() 约束条件,

.....

);

Create database stud;

Create table stud.studinfo(

name char(15),

sex char(4),

class char(7)

);

mysql> create table studinfo (name char(15),sex char(4),class char(7));

四.插入记录

查看:select * from 库.表;

插入表记录:insert into stud.studinfo values(‘tom’,’boy’,’nsd1710’)

删除表记录:delete from 库.表;

查看表结构:desc 库.表;

修改表记录:update 库.表 set 字段名=‘修改内容’ where name=’tom’

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
Django之Django模板
1、问:html页面从数据库中读出DateTimeField字段时,显示的时间格式和数据库中存放的格式不一致,比如数据库字段内容为2012082616:00:00,但是页面显示的却是Aug.26,2012,4p.m.答:为了页面和数据库中显示一致,需要在页面格式化时间,需要添加<td{{dayrecord.p\_time|date:
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
thinkphp 基本配置
12returnarray(34//定义数据库连接信息5'DB\_TYPE''mysql',//指定数据库是mysql67'DB\_HOST''localhost',89'DB\_NAME''uchome',//数据库名1011'DB\_USER''root
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Vitess全局唯一ID生成的实现方案 | 京东云技术团队
为了标识一段数据,通常我们会为其指定一个唯一id,比如利用MySQL数据库中的自增主键。但是当数据量非常大时,仅靠数据库的自增主键是远远不够的,并且对于分布式数据库只依赖MySQL的自增id无法满足全局唯一的需求。因此,产生了多种解决方案,如UUID,Sn