Mysql-1基本操作,数据类型,条件匹配

Mysql

关系型数据库

mysql主要参数


/etc/my.cnfMysql主配置文件
/var/lib/mysql数据库目录
----------------------------
3306默认端口
TCP传输协议
/var/log/mysql.log错误日志文件

部署Mysql

1,装包 mysql.tar,启服务
tar -xvf mysql-5.7.17.tar
yum -y install mysql-community-*.rpm
systemctl start mysqld
systemctl enable mysqld
2,>第一启动时,通过日志查看初始密码
grep password /var/log/pmysql.log
mysql -uroot -p'*******' //日志中的初始密码,进入数据库
mysql>show databases;  查看数据库
#更改密码策略
mysql>set global validate_password_policy=0;//只验证长度
--------------------------|----------------|----------------------------------|
| 策略参数                  |         值     |            描述
                          | 0或LOW         | 长度
validate_password_policy  | 1或MEDIUM(默认) | 长度,数字,大写,小写,特殊符号
                          | 2或者STRONG     | 长度,数字,大写小写,特殊符号,字典文件
--------------------------|----------------|---------------------------------|
mysql> set global validate_password_length=6; //修改密码长度(默认8)
mysql>alter user() identified by "123456"; //修改登录密码
#永久设置密码策略:
# vim /etc/my.cnf  //添加下列内容
[mysqld]
validate_password_policy=0
validate_password_length=6
################################################################
恢复root密码
1,停止Mysql服务
2,跳过授权表启动Mysql服务
3,修改root密码
4,正常方式启动Mysql服务
systemctl stop mysqld
vim /etc/my.cnf
[mysqld]
skip-grant-tables  //跳过授权表
systemctl restart mysqld
nysql //进入mysql(无密码)
update mysql.user set authentication_string=password("密码") where user="root" and host="localhost"; 
//password("密码")--内置函数加密密码,看不到明文显示
flush privileges; 刷新
quit;
vim /etc/my.cnf
#skip-grant-tables  //注释掉跳过权限
systemctl restart mysqld  //重启服务
mysql -uroot -p密码  //密码登录
#######################################################
重置管理员root密码
方法一
mysqladmin -uroot -p password "新密码"
Enter password:****** //输入旧密码
方法二
以root登录mysql后,使用set password
set password for root@localhost=password('123456');
方法三
update更新表记录
update mysql.user set authentication_string=password('密码') where user="root" and host = "localhost";

数据库的基本管理

连接数据库语法格式
mysql [-h服务器IP或域名 -u用户名 -p密码 数据库名称]
mysql -h192.168.4.50 -uroot -p123456 
注意事项操作指令不区分大小写(密码和变量除外)
sql语句以分号;结束
\c取消错误书写命令
**数据库相关指令**
数据库命名规则(数字,字母,下划线,不能纯数字,区分大小写,不能使用关键字和特殊符号)
show databases; //查看数据库
use mysql; //进入mysql数据库
select database(); //显示当前使用数据库
create database tts character set utf8mb4; //创建数据库tts编码utf8
drop database tts; //删除数据库

数据表数据操作相关指令

show character set;  //查看所有可用编码
create table 库名.表名 (
字段名   类型
学号   char(20),
姓名  char(20),
年龄  int(2),
);
desc 库名.表名;  //查看数据库表结构(所有字段)
drop table 库名.表名 //删除整个数据表
表数据的增删改查
insert ,delete ,update ,select
insert into 库名.表名 values(' ',' ',' '),(...);
insert into 库名.表名(字段名) values(' '),(' ');  //只添加指定字段的数据
delete from 库名.表名 where 条件; 删除所有满足条件的数据
update 库名.表名 set 字段=值,字段=值 where 条件; //更新数据
select 字段1,字段2,字段3 from 库名.表名 where 条件; //查询指定字段
select * from 库名.表名;  //查看表格所有数据
select count(*) from 库名.表名 //查看有多少条记录

编辑表结构操作指令

alter table 库名.表名 动作
after 字段名 ;first //指定字段的位置在某个字段之后,或者位于第一个
|------------------|--------------|
|        add       |    添加字段   |
|       modify     |  修改字段类型  | 
|      change      |  修改自定名称  |
|      drop        |   删除字段    |
|     rename       |   修改表名称  |
|------------------|--------------|

