数据库基础-1

数据库:(数据库管理系统,简单的sql语句)

        常见的数据库管理系统:Oracle(甲骨文),MySQL(原属AB公司,现属于Oracle公司)

Sql, Database(数据库在硬盘上以文件的形式存在),DBMS(数据库管理系统,常见的有mysql,oracle,db2等)

SQL:

        结构化查询语言,标准的sql适合所有的数据库产品。

        sql属于高级语言,在执行的时候,也会先进行编译,在进行执行(sql语句的编译由DBMS来编写。)DBMS负责执行sql语句,通过执行sql语句来操作DB之中的数据。

DBMS-- -- ---》(执行)SQL---- --- - 》DB

表:

表(table)是数据库的基本组成单元,目的是可读性强。

1.一个表包括行(row)和列(column):

        行:被称为数据/记录   

        列:被称为字段

2.字段包含的属性:

        字段名,数据类型,相关的约束。

3.学习mysql主要是学习通用的sql语句。

DQL《数据查询语句》:查询语句,凡是select语句,都是DQL。

DML《数据操作语言》: insert,delete,update,对表中的数据就行修改。

DDL《数据定义语言》:creat,drop,alter对表结构的增删改查。

TCL《事务控制语言》:commit提交事务,rollback回滚事务。(T代表transcational)

DCL《数据控制语言》:grant授权,revoke撤销权限等。

4.导入数据:

查看有哪些数据库:show database(这个不是sql语句,属于mysql命令)

创造一个自己的数据库:create database “名字”;(这个不是sql语句,属于mysql命令)

使用数据库:use “名字”(这个不是sql语句,属于mysql命令)

查看数据库中的表:show tables;

初始化数据:

source G:\mysql\bjpowernode.sql 

“sql”这样的文件称为sql脚本,当一个文件拓展名为sql,并且该文件中编写有大量的sql语句,我们称之为sql脚本)

删除数据库:drop database “名字”

5.查看表的结构desc “表名”


6.查看表中的数据:select *from “表名”

常用命令:

select database;  查看当前使用的数据库

select version ; 查看mysql的版本号

\c                         结束一条语句 

exit                      退出

show tables from “类名”     查看其他表中的表 

show create table “表名”;  查看创建表语句

 sql语句:

简单的查询语句(DQL):sql语句以;结尾,并且不区分大小写。

        语法结构: select  字段名, 字段名2,字段名3, from 表名;

字段可以参与数学运算

给查询结果的列重新命名。 select 字段,字段as 新字段名字 from 表名。

 注意:标准sql语句中要求使用单引号括起来,上述的as关键字可以省略。

条件查询:

语法格式:        select  字段,字段 from 表名 where 条件;(字符串用单引号括起来)

条件语句的判断符号

=

等于
<>    / ! = 不等于
<小于
>大于
<=小于等于
>=大于等于
between...and...在两个值之间(闭区间)左边是小数字,右边是大数字
is null为空
and并且
or或者
in包含,相当于多个or
not取非
like模糊查询, 支持%或者_匹配

between 可以在数字之间,还可以在字符串方面

select ename, sal from emp where sal between ‘A’ and ‘C’;  (左闭右开区间)

在数据库当中null 不是一个值,不能用等号来代替, 必须是is null 或者 is not null; 

and和or在一起运行时,and优先级要大于or,在运算符优先级不确定的时候,加小于号。

in等同与or ;in后边的每一个值不是区间,是一个具体的值。

 模糊查询 like:

比如:找出所有名字中带有o的?   %代表任意多个字符, _代表任意一个字符。

 

 如果要查询带有“_”的字符串,可以使用转义字符把下划线表示出来。 

排序

语法结构:select  字段 from 表名 order by 字段;(默认升序) asc 表示升序,desc表示降序。  

select ename ,sal from emp order by sal desc, ename asc;

(按照工资降序排,工资相同按照升序排),越靠前的字段,越先排序,起主导作用,无法排序后才会排序后边的字段。 

select ename ,sal from emp order by 2;

(按照第二列来排序)

sql 的执行顺序: select 字段(3) from 表名(1)where 条件(2) order by 条件(4);

分组函数:

count计数
sum求和
avg平均值
max最大值
min最小值

注意:所有的分组函数都是对“某一组”的数据就行操作; 

mysql> select sum(sal) from emp; // 工资总和
+----------+
| sum(sal) |
+----------+
| 29025.00 |
+----------+
1 row in set (0.01 sec)

mysql> select count(ename) from emp;  //计算总人数
+--------------+
| count(ename) |
+--------------+
|           14 |
+--------------+
1 row in set (0.01 sec)

分组函数只有这五个,分组函数还有另一个名字:多行处理函数(输入多行,输出一行)

分组函数自动忽略null

分组函数不能直接写在where之后

count(*)统计总条数,count(字段)统计字段内不为null的条数;

分组函数还可以组合起来使用。

单行处理函数:

一行一行处理的函数: 输入一行,输出一行。 

注意:数据库之中,只有有null参与的数据运算,结果一定是null。

ifnull() 处理函数?  

        ifnull(可能是null的数据,被当做什么处理);

 

 select ename from emp where sal > avg(sal);
ERROR 1111 (HY000): Invalid use of group function

分组查询:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值