MySQL数据库基础

数据库

数据库就是长期存在于计算机内,有组织,可共享的,大量数据的集合。数据是按照特定的数据模型来组织的,存储在数据库中的。

好处: 持久化数据到本地,可以实现结构化查询,方便管理

数据库的相关概念 

DB:数据库,保存一组有组织的数据的容器

DBMS :数据库管理系统

SQL:结构化查询语言,用于和数据通信的语言

SQL语言的分类:

DML:数据操作语言,用于添加,删除,修改数据库记录,并检查数据的完整性,关键字:insert, delete,update

DDL:数据定义语言,用于库和表的创建,修改,删除,关键字:create,alter,drop

TCL:数据事务语言

DQL:数据查询语言,用于查询数据库中表的记录,关键字:select,where

DQL语言

有着简单查询

条件查询

排序查询

常见函数:分组函数:

count:计算个数 max:计算最大值   min:计算最小值  sum:计算和 avg:计算平均值

分组查询:特点

1 可以按单个字段分组

2 和分组函数一同查询的字段最好是分组后的字段

3 可以按多个子段分组,字段之间用逗号隔开

4 可以支持排序

5 having 后可以支持别名

多表连接查询

笛卡尔集:产生条件

1 省略连接条件

2 连接条件无效

3 所有表中的所有行互相连接

内连接

一般以SQL99语法为主

         select 字段列表 
        from 表名1 
        [inner] join 表名2 on 条件
        where 筛选条件
        group by 分组条件
        having 分组后的筛选条件
        order by 排序字段

外连接:

左外连接:查询的是左表所有数据及其交集部分

	select 字段列表 
		from 表1 
		left [outer] join 表2 on 条件

右连接:查询的是右表所有数据及其交集部分

        select 字段列表 
        from 表1 
        right [outer] join 表2 on 条件

		select 字段列表 
		from 表1 
		right [outer] join 表2 on 条件

子查询:查询中嵌套查询

特点:1 子查询都放在小括号里面

2 子查询一般放在from后面,select后面,where后面,having后面,但是一般放在条件的右侧

3 子查询优先于主查询执行,主查询使用了子查询的执行结果

单行子查询:

结果集只有一行

一帮搭配单行操作符使用:> < = <> >= <=

非法使用子查询的情况:

子查询的结果为一组值

子查询的结果为空

多行子查询:

结果集一般有多行

搭配: any, all ,in ,not in

分页查询:

select 字段|表达式,...
	from 表
	where 条件
	group by 分组字段
	having 条件
order by 排序的字段
limit 起始的条目索引,条目数;

特点:

起始索引条目从0开始 

limit放在语句的最后面

联合查询:

	select 字段|常量|表达式|函数 from 表 where 条件 union 【all】
	select 字段|常量|表达式|函数 from 表 where 条件 union 【all】
	select 字段|常量|表达式|函数 from 表 where 条件 union 【all】
	.....
	select 字段|常量|表达式|函数 from 表 where 条件

特点:

1多条查询的列数必须是一致的

2 多条查询语句的查询列的类型几乎相同

3 union代表去重,union all 代表不去重

DDL语言

创建数据库:create  database  if not exists 数据库名称; 

创建数据库并指定字符集:create database 数据库名称 character set 字符集名;

查询数据库所有名称:show databases;

修改数据库的字符集:alter datebase 数据库名称 character set 字符集名称;

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

查询当前使用的数据库名称 select database();

使用数据库 use 数据库名称

数据表的操作

表的创建

    * create table 表名(
                列名1 数据类型1 【字段约束】,
                列名2 数据类型2 【字段约束】,
                ....
                列名n 数据类型n 【字段约束】
            );
    * 注意:最后一列,不需要加逗号(,)

查询表的结构:DESC 表名

修改表的字符集: alter table 表名 character set 字符集名称;

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

添加列:alter table 表名 add 列名 数据类型;

修改列的名称和类型:* alter table 表名 change 列名 新列别 新数据类型;
    * alter table 表名 modify 列名 新数据类型;

删除列 alter table 表名 drop 列名;

删除表:drop table 表名

常用的数据类型:

1. int:整数类型 

2. double:小数类型

3. date:日期,只包含年月日,yyyy-MM-dd 

4. datetime:日期,包含年月日时分秒     yyyy-MM-dd HH:mm:ss 

5. timestamp:时间错类型    包含年月日时分秒     yyyy-MM-dd HH:mm:ss    

6. varchar:字符串

约束:

1 主键约束 primary key 

2 非空约束: not null 

3 唯一约束:unique

4 外键约束:foreign key

5 默认:default

6 检查:check

自动增长:

如果某一列是数值类型的,使用auto_increment 可以来完成值的自动增长

DML语言

添加数据:insert into 表名(列名1,列名2.。。)values(值1,值2,,,,)

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

truncate table表名

修改数据:update 表名 set 列名1=值1,列名2=值2,where 条件

update 表1 别名1,表2 别名2  set 字段=新值 ,字段=新值 where 连接条件 and 筛选条件


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值