对数据库学习的大致总结

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 发几句牢骚

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

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值