zoukankan      html  css  js  c++  java
  • mariadb增删改查

    数据库用户的操作

    登录前需先启动3306端口。

    首次启动需初始化数据库

    mysql_secure_installation 

    增/改:

    创建用户及赋予用户指定权限

    grant 权限(分为create[创建]、delete[删除]、select[查询]、all[全部权限]) on 数据库.*或者*.* to 用户名@'localhost(只允许本机登录)/%(允许第三方登录)' identified by '密码';  

    删:

    收回用户指定或全部权限

    revoke 权限 on 数据库名或*.*  from 用户名;  

    删除用户

    drop user 用户名@'localhost';  

    用:

    登录数据库

    mysql –u 用户名 –p 密码;  

    查:

    查看指定用户权限

    show grants for 用户名; 

    查看当前登录数据库用户

    select user( ); 

    忘记用户密码怎么办

    vim /etc/my.conf.d/server/conf
    
    添加 skip-grant-tables

    登录无需密码,但登陆后设置密码后需在去配置文件删除添加的内容。

    数据库的操作

    增:

    创建新的数据库

    create database 命名;  

    删:

    删除数据库

    drop database 数据库名; 

    用:

    进入数据库

    use 数据库名; 

    改:

    修改数据装态,让其支持中文

    alter database 数据库名 character set utf8; 

    查:

    查看数据库当前状态

    show create database 数据库名; 

    查看库里数据库有哪些

    show databases; 

    数据库内表的操作

    增:

    创建表要先了解数据类型及约束才可以创建:

    类型:

    整数:

    tinyint     范围 unsigned(0-255)
    
    bit(0/1) 位,8位1字节,位由0和1组成。当你把字段设置成了bit,他只能存储两种数据,0或1,一般用来显示真或假。

    小数:

    decimal       decimal(m,n) m指定小数长度,n保留指定小数个数

    字符: 

    varchar(上限数)输入不满上限数按当前占位数计算
    
    char  (上限数)输入不满上限数按上限数计算

    枚举型 :

     enum(选项)

    日期:

    date     年月日
    
    time     时分秒
    
    year     年
    
    timetamp 时区

    约束:

    主键: primary key  {字段里的数据不能重复,不能为空}
    
    非空: not null  {字段里的数据不能为空}
    
    唯一:unique  {字段里的数据不能重复}
    
    默认值:default  {字段里的数据可以选填默认值}
    
    外键:foreign key  {表与表之间的联系用外键}

    他的作用是确保记录的完整性

    一个表中的某字段可填入数据取决于另一个表中的主键已有的数据。

    就是说我有一个表为父表,有一个表为子表,设置外键后,对父表或子表的操作,都影响双方。

      自增:auto_increment  {自增,意思是自动排序号 他可以填default或0 ,自增是不会回退的,当我删除一条记录,那么我再添加一条进去,就是按AUTO_INCREMENT=值 来插入。

    当我删除了id为3的,在定义id为3的记录,是可以的。}

    创建表

    create table 命名(字段 约束);  

    删:

    删除表

    drop table 表名; 

    改:

    对表重命名

    alter table 旧表名 rename 新表名; 

    查:

    查看当前数据库有哪些表

    show tables; 

    查看表的字段和对应的约束

    desc 表名; 

    查看指定表的状态

    show create table 表名; 

    字段

    增:

    添加新字段及其对应的约束

    alter  table 表名 add 字段名 约束;  

    删:

    删除指定字段

    alter  table 表名 drop 字段名;  

    改:

    改变指定字段的约束,注意,如果约束有多个,但想指定修改,需把不修改的也补齐才可以进行修改。

    alter  table 表名 modify  选定修改字段名 旧约束 新约束;  

    对字段进行重命名并对其规则进行修改,字段修改同上。

    alter  table 表名 change  旧字段名 新字段名 旧约束 新约束; 

    查看:

    查看指定表上的所有字段

    select * from 表名; 

    查看指定表上的所有字段

    select * from 数据库名.表名; 

    查看指定表上的指定字段

    select 字段名,字段名 from 表名;  

    记录(数据)

    增:

    指定表插入记录,记住,记录要跟约束走

    insert into 表名 values(记录);   

    让插入的记录实现自增效果

    insert into 表名 values (default/0); 

    让插入的记录实现为空效果

    insert into 表名 values (null); 

    指定字段来插入记录

    insert into 表名(字段名) values (记录); 

    插入多条记录

    insert into 表名/表名(字段名) values (记录),(记录); 

    删:

    删除表内所有记录

    delete from 表名;  

    删除表内指定字段的所有记录

    delete from 表名 where 字段; 

    删除表内单条记录

    delete from 表名 where id=number; 

    逻辑删除:就是假删除,打个标记,方便日后好调用,首先要添加bit约束的字段

    如果bit不填数值,它默认就是0

    alter table 表名 add 字段名 bit约束类型 default 0; 

    bit(1)有一种可能: 0,1

    bit(2)有四种可能:00,01,10,11

    对于数据库而言,最大的压力是读。就是查询。

    改:

    对字段内的所有记录进行修改

    update 表名 set 字段名=修改值 where 字段名=原值; 

    对字段内的单条记录进行修改

    update 表名 set 字段名=修改值 where id=number; 

    对字段内多条记录修改或对多个字段的记录全部修改。

    update 表名 ser 字段名=修改值,字段名=修改值 where id=number/字段名=原值 字段名=原值;

    查:

    条件查询:

    定制列举查询,就是现实指定字段的所有记录:

    select * from 表名 where 字段>条件 或者 字段<条件 或者 字段=条件;
    select 字段名,字段名 from 表名;

    字段起别名,就是把字段翻译成中文显示出来:

    select 字段 as '翻译',段 as '翻译'from 表名;

    给表起别名:

    select s.字段,s.字段 from 表名 as s;

    消除重复行:

    select distinct 字段 from 表名;

    模糊查询:

    %代表至少一个,至多n个

    select * from 表名 where 字段 like '%'; 

    一条下划线代表一个字符

    select * from 表名 where 字段 like '_';   

    范围查询:

    指定条件查询,如果没有指定的条件,则查询为空

    select * from 表名 where 字段 in (条件); 

    这是指定什么条件至什么条件之间进行查询

    select * from 表名 where  字段 betwwen 条件 and 条件; 

    取反

    select * from 表名 where 字段 not 指定范围/划定范围; 

    为空记录查询:

    select * from 表名where 字段 is null;

    不为空记录查询:

    select * from 表名 where 字段 is not null;

    排序查询:

    从小到大排序显示

    select * from 表名 order by asc;

    从大到小排序显示

    select * from表名 order by desc; 

    聚合函数查询:

    查询指定字段指定记录的总和

    select count(*) from 表名 where 字段=数值; 

    查询该字段的最大值

    select max(字段)from 表名; 

    查询该字段的最小值

    select min(字段)from 表名; 

    查询该字段的总和

    select sum(字段)from 表名; 

    查询该字段的平均值

    select sum(字段)/count(*)from 表名; 

    查询该字段的平均值

    select avg(字段)from 表名; 

    查询该字段的平均值,并且保留几位小数

    select round(avg(字段),number)from 表名; 

    分组查询:

    显示以该字段的分组

    select 字段 from 表名 group by 字段; 

    显示以该字段的分组,并且显示该分组内的数据总数

    select 字段,count(*)表名 group by 字段; 

    显示以该字段的分组,并且显示分组后对应字段内的指定字段的记录。

    select 字段,group_concat(字段) from 表名 group by 字段; 

    having,也是一个条件语句:

    select 字段 from 表名 having 条件;

    分页显示:

    显示表内指定行数记录

    select * from 表名limit number; 

    以第行记录开头,并且显示几行记录

    select * from 表名 limit number,number;
  • 相关阅读:
    Web For Pentester 学习笔记
    Vulhub Docker环境部署
    XSS 渗透思路笔记
    文件上传Upload 漏洞挖掘思路
    文件上传Upload 学习笔记
    XCTF-WEB-高手进阶区-upload1-笔记
    XCTF-WEB-高手进阶区-PHP2-笔记
    XCTF-WEB-高手进阶区-NaNNaNaNNaN-Batman-笔记
    XCTF-WEB-高手进阶区-Web_python_template_injection-笔记
    用JavaScript制作简单的计算器
  • 原文地址:https://www.cnblogs.com/shuaiyin/p/10957132.html
Copyright © 2011-2022 走看看