MySQL基础的概述

数据库DB概述

什么是数据库?

  • 数据库(DB)就是存储数据的仓库。

  • 数据库本质上是一个文件系统,以文件的方式(使用了对应的数据结构组织数据)存在服务器的电脑上

数据库优点、缺点

优点

  • 数据可以永久保存
  • 查询速度快
  • 对数据管理方便

缺点

  • 占用资源,需要花钱

选用MySQL原因

  • 免费
  • 功能强大

MySQL安装过程省略

数据库管理系统DBMS

DataBase Management System

概述

操作和管理数据库的软件,用于建立、使用、维护、查询统计数据库等操作功能,对数据库进行统一管理和控制,保证数据库的安全性和完整性。

1.一个数据库服务器包含多个库
2.一个数据库包含多张表
3.一张表包含多条记录    

结构化查询语言SQL

Structured Query Language

定义了操作所有关系数据库的规则

SQL通用语法

  • SQL可以单行或多行书写,以分号结尾
  • 可以使用空格和缩进来增强语句的通畅

MySQL的语法

  • SQL中不区分大小写,一般建议关键字用大写
  • 注释:–空格 单行注释 /* */ 多行注释 # mysql特有的注释

SQL语句分类

  • Data Definition Language(DDL 数据定义语言) //建库 ,建表
  • Data Manipulation Language(DML 数据操纵语言) //对表中的记录操作增删改
  • Data Query Language(DQL 数据查询语言) //对表中查询操作
    链接DQL详解用法
  • Data Control Language(DCL 数据控制语言) //用户权限的设置
    链接DCL概述用法

DDL

操作数据库,表

操作库
  • 创建(create)
1.创建数据库
    * CREATE DATABASE 数据库名;
2.创建数据库。判断是否存在,不存在则进行创建数据库
    * CREATE DATABASE IF NOT EXISTS 数据库名;
3.创建数据库,指定字符集
    * CREATE DATABASE 数据库名 CHARACTER SET 字符集;
-- 创建数据库K1
create database K1;
-- 判断是否存在,不存在则创建数据库K2
create database if not exists K2;
-- 创建数据库,指定字符集为gbk
create database K3 default character set gbk;
  • 查询(retrieve)

    1.查询所有数据库的名称
      * show databases;
      
    2.查询某个数据库的字符集,查询某个数据库的创建语句
      * show create database 数据库名称;
      
    -- 参看所有的数据库
    show database;
    
    -- 查看某个数据库的定义信息
    show create database K1;
    show create database K2;
    
    # 按tab键可以自动补全关键字
    
    • 修改(update)
    修改数据库的字符集
    * alter database 数据库名称 character set 字符集名称;
    
    -- 将K2数据库字符集修改为utf8
    alter database K2 character set utf8;
    
    • 删除(delete)
    1.删除数据库
      * drop database 数据库名称;
      
    2.判断数据是否存在,存在则删除
      * drop database if exists 数据库名称;
      
    -- 删除K1数据库
    drop database K1;
    
    • 使用数据库
mysql
    1.查询当前正在使用的数据库名称
    * select database();
    2.使用数据库
    * use 数据库名称;
-- 改变要使用的数据库
    use K4;
   
操作表
  • 数据库类型
1.int :整数类型
       age int2.double:小数类型
      score double(3,1)
      #表示一共3位,小数点保留1位
     
3. varchar:字符串
      name varchar(20):姓名最大10个字符
       #例如xuanyue 7个字符    轩月 2个字符
4.timestamp:时间戳类型 包含年月日时分秒 
      #yyyy-MM-dd HH:mm:ss  
      #如果不给字段赋值或者赋值为null,默认使用系统时间自动赋值
5.datetime:日期,包含年月日时分秒 
      #yyyy-MM-dd HH:mm:ss
6.date:日期,年月日     #yyyy-MM-dd   
  • 创建(create)
语法:
create table 表名(
				列名1 数据类型1,
				列名2 数据类型2,
				....
				列名n 数据类型n #最后一行不需要加逗号,
			); 

复制表:
 create table 表名 like 被复制的表名;	
			
-- 创建表
create table student(
				id int,
				name varchar(33),
				age int ,
				score double(6,2),
				birthday date,
				insert_time timestamp
			);

  • 查询(retrieve)
1.查询某个数据库中所有的表名称
* show tables;
2.查询表结构
* desc 表名;
  • 修改(update)
1. 修改表名
alter table 表名 rename to 新的表名;
2. 修改表的字符集
alter table 表名 character set 字符集名称;
3. 添加一列
alter table 表名 add 列名 数据类型;
4. 修改列名
alter table 表名 change 列名 新列名。 新数据类型;
5.修改列类型 MODIFY
alter table 表名 modify 列名 新数据类型;
  • 删除(delete)
