zoukankan      html  css  js  c++  java
  • MySQL基本操作

    1.数据库的基本概念

    (1)数据库(DataBase):用于存储和管理数据的仓库。

    (2)数据库的特点:

    • 持久化存储数据的。其实数据库就是一个文件系统
    • 方便存储和管理数据库
    • 使用统一的方式操作数据库—>SQL

    (3)常见的数据库软件

    2.MYSQL数据库软件

    MYSQL服务启动与关闭

    1.手动

    2.cmd—>services.msc

    3.管理员运行cmd窗口

    net start mysql 开启MySQL服务

    net stop mysql关闭MySQL服务

    4.MySQL登录

    mysql -u用户名 -p密码

    mysql -hip -u用户名 -p连接目标的密码

    5.MySQL的退出

    exit

    quit

    6.MySQL目录结构

    MySQL安装目录:配置文件 my.ini

    MySQL数据目录:数据库—>文件夹;表—>文件;数据—>数据

    3.什么是SQL

    1.什么是SQL?

    结构化查询语言:定义可以操作所有的关系型数据库(Relational DBMS)的规则

    2.SQL通用语法

    • SQL语句可以单行或者多行书写,以分号结尾。

    • 可以使用空格和缩进来增强语句的可读性。

    • MySQL不区分大小写,建议使用大写来书写。

    • 三种注释

      单行注释:- - 注释或者# 注释内容(MySQL独有)

      多行注释:/注释/

    3.SQL分类

    • DDL(操作数据库、表)
    • DML(增删改表中的数据)
    • DQL(查询表中的数据)
    • DCL(授权)

    4.DDL(操作数据库、表)

    1.操作数据库:CRUD

    • C(Create):创建

      create database 数据库名称;-- 创建一个数据库
      create database 数据库名称 character set 字符集格式;-- 创建一个数据库,设定字符集
      create database if not exists 数据库名称;-- 判断是否有数据库,没有在创建
      create database if not exists 数据库名称 character set 字符集格式;-- 不存在数据库则创建,设定字符集
      
      
    • R(Retrieve):查询

      show databases;-- 查询所有数据库的名称
      show create database 数据库名称;-- 查询某个数据库的字符集
      
    • U(Update):修改

      alter database 数据库名称 character set 字符集的格式;-- 修改数据库的字符集格式
      
    • D(Delete):删除

      drop database 数据库的名称;-- 删除数据库
      drop database if not exists 数据库名称;-- 判断数据库是否存在,存在删除数据库
      
    • 使用数据库

      select database();-- 查询当前正在使用的数据库
      use 数据库的名称();-- 使用该数据库
      

    2.操作表

    • C(Create):创建

      create table 表名(
      		列名1 数据类型1,
      		列名2 数据类型2,
      		.....
      		列名3 数据类型3
      )-- 创建表
      create table 表名 like 被复制的表名-- 复制表
      
      

      (1)int :整数类型

      age int,

      (2)double:小数类型

      score double(5,2)

      (3)date:日期,只包含年月日,yyyy-mm-dd

      (4)datatime:日期,包含年月日时分秒,yyyy-mm-dd HH:mm:ss

      (5)timestamp:时间戳类型 包含年月日时分秒 yyyy-mm-dd HH:mm:ss

      如果将来不给这些字段赋值,或者赋值为null,则默认使用当前的系统时间。

      (6)varchar:字符串

      name varchar(20):名字最大20字符

      zhangshan 8个字符 张三 2字符

    • R(Retrieve):查询

      show tables;-- 查询所有表的名称
      desc 表名;-- 查询表的结构
      
    • U(Update):修改

      alter table 表名称 rename to 新的表名;-- 修改表的表名
      alter table 表名称 character set 字符集的格式;-- 修改表的字符集
      alter table 表名称 add 列名 数据类型;-- 添加一列
      alter table 表名 change 列名 新的列名 新数据类型;-- 修改列名称和数据类型
      alter table 表名 modify 列名 新数据类型;-- 修改列数据类型
      
      
    • D(Delete):删除

      alter table 表的名称 drop 列名;-- 删除表中的一列
      

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

    1.添加数据:

    语法:

    insert into 表名(列名1,列名2,...,列名n)values(值1,值2,...,值n);-- 添加数据
    

    注意:

    1.列名和值要一一对应

    2.如果表名后,不定义列名,则默认给所有列添加值

    insert into 表名 values(值1,值2,...,值n);-- 添加数据
    

    3.除了数字类型,其他类型需要使用''或“”都可以。

    2.删除数据:

    语法:

    delete from 表名 [where 条件];-- 删除该条件数据
    delete from 表名;-- 删除表中所有记录(效率低)
    truncate table 表名;-- 删除表,然后再创建一个一摸一样的空表(效率高)
    

    注意:

    1.如果不加条件,则删除所有数据。

    2.delete from 表名;是一条一条数据删除,效率低。

    3.修改数据

    语法:

    update 表名 set 列名1=值1,列名2=值2,...[where 条件]-- 修改where条件中的数据
    update 表名 set 列名1=值1,列名2=值2,...-- 不加where条件,更改全部数据
    

    6.DQL:查询表中的记录

    1.查询语句

    select * from 表名;

    语法:

      select 
    
         字段列表
    
       from
    
         表名列表
    
       where
    
         条件列表
    
       group by
    
         分组字段
    
       having
    
         分组之后的条件
    
       order by
    
         排序
    
       limit
    
         分页限定
    
    • 基础查询

      1. 多字段查询

        select 字段名1,字段名2 ...from 表名;-- 多个字段的查询
        

        如果查询所有字段,则可以使用*来代替字段列表

      2. 去除重复

        distinct

      3. 计算列

        一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)

        ifnull(表达式1,表达式2):null参与的计算,计算结果都为null

        表达式1:哪个字段需要判断是否为null

        如果该字段为null后的替换值

      4. 起别名

        as:as也可以省略

    • 条件查询

      1. where子句后跟条件

      2. 运算符

        并且 && and

        或者 || or

        is null 查询是否为null

      3. like 模糊查询

        %多个字符

        _单个字符

    • 排序查询

      语法:

      order by 子句

      order by 排序字段1 排序方式1,排序字段2,排序方式2 ...;
      

      排序方式

      ASC:升序,默认的。

      DESC:降序

    • 聚合函数

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

      count:计算个数

      一般选择非空的列:主键

      count(*)只要一行的所以列都不为null,就算1

      max:计算最大值

      min:计算最小值

      sum:计算和

      avg:计算平均值

      聚合函数的计算会排除null值

      select MAX(列的名称) from 表的名称;-- 计算该列的最大值
      
    • 分组查询

      1.语法:group by 分组字段

      select sex,AVG(math),count(id) from 表的名称 group by 分组字段;
      

      where 和 having的区别?

      where在分组之前进行限定,如果不满足条件,则不参加分组。having在分组之后进行限定,不满足结果不会被显示。

    • 分页查询

      语法:limit

      select * from 表名称 limit 0,3;-- 第一页
      select * from 表名称 limit 3,3;-- 第二页
      

      —公式:开始的索引=(当前的页码-1)*每页显示的条数

      分页操作是一个“方言”

    2.约束

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

    分类:

    1. 主键约束:primary key

    2. 非空约束:not null,值不能为null

      • 在创建表时添加约束
      CREATE TABLE student1(
      	id INT,
        NAME VARCHAR (20) NOT NULL );-- name为非空
      ALTER TABLE student1 MODIFY NAME VARCHAR(20);-- 删除非空约束
      
      • 创建表完后,添加非空约束
      ALTER TABLE student1 MODIFY NAME VARCHAR(20) NOT NULL;-- 创建表完后,添加非空约束
      
    3. 唯一约束:unique,值不能重复

      create table student2(
      id int,
      phone_number VARCHAR(20) UNIQUE
      )-- 添加了唯一约束
      alter table student2 drop INDEX phone_number;-- 删除唯一约束
      ALTER table student2 MODIFY phone_number VARCHAR(20) UNIQUE;-- 添加唯一约束
      
    4. 主键约束:primary key

      含义:非空且唯一

      一张表只能有一个字段为主键,主键就是表中记录的唯一标识

    create table student2(
    id int PRIMARY KEY,
    phone_number VARCHAR(20) 
    )-- 添加了主键
    ALTER TABLE student2 DROP PRIMARY KEY;-- 删除主键,不需要指定字段,因为一个表只能一个主键
    ALTER TABLE student2 MODIFY id int PRIMARY KEY;-- 创建表后添加主键
    
      自动增长:只跟上一个数字有关系
    
    CREATE TABLE student2(
     id int PRIMARY KEY auto_increment,
     name varchar(20)
    )-- 设置自动增长主键
    ALTER TABLE student2 MODIFY id INT;-- 删除自动增长
    ALTER  TABLE student2 MODIFY id int auto_increment-- 添加自动增长;
    

    5.外键约束:foreign key让表与表产生关系,从而保证数据的正确性。

    1.在创建表时,可以添加外键

    create table 表名(
    ...
    
    外键列
    
    constraint 外键名称 foreign key 外键列名称 references 主表名称(主表列名称)
    
    );
    

    2.删除外键

    ALTER TABLE 表名 DROP FOREIGN KEY 外键列名称;-- 删除外键 
    

    3.添加外键

    ALTER TABLE 表名 **ADD CONSTRAINT 外键名称 FOREIGN KEY 外键字段** references 主表名称;
    

    !未完待更新!

  • 相关阅读:
    SQL Server
    SQL Server
    SQL Server
    SQL Server
    SQL Server
    SQL Server
    SQL Server
    ssh保持连接不断开
    如何查看linux是否打开虚拟化
    dd命令详解
  • 原文地址:https://www.cnblogs.com/cwstd/p/14000611.html
Copyright © 2011-2022 走看看