数据库基础——mysql数据库

一、数据库简介

        数据库:数据库是一个按数据结构来存储和管理数据的计算机软件系统。简单来说,数据库是用来存放数据的。

        常见数据库及端口

mysql(3306):关系型数据库   mssal(1433)   oracle(1521)   

db2(9500)   postgresql(5432)        redis(6379)


二、MySQL数据库

        1.数据库结构

数据库—》》表—》》列(字段)、行(记录)

        2.数据类型


三、mysql查询语句

        1.数据库命令  进入查看数据库:mysql   -u root -p

        select user():返回当前连接到 MySQL 服务器的用户的用户名和主机名

                

        2. 创建数据库:create  database  数据库名       create database EC2501;

展示所有数据库: show databases;

        3.数据库增删改查

选择数据库   Use 数据库名(所有命令只针对该数据库)

创建表

主键:唯一标识符(此字段可区分表内所有记录)

创建数据表:CREATE TABLE 表名(属性名 数据类型 完整性约束条件,属性名 数据类型);

约束条件:

create table list(id int primary key auto_increment,name varchar(20) not null,sex char(2) not null,phone varchar(
11) not null,age tinyint not null);

desc list;          查询表内数据

插入数据:insert into table name(field1,field2…fieldN) Values(value1,value2…valueN);

eg:
insert into list(name,sex,phone,age)Values('AB','m','18523694278',5);

  • 更新数据(update):pdate teble_name set field1=new-value1, field2=new-value2;

SQL查询语句

        Select 属性列表         from 表名和视图列表

                                           [where 条件表达式1]

                                           [group by 属性名1 [having 条件表达式2]]

                                           [order by 属性名2 [asc | desc]]

  [where 条件表达式1] [group by 属性名1 [having 条件表达式2]] [order by 属性名2 [asc | desc]]

where子句常用查询条件:

通配符:%、*、_

集合函数

正则匹配:regexp、rlike

运算符优先级:

mysql函数:

系统函数:

        version()--mysql版本 user()--数据库用户名 database()--数据库名

        @@datadir--数据库路径  @@version_compile_os--操作系统版本

        @@hostname--当前机器的机器名

字符串连接函数:

        concat(str1,str2,…)--没有分隔符地连接字符串

        concat_ws(separator,str1,str1,…)--含有分隔符地连接字符串

        group_concat(str1,str2,…)--连接一个组的所有字符串,并以逗号分隔每一条数据

获取指定长度的函数: left/right(str,length);

        str是要提取子字符串的字符串,length是一个正整数,指定将从左边返回的字符数

substr (str, pos, len):str为列名/字符串;

        pos为起始位置;mysql中的起始位置pos是从1开始的;如果为正数,就表示从正数的位置往下截取字符串(起始坐标从1开始),反之如果起始位置pos为负数,那么 表示就从倒数第几个开始截取;len为截取字符个数/长度

substring(str, pos)

        substring(str, pos, len)

        说明:substring(被截取字段,从第几位开始截取) substring(被截取字段,从第几位开始截取,截取长度)

mid(column_name,start,length)

        column_name   必需。要提取字符的字段

        start 必需。规定开始位置(起始值是 1)

        length     可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本

if()

if(1,2,3)  1的值为true,则返回2    1的值为false,则返回3

hex

HEX(string)   string-每个字符的输入字符串都将转换为两个十六进制数字。

HEX(N)    N-要转换为十六进制的输入数字

ASCII(str)

    返回字符串str最左面字符的ASCII代码值,如果str是空字符串,返回0,如果str是NULL,返回NULL

Case

    case when 条件 then 1(条件成立返回1)else 0(不成立为0)end;

exp()

        exp(709)  正常

        exp(710)  mysql会报错导致服务器报错

报错函数:updatexml();     extravalue();

四、练习

        1.判断用户名的第四位的ascii码是否为116,是返回1,否则返回0

select case when ascii(substr(user(),select like 116 then 1 else 0 end;
select if (ascii(mid(user(),4,1))=116,1,0);

2.使用sleep()延迟查询时间

Sleep():用于使当前会话休眠指定的秒数

select id,name,age,sex,sleep(5) from list where id < 3 or phone like '%85%';  

   每条记录延迟5秒,3row将延迟15sec

3.sqli         

use security

        1.查询user表中有多少条数据

        2.将users表中的所有记录作为一条记录输出并以‘_’分割每条记录

        3.查询user表中id为1的数据并查询mysql版本是否为8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值