日常笔记之数据库入门

数据库:按照数据结构来组织、存储、管理数据的仓库

好处:可以存储大量的数据、安全

常见的数据库有哪些:oralce 数据库            oralce公司

                                    sql-server 数据库      微软公司

                                    mysql 数据库             oralce 公司


 权限

dba:数据库管理员(Database Manager admin)

DCL(Data Control Language):数据库控制语言,用来定义访问权限和安全级别

如何创建用户:create user 用户名@地址 identified by '密码';

地址:给的是电脑IP地址

如何查看电脑的IP地址:cmd命令  ipconfig

本机地址为  localhost

如何查看数据库中有哪些用户

进入系统数据库中:use mysql;

查看用户表:select host,user from user;

给用户权限

grant 权限1,权限2,... on 数据库名称.* to 用户名@地址;

查看用户的权限

show grants for 用户名@地址;

删除用户名的操作

drop user 用户名@地址;

管理数据库:

1.登录

2.操作数据库:

                     

扫描二维码关注公众号,回复: 3289478 查看本文章
查看有哪些数据库:  show databases;

创建数据库:       create database 数据库名称;

删除数据库:       drop database 数据库名称;

使用数据库:       use 数据库名称;

查看当前数据库名称:select database();

查看数据库中的编码:status;

修改数据库中的编码:alter database 数据库名称 character set gbk;
   
查看表中的编码:   show create table 表名;

修改表的编码:     alter table 表名 character set gbk;

修改表中字段的编码:alter table 表名 change 字段 字段 数据类型 character set gbk;

3.数据库中操作表

常用的数据类型

日期:date    年-月-日(3个字节)

时间:time    时:分:秒(3个字节)

日期+时间:datetime    年-月-日 时:分:秒(8个字节)

整型:int (4个字节,正负21亿)

浮点型:

float(m,d)(4个字节,单精度,m总个数,d小数位)

double(m,d)(8个字节,双精度,m总个数,d小数位)

字符串:varchar(n)(n设置字符的长度) 

注:定义表的时候告诉字段只能放什么数据

查看数据库中有哪些表: show tables;

创建表:              create table 表名(字段名称1 数据类型1,字段名称2 数据类型2);

删除表:              drop table 表名;

查看表的信息:        desc 表名;

添加字段:            alter table 表名 add 字段名称 数据类型;

删除字段:            alter table 表名 drop 字段名称;

修改字段:            alter table 表名 change 修改的字段 新的字段 数据类型;

修改字段类型:        alter table 表名 modify 字段 数据类型;

修改表的名称:        alter table 旧的表名 rename to 新的表名;

4.往表中操作数据

添加数据:          insert into 表名(字段1,字段2,...) values(值1,值2,...);
可以添加多条数据
                   insert into 表名(字段1,字段2,...) values(值1,值2,...),(值1,值2,...);
可以只添加一个字段(没有添加的字段数据默认为null)
注:字符串数据要用''引起来

修改数据:         update 表名 set 修改的字段1='值1',字段2='值2' where 条件;

删除整行数据:     delete from 表名 where 条件;

5.select 基本查询

查询所有的列: select * from 表名;

查询指定的列: select 列名1,列名2 from 表名;

6.where 条件查询   

运算符的查询

= 、 != 、 <> 、 < 、 > 、 <= 、 >=

select * from 表名 where 条件;
连接查询

and 

select * from 表名 where 条件1 and 条件2;
区间查询

between ... and ...;

select * from 表名 where 列名 between 值1 and 值2;
逻辑查询

1.or 或者

select * from 表名 where 条件1 or 条件2;

2.in 在...里面(领域范围)

select * from 表名 where 列名 in(值1,值2,...);

3.not in 不在...里面

select * from 表名 not in(值1,值2,...);

4.is null 是空的

select * from 表名 where 列名 is null;

5.is not null  不是空的

select * from 表名 where 列名 is not null;
模糊查询:模糊查询用like(相似)

其中"_"为一个空格占一个位置(一个位置一个字符)
其中"%"占多个位置)(多个字符)

1.select * from 表名 where 列名 like"_h%";
查询第二个字母为"h"的...

2.select * from 表名 where 列名 like"zhang%";
查询姓"zhang"什么的...

3.select * from 表名 where 列名 like"%a%";
查询什么中包含"a"的...

 7.去除重复

去除重复 distinct

select distinct 列名 from 表名;

8.取别名 

取别名 as(可以省略)

列取别名

select 列名 as '别名' from 表名;

表取别名

select e.ename,e.empno from emp e;

9.排序 

排序(不管做什么操作都是查询结果后排序)

order by asc(升序)
         desc(降序)

select * from 表名 

order by 列名 asc/desc;

10.聚合函数

聚合函数

count(统计)
select count(列名) from 表名;
select count(distinct 列名) from 表名;

sum(求和)
select sum(列名) from 表名;

avg(平均数)
select avg(列名) from 表名;

max(最大值)
select max(列名) from 表名;

min(最小值)
select min(列名) from 表名;

11.分组查询

分组查询(有重复的数据才可以分组)

select 列名1,列名2 from 表名

group by 列名1;

 12.having 子句

having 子句

having 是对“分组后”数据的约束

select 列名1,列名2 from 表名

group by 列名1

having 条件;

13.分页查询 

分页查询

limit

select * from 表名 limit 值1(从哪里开始),值2(查询多少条数据);

 14.连接查询

内连接:都满足条件就给查出来

select e.ename,e.deptno,d.dname,d.loc

from emp e join dept d on e.deptno=d.deptno;



外连接:查询出的结果存在不满足条件的可能

左连接:先查询出左表,然后查询右表,右表中满足条件的显示出来,不满足条件的显示null

select e.empno,e.ename,e.deptno,d.dname,d.loc

from emp e left join dept d on e.deptno=d.deptno;


右连接:先查询右表,然后查询左表,左表中满足条件的显示出来,不满足条件的显示为null

select e.empno,e.ename,d.deptno,d.dname,d.loc

from emp e right join dept d on e.deptno=d.deptno;



子查询:嵌套查询,即select 中包含 select

单行单列           (用于条件)
单行多列  in       (用于条件)
多行单列  all,any (用于条件)
多行多列  作为临时表(用于表)

                                                                      


表的约束

完整性约束是为了表的数据的正确性,如果数据不正确,那么一开始就不能添加到表中

主键:唯一约束

主键列的值不能为null,也不能重复

每张表最好只能有一个主键,指定主键约束使用 primary key 关键字

not null 如果给空是不能插入数据的

primary key 如果主键有重复的不能插入数据

primary key 主键

auto_increment 自动递增
外键约束

主外键构成表与表关联的唯一途径

外键是另一张表的主键

constraint fk_约束名称 foreing key(外键字段) references 关联的表(关联的字段);

简单的存储过程

概念类似于函数,就是把一段代码封装起来

当要执行这段代码的时候,可以通过调用该存储过程来实现

create procedure 程序名称()

begin

    sql语句

end;


调用存储过程  

call 程序名称();


带参数的存储过程

create procedure 程序名称(参数)

begin

    sql语句

end;

调用存储过程

call 程序名称(参数);

索引:主要思想是将数据分段,从而减少查询时的无效数据,提高查询效率


什么是视图:视图是有查询结果形成的一张虚拟表

什么时候要用到视图:某个查询结果出现的非常频繁,也就是要经常拿这个查询结果来做子查询

create view 视图名 as select 语句;

可以用视图名这个临时表来使用

猜你喜欢

转载自blog.csdn.net/chen97_08/article/details/81347472