对数据库学习的大致总结

date
Feb 4, 2018
slug
sql-summary
status
Published
tags
开发测试
summary
花了两天时间,了解了一下数据库的基本语法以及操作,看的是SQL必知必会这本书,感觉这本书比较薄,看起来不像课本那样详细,所以我总结的也不太全面,请多多包含吧。。。。。
type
Post

0x01 前言

花了两天时间,了解了一下数据库的基本语法以及操作,看的是SQL必知必会这本书,感觉这本书比较薄,看起来不像课本那样详细,所以我总结的也不太全面,请多多包含吧。。。。。

0x02 正文

1 Navicat的使用

如果你没接触过SQL,可以先用这款软件去熟悉一下数据库的结构,这款软件只要连接好数据库就能用了十分方便,还能在里面练习SQL语句。。。

2 数据库的结构

个人看了几天书,我认为数据库一般都是按照下面的顺序去操作的:数据库->表->字段(列)->行

3 数据库的各种语句以及操作

3.1 注释

1.#
2.--
3./*   */
(前两个都是单行注释,注意双斜杠后面有空格,第三个是多行注释)

3.2 创建数据库

CREATE DATABASE 数据库名称;

3.3 查看数据库

SHOW databases;

3.4 切换数据库

USE 数据库名;
####3.5 删除数据库
DROP DATABASE 数据库名;
注意 SQL语句对大小写不敏感,并且以分号作为语句的结束

3.6 创建数据表

如:
CREATE TABLE teacher(
	id int(4) not null primary key auto_increment,
	name char(20) not null,
	sex char(10) not null,
	addr char(20) not null
);
####3.7 查看数据表
show tables;

3.8 插入数据表

insert INTO teacher(name,sex,addr)
	values('Leo','Male','hangzhou');

3.9 查询数据表

select * from teacher;
要搜索多个列用逗号隔开,例如:
select id,user from teacher;   /*没有明确排定的顺序,每一次查询的顺序可能都不一样,很正常,牵扯到DBMS的回收机制,看看书就好,不多说*/

3.10 where句子

select 你要的信息 from 数据表(或多个) where 满足的条件(判断的条件)
"*"代表所有符合数据,where也可以用于update或者delete语句中

3.11 order by句子

select 你要的信息 from 数据表(或多个) order by 字段 ASC/DESC   /*按字母等顺序排序,后面的ASC那些可以不写,默认ASC升序,DESC降序*/
可使用order by ‘数字’,判断数据标的字段长度
使用该子句时,应确保他是select语句的最后一个字句,即当where子句出现的时候order by应该放在where的后面,不然会报错
按多个列排序,像搜索的时候用逗号隔开即可,如:select user,content from msg order by user,content;这句话只有在user这个条件都一样的时候才会对content排序,如果user都是唯一的话,没啥实际作用。。。。

3.12 union句子

可以合并两个表中的信息
select 你要的信息 from 数据表1 union select 你要的信息 from 数据表2;  /*对于这句话,它是不显示两个表中的相同的信息的*/
要显示全部信息的话可以使用union all,对于那一种,其实还有个distinct关键字让数据库只返回不同的值,不多说,可以自己去看书学习

3.13 limit句子

limit指定返回的行数,例如:
select * from teacher limit 5 offset 5;  //这里的offset是从第几行开始,这句话是从第五行起的五行数据
注意:第0行的问题 limit 1 offset 1 是从数据表的的第二行开始,因为数据库第一行相当于语句的第0行

3.14 更新数据

update teacher set name = '0ver' where id=1;

3.15 删除表的内容

delete table

3.16 删除表

drop table 表名

3.17 sql注入中常用的内置函数

select database()
select currebt_user
select load_file("路径")
select version()     //数据库版本

3.18 php连接到数据库

前两天总结了php,现在再来讲讲php+mysql的应用
我认为,这个代码应该分成两个部分:
1.连接到数据库 2.执行SQL语句
提醒一下,不要用mysql_connect连接了,太古老了,官方文档是这样说的:从 PHP 5.5.0 起这个扩展已经被废弃,并且从 PHP 7.0.0. 开始被移除。 怪不得我以前照着书上的代码敲的时候不能用。。。。。。。。
mysqli连接,这个大部分是面向对象的,即最好用new来开始连接,不推荐过程化风格,虽然过程化风格跟mysql_connect很像,所以还是对php里面的类和对象有点了解比较好,想详细了解的话可以看官方文档
另外执行mysql语句命令用的是query语句执行的,而且query语句返回的是true跟false,可以用这一点去判断是否执行成功。
整个环境都是用PHPstudy搭的,数据库名称是php10,以后配置记得以下三步:数据库导入,原码导入,配置数据库文件emmmm,不多说了,还是直接上代码比较靠谱:
<?php
$host = 127.0.0.1;
$user = 'root';
$pwd = 'root';
$dbname = 'php10';

$db = new mysqli($host,$user,$pwd,$dbname);
if($db->connect_errno!=0)   //这里的的mysqli_errno=0即连接成功,可以用var_dump函数去验证
{
	echo "连接失败!";
	echo $db->connect_error;    //返回错误信息

}

$sql = "update msg set user='0verWatch' where id=1";  //sql语言不分大小写
$db->query("SET NAMES UTF8");
    //确保数据传输也是UTF-8,防止出现乱码,可能会出现这种情况,但我发现我删除之后没影响,最好还是些写写吧,小心是UTF8没有横线
$flag = $db->query($sql);      //返回true跟false,查询官方文档可知
if($flag == true)
{
	echo '连接成功!';
}
else
{
 	echo "连接失败";
}


?>


0x03 发几句牢骚

放寒假打的第一场球,就把手给折了,还好我强忍着疼痛把这篇博客给写完,果然学习才是人生第一大事。。。。。。。

© 4me 2021 - 2024