数据库及SQL语句入门教程

一.数据库的基本概念

1.1 数据库的英文单词

答:DataBase 简称:DB

1.2 什么是数据库?

答:用于存储和管理数据的仓库

1.3 数据库的特点

答:
1)持久化存储数据。(其实就相当于一个文件夹)
2)方便存储和管理数据方便。
3)使用了统一的方式操作数据库 – SQL

1.4 数据库常用软件

常用数据库排行

二.MySQL数据库软件

2.1 如何卸载?

答:
1)最重要的就是找到在C盘的存储位置,删除它就好了。
2)完后可以直接卸载MYSQL就好。(控制面板-程序卸载)

2.2 配置

1.手动,启动服务。

2.CMD -->services.msc 打开服务的窗口

3.使用管理员打开cmd:
net start my sql:启动mysql
net stop mysql:关闭mysql服务

4.MYSQL退出语句
答:quit

5.MySql目录结构
1)数据库:相当于文件夹
2)表:文件
3)数据

三.SQL

3.1 什么是SQL

答:
Structured Query Language : 结构化查询语言
其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。

3.2 SQL通用的语法

答:
1)SQL语句可以单行或多行书写,以分号结尾。
2)可使用空格和缩进来增强语句的可读性
3)MySQL数据库是不区分大小写的,但是建议关键字使用大写。
4)3种注释
– 单行注释: ①–(空格)注释内容 或 ②# 注释内容
③多行注释 /注释内容/

3.3 SQL分类

1)DDL(操作数据库和表的)
2)DML(增删改表中的数据)
3)DQL(查询表中的数据)
4)DCL(授权的)

四.DDL:操作数据库、表

4.1.操作数据库

4.1.1 C(Create):创建

1.创建数据库
答:SQL语句:create database 数据库名称;

2.创建数据库并判断是否存在
答:create database 数据库名称 if not exists 数据库名称;

3.创建数据库并判断是否存在并设置字符集
答:create database 数据库名称 character set 字符集合;

4.1.2 R(Retrieve):查询

1.查询所有数据库的名称
答:show database;

2.查询某个数据库的字符集:(查询某个数据库的创建语句)
答:show create database 数据库名称;

4.1.3 U(update):修改

1.修改数据库的字符集
答:alter database 数据库名称 character set 字符集;

4.1.4 D(Delete):删除

1.删除数据库
答:drop database 数据库名称;

2.判断数据库是否存在,完后再删除
答:drop database if exists 数据库名称;

4.1.5.使用数据库

1.查询当前正在使用的数据库名称
答:select database();
查询出来的结果
2.选择数据库
答:use 数据库名称;

4.2.操作表

前提条件是已经选择了数据库

4.2.1 C(Create):创建

1)create table 表名(列名1 数据类型1,列名2 数据类型2 …) ;

2)注意:最后一列不要加逗号,

3)数据库类型包括哪些?
int : 整数类型
double:小数类型
score double(5,2)有五位,保留两位
datetime : 日期
包含年月日时分秒yyyy-MM–dd HH:mm:ss
timestamp:时间戳类型
包含年月日时分秒 yyyy-MM–dd HH:mm:ss、
varchar:字符串类型

4.2.2.R(Retrive):查询

1.查询某个数据库中的所有表
答:show tables:

2.查询表结构
答:desc 表名;

4.2.3.U(updata):修改

1.修改表名
答:alter table 旧表名 rename to 新表名;

2.修改表的字符集
答:alter table 表名 character set 字符集;

3.添加列
答:alter table 表名 add 列名;

4.修改列名称,类型
答:alter table 表名 change 原列名 新列名 varchar(20);

5.删除列
答:alter table 表名 drop 列名;

4.2.4.D(Delete):删除

答:drop table if exists 表名;

4.2.5.复制表

答:create table 表名 like 被复制的表名;

五.DML:增删改表中的数据

5.1.添加数据

5.1.1 语法

答:insert into 表名 (列名1,列名2…)values(值1,值2,,…);

5.1.2 注意

1)列名和值要一一对应
2)如果表名后,不定义列名,则默认给所有列添加值
3)除了数字类型,其他类型需要使用引号(单双都可以)

5.2 删除数据

5.2.1 语法

答:delete from 表名[where 条件]

5.2.2 注意

1)如果不写条件,将全部删除

2)如果小删除所有记录
①delete from 表名; -->不推荐使用,一条一条的删除,太慢。
②TRUNCATE TABLE 表名; -->推荐使用这个,先直接删除整个表,再做一个空表效率高!

5.3 修改数据

5.3.1 语法

答:update 表名 set 列名1 = 值1,列名2 = 值2, …[where 条件];

5.3.2 注意

答:如果不加条件,则会全改

六.DQL:查询表中的记录

6.0 语法

答:select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页

6.2 多个字段的查询