-1,alter table 库名.表名 add 字段名 类型;
alter table school.user add name char(20);
-2,alter table 表名 modify 字段名 类型;
alter table school.user modify addr varchar(20) default 'shanghai' after name;
-3,alter table 表名 change 字段名 新字段名 类型;
alter table school.user change name myname varchar(10);
-4,alter table 表名 drop 字段名;
alter table school.user drop id;
-5,alter  table 表名 rename 新表名
alter table school.user rename school.rest;

数据库的数据类型

  • 字符
    字符串使用需要引号" "
类型描述
char(字符数)固定长度,最长255字符,不够自动在右边填补空格,超出指定字符数则无法写入
varchar(字符数)可变长度,根据实际数据大小分配存储空间,超出字符数无法写入
text/blob字符数大于65535使用
create table school.info(
name char(4),email varchar(30));
  • 数值
    在这里插入图片描述
    #使用unsigned标记无符号存储
create table school.user (
id tinyint unsigned,age int(3),score float(4,2));
  • 日期时间
    • datetime 范围1000-01-01 00:00:00:000000~9999-12-31 23:59:59:999999 若不给该类型数据赋值,默认为null
    • timestamp 范围1970-01-01 00:00:00:000000~2038-01-19 03:14:07:999999 若不赋值,自动分配当前系统时间
    • date 范围0001-01-01~9999-12-31
      默认使用4为数字赋值,当只用2位数字赋值时:
      01-69自动识别为2001~2069
      70~ 99自动识别为1970~1999
    • year 范围1901~ 2155
    • time 时间范围HH:MM:SS
  • 枚举
    enum(值1,值2,值3…) //单选
    set(值1,值2.值3…) //多选
create  table school.user(
name char(5),
gender enum("boy","girl"),
interest set("book","file","movie"));

####################################################

条件匹配

在这里插入图片描述

基本匹配

  • 数值比较

类型比较例子
=相等id = 3
>大于UID > 3
>=大于等于uid >=3
<小于uid < 3
<=
!=不相等uid != 3
  • 字符串比较

类型比较例子
=相等name =“root”
!=不等name != "root "
is nullshell is null
is not null非空shell is not null
  • 逻辑匹配

类型用途格式
or逻辑或条件1 or 条件2
and逻辑与条件1 and 条件2
!或not逻辑非
  • 范围匹配

类型比较
in (值列表)在…里
not in (值列表)不在…里
between 数字 and 数字在…之间
distinct 字段名去重显示

高级匹配

  • 模糊查询
    -用法
    where 字段名 like ‘通配符’
    表示一个字符
    %表示0-n个字符
    -实例
    查询name值是"4个字符"的记录
    select name from db.user where name like "
    _ _ _ _"
    查询name含有a的记录
    select name from db.user where name “%a%”
  • 正则表达式
    用法
    _where 字段名 regexp “正则表达式”
    _正则元字符 ^ $ . [ ] * |
    示例
    _列出name以j开头y结尾的记录
    select name from db.user where name regexp “^j.*y$”;
  • 四则远算
    运算操作,字段必须为数值类型
    +, - , * , / , %
  • 聚集函数
    mysql内置函数:
    avg(字段名)
    sum(字段名)
    min(字段名)
    max(字段名)
    count(字段名)
    示例:
    select count(*) from db.user;
  • 查询结果排序
    SQL语句 order by 字段名 [asc | desc]
    asc --升序
    desc — 降序
    select name,uid from db.user order by uid desc;
  • 查询结果分组
  • SQL语句 group by 字段名
    select shell from db.user group by shell;
  • 查询结果过滤
    SQL语句 having 条件表达式;
    select name from db.user having name = “lucy”;
  • 限制查询结果显示行数
    用法
    SQL语句 limit 数字; //显示查询结果前几条数据
    SQL语句 limit 数字1,数字2; //
    数字1 起始行 (0表示第一行)
    数字2 总行数
    select name,uid from db,user limit 3;//前三行
    select name,uid from db.user limit 3,3; //第四行后3行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值