码迷,mamicode.com
首页 > 数据库 > 详细

SQL语言基础和数据库操作

时间:2019-12-22 19:58:54      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:多少   and   网址   成功   http   创建表   alt   format   oss   

Sql语言基础:

核心思想:我们自己构造一段查询的代码,然后添加到语句后,从而得到想要的某些数据。

Mysql是一种开源数据库

APP Serv:Apache+php+mysql,相当于phpstudy(建议装在本机上,不建议装在虚拟机)

安装(主要):4个主件都要安装,本地网址需要自己命名,例如:www.test.com

然后设置Mysql密码,选择允许通过防火墙。

默认启动Apache和mysql

Mysql操作:

打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址;

技术图片

 

 

登录数据库:

技术图片

 

 

也可越权访问,此时就跳过了mysql的用户验证。注意输入此命令之后命令行就无法操作了,此时可以再打开一个新的命令行。

注意:在输入此命令之前先在任务管理器中结束mysqld.exe进程,确保mysql服务器端已结束运行; 然后直接输入mysql,不需要带任何登录参数直接回车就可以登陆上数据库

技术图片

 

 

此时我们就可以进行一系列操作了

输入select version();   显示当前版本号

技术图片

 

 

输入show databases;  查看当前包含哪些数据库(从以下可以看到6个数据库)

技术图片

 

 

Information_schema,mysql,内置的,不需要做任何改动,test除外,因为test

本来就是用来做测试的

打开test数据库:use test;

技术图片

 

 

显示当前打开的数据库:select database;

技术图片

 

 

显示test数据库的表:show tables;(这里可以看到test数据库表为空)

技术图片

 

 

创建表:

mysql>create table hack                创建表hack;

->(                              表的内容如下;

->id int                           id字段为整数型

->usename varchar(20),             usename为可变长度的20个字节长度类型

->password varchar(30)            

->);

技术图片

 

 

往表里添加记录:

insert into hack values(1,’admin’,’456’);

insert into hack values(2,’boss’,’123’);

技术图片

 

 

select查询语句:

select * from hack;                    显示hack表里所有字段内容;

技术图片

 

 

select usename,password from hack;   只显示usename和password两个字段的内容;

技术图片

 

 

select usename,password from hack where id=1;   从hack表中查找满足条件id=1的记录;

技术图片

 

 

select * from hack where id=1 and usename=’admin’;   从hack表中查找满足id=1且usename=”admin”时的记录;

技术图片

 

 

select * from hack where id=1 or usename=”boss”;  从hack表中查找满足id=1或者usename=”admin”时的记录;

技术图片

 

 

我们再创建个表new

技术图片

 

 技术图片

 

 技术图片

 

 

我们还可以删除表(这里以删除表news为例)

技术图片

 

 

验证删除表news是否成功:

技术图片

 

 

select * from new where id=1 and exists(select * from hack);     判断在hack数据库中查找关于new表中是否存在id=1的字段;

技术图片

 

 

select * from hack order by password;          查询所有字段,按照password来排序(默认升序)

技术图片

 

 

select * from hack order by 4;                        查询hack数据库的字段数(这里可以看到不存在4个字段)

技术图片

 

 

select * from hack order by 3;        判断当前查询显示几个字段,这里用3判断了下,说明是存在3个字段的

技术图片

 

 

Union联合查询:

知道显示的是几个字段显示几个字段有什么用呢?

其实就是为了我们后面的union联合查询,可以使用union查询一次性执行两个或者多个查询,并将它们的结果组合在一起输出显示。必须知道有多少个字段才能执行。

这里需要特别注意的是union联合查询的基本规则就是所有查询中的列数必须相同。意思就是说前面的查询结果的字段数跟后面查询结果的字段数必须是一样的。

具体查询操作如下所示:

查询new表字段数,如下图可以看到,有两个字段

技术图片

 

 

查询hack表字段数,如下图可以看到,有三个字段

技术图片

 

 

由前面我们知道new表中有两个字段,hack表中有3个字段,当我们输入:  select * from new union select * from hack;  时查询是报错的,报错原因说的是字段数不匹配

技术图片

 

 

不匹配怎么办呢?我们保证前后字段数相同不就行啦!

new表有两个字段,我们让hack表也只显示两个字段(usename和password)

我们再输入select * from new union select usename,password from hack;

技术图片

 

 

看到没,成功啦!

那么我们还可以满足hack表,让new表显示3个字段

输入 select * from hack union select 1,2,3 from new;          其中1,2,3可以替换成new表中的字段名

例如我这里要同时输入hack表里所有字段和new表里id和title两个字段如下所示。

技术图片

 

 

最后说一下mysql中的注释语句,因为有时我们需要屏蔽一下语句的作用,就需要用到注释符。

单行注释:在某一行中插入一个符号,这一行就没有意义了,例如,我们在此处插入#,后面的语句就被注释掉了,输出结果就不会显示。

技术图片

 

 

除了# 还有-- 注释符,注意:这里—后面有一个空格

技术图片

 

 

多行注释:/*      */,”/*”用于注释文字的开头,”*/”用于注释文字的结尾。

 

学到这里我们几乎就可以开始sql注入啦!!

SQL语言基础和数据库操作

标签:多少   and   网址   成功   http   创建表   alt   format   oss   

原文地址:https://www.cnblogs.com/xixi3/p/12080566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!