1)select 字段名1,字段名2,…from 表名;

2)注意
如果要查询所有字段,可以使用*来代替字段列表;

6.3 去除查询中重复的部分

答:* select distinct 字段名 from 表名;

6.4 计算列

1)一般可以直接使用(字段名1+字段名2)四则运算来计算一些值(一般只计算数值型的值)。
2)ifnull(表达式1,表达式2);NULL参与结算,计算结果都为NULL
表达式1:那个字段需要判断是否为null;
表达式2:如果该字段为NULL后的替换值;

6.4 起别名

as:as也可以省略

6.5 排序查询

6.5.1 语法

1)order by 子句
2)order by 排序字段1,排序字段2…

6.5.2 排序方式

1)ASC:升序,默认的
2)DESC:降序

6.5.3 注意

如果有多个排序条件,则当前边的条件值一样时,才会判断第二个条件

6.6 聚合函数

概念:将一列数据作为一个整体,进行纵向的计算。

6.5.1 count:计算个数

1)一般选择非空的列:主键
2)count(*);
3)select count(id) from student;

6.5.2 max:计算最大值

SELECT max(math) FROM student;

6.5.3 min:计算最小值

SELECT min(math) FROM student;

6.5.4 sum:求和

SELECT sum(math) FROM student;

6.5.5 avg:计算平均值

SELECT avg(math) FROM student;

6.5.6 注意

1)聚合函数的计算,排除null值
2)解救方案:
①选择不包含非空的列进行计算
②IFNULL函数

6.7 分组查询

6.6.1 语法

group by 分组字段;【按照主观分类的感觉,不知道你能不能懂】
SELECT sex, avg(math),count(id) FROM student GROUP BY sex;

6.6.2 注意

1)分组之后查询的字段:要么是分组字段、要么是聚合函数
2)where和having区别
①where在分组之前就进行了限定没如果不满足条件,则不参与分组;
②having是在分组之后限定,如果不满足结果,则不会被查询出来;
③where后不可以跟聚合函数,having可以进行聚合函数的判断;
例子
select sex,AVG(math),COUNT(id),FROM student where math > 70 group by sex HAVING count(id) >2;

6.8 分页查询

6.8.1 语法

select * from student limit0,3; – 第一页

6.8.2 公式

公式:开始的索引 = (当前的页码 - 1)*每页显示的条数
注意:limit操作是一个MYSQL“方言”;
0,3,6就是开始的索引

6.9 条件查询

where
1.运算符:

  • <,>,>=,<=
  • BETWEEN…AND…
    *IN(集合)
  • like
    %
    _
    – 查询姓马的有哪些
    SELECT * from student where name LIKE “__腾”;
    *IS NULL
    – null 不能用=来判断
    SELECT * from student where english is NULL;
    *and 或 &&
  • or 或||
    *not 或 !

七.约束(主键之类的)

概念

  • 对表中的数据进行限定,保证数据的正确性、有效性、和完整性

7.1主键约束:Primary Key

  1. 通俗解释:主键其实没那么高大上啦,所以大家不用怕!道理很简单,我给大家举个例子!你说在数据库中,与那么多的表,那么怎么去确认每一个表的不同之处呢?除了表的名字以外,也就是主键了,所以这个主键吧,有一点像人的身份证号,在每个表中是唯一的,一个表就至少含有一个主键,当然这个主键可以理解为一列,这个列是有特殊存在的含义的,就是确定这个表的唯一标识!
  2. 主键的显示
  3. 这一列就是主键

7.1.1 注意-主键

1)主键非空且唯一
2)一张表只能有一个字段为主键
3)之间就是表中记录的唯一标识

7.1.2创建表时 - 添加主键

添加主键SQL语句

create table 表名(id int primary key,name vrchae);

7.1.3删除主键

ALTER TABLE stu DROP PRIMARY KEY;

7.1.4创建表后,如何添加主键

ALTER TABLE stu MODIFY id INT PRIMARY KEY;

7.1.5主键自动增长

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

  • 在创建表时,添加主键约束,并且完成主键自增长
    创建表时,创建主键的同时完成自动增长

7.2 非空约束

  • 创建表时添加非空约束
CREATE TABLE stu1(
			id int,
			NAME varchar(20) NOT NULL
);
  • 创建表完后,添加非空约束
Alter table stu modify name varchar(20) not null;

7.3 外键约束

*什么是外键约束?
外键相当于让表与表之间产生关联的一个桥梁,最终我们是想实现多表查询的,所以必须的有这么一座桥梁!

  • .在创建表时,可以添加外键,让表与表产生关系,从而保证数据的准确性
create table 表名( ....  外键列  constraint 外键名称  foreign key (外键列名称) references 主表名称(主表列名称));
  • 删除外键
ALTER TABLE employee DROP FOREIGN KEY emp_dept_fk;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vip__Miracle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值