1.删除列
alter table 表名 drop 列名;
2.删除表名
* drop table 表名;
3.判断表是否存在,如果存在则删除表
* drop table  if exists 表名 ;

DML

增删改表中数据MySQL基础

  • 添加(插入)
1.所有的列名都写出来
* insert into 表名(列名1,列名2,...列名n) values(1,2,...值n);
# 列名与值要一一对应
#除了数字类型,其他类型需要使用引号(单双都可以)
2.不写列名
* insert into 表名 values(1,2,...值n); 
#默认给所有列添加值,没有添加数据的列会使用NULL

-- 注意事项
1.插入的数据应该与列的数据类型相同
2.数据的大小不能超过所规定的范围
3.字符和日期型数据应包含在单引号中,mysql中双引号可作分隔符
4.不指定列或使用 null,表示插入空值。
  • 删除
1.不带条件删除数据
DELETE FROM 表名;
2.带条件删除数据
DELETE FROM 表名 WHERE 字段名=;
-- 注意
如果不加 where条件,将会删除表中所有数据

3.使用 truncate 删除表中所有记录
TRUNCATE TABLE 表名;
-- truncate 和 delete 的区别
truncate只能删除整个表,delete 可以带where条件
  • 修改(更新)
1.不带条件修改数据
UPDATE 表名 SET 字段名=; -- 修改所有的行
2.带条件修改数据
UPDATE 表名 SET 字段名=WHERE 字段名=;

DQL

查询表中的记录

select * from 表名;

语法:

select
		字段列表
	from
		表名列表
	where
		条件列表
	group by
		分组字段
	having
		分组之后的条件
	order by
		排序
	limit
		分页限定
  • 简单查询
1.使用*表示所有列
SELECT * FROM 表名;
-- 查询所有学生
select * from student;

2.查询指定列
SELECT 字段名 1, 字段名 2, 字段名 3, ... FROM 表名;
-- 查询Student表中 name 和 age列
select name,age from student;
  • 指定列的别名进行查询
1.对列指定别名
SELECT 字段名 1 AS 别名1, 字段名 2 AS 别名2... FROM 表名;
-- 使用别名
select  name as 姓名,age 年龄 from student;

2.对列和表同时指定别名
SELECT 字段名 1 AS 别名, 字段名 2 AS 别名... FROM 表名 AS 表别名;
-- 表使用别名,可用于多表查询
select  name as 姓名,age 年龄 from student as stu;
  • 去除重复
查询指定列并且结果不出现重复数据
SELECT DISTINCT 字段名 FROM 表名;
-- 查询学生的生源地
select address from student;
-- 去掉重复的地方
select distinct address Student;
  • 查询结果参与计算、计算列
1.一般可以使用四则运算计算一些列的值
2.ifnull(表达式1,表达式2)null参与的运算,计算结果都为null
  表达式1:哪个字段需要判断是否为null
  如果该字段为null后的替换值。
1.某列数据和固定值运算
SELECT 列名 1 + 固定值 FROM 表名;
2.某列数据和其他列数据参与运算
SELECT 列名 1 + 列名 2 FROM 表名;
-- 参与运算必须是数值类型
  • 条件查询

运算符

在这里插入图片描述

IS NULL  
and&&
or|| 
not!

LIKE:模糊查询
占位符:
_:单个任意字符
%:多个任意字符

-- 查询年龄大于30岁
select * from student where age >30;
select * from student where age >=30;

-- 查询年龄等于30岁
select * from student where age =30;

-- 查询年龄不等于30岁
select * from student where age !=30;
select * from student where age <>30;

-- 查询年龄大于等于30 小于等于40
select * from student where age >=30 && age <=40;
select * from student where age >=30 and age <=40;
select * from student where age between 30 and 40;

-- 查询年龄18岁,22岁,32岁的信息
select * from student where age =18 or age= 22 or age = 32;
select * from student where age in(18,22,32);

-- 查询数学成绩为null
select * from student where math is null;

-- 查询数学成绩不为null
select * from student where math is not null;

-- 查询姓罗的有哪些? like模糊查询
select * from student where name like '罗%';
select * from student where name like '罗';

-- 查询姓罗,且姓名有三个字的学生
select * from student where name like '罗__';

-- 查询姓名第二个字是月的人
select * from Student where name like '_月%';

-- 查询姓名是3个字的人
select * from Student where name like '___';

-- 查询姓名中包含轩的人
select * from student where name like '%轩%';
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值