数据库的基本操作

Posted 幽萌之雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库的基本操作相关的知识,希望对你有一定的参考价值。

目录

一、数据库的基本操作

1、数据库的登录及退出

2、查看所有数据库

3、显示数据库版本

4、显示时间

5、创建数据库

6、查看创建数据库的语句

7、查看当前使用的数据库

8、查看当前用户

9、使用某个数据库

10、删除数据库

二、数据表的基本操作

1、查看当前数据库中的所有表

2、创建表

3、查看表结构

4、查看创建表的语句

5、向表中插入,更新,删除数据

6、查看表中数据

7、修改表名字

8、修改表字段信息

9、删除表

三、mysql查询操作

1、基本查询

2、条件

3、排序

4、聚合函数

5、分组

6、连接查询

6.1、内连接查询

6.2、外连接查询

6.2.1、左连接查询

6.2.2、右连接查询

7、自关联

8、子查询和联合查询


一、数据库的基本操作

1、数据库的登录及退出

 退出数据库,以下三种方式都可以:

exit

quit

ctrl+d

2、查看所有数据库

3、显示数据库版本

4、显示时间

5、创建数据库

6、查看创建数据库的语句

注意:在创建数据库或查看创建数据库语句时,database没有s。 

7、查看当前使用的数据库

当选择了某个数据库时,显示如下:

8、查看当前用户

9、使用某个数据库

10、删除数据库

二、数据表的基本操作

1、查看当前数据库中的所有表

2、创建表

创建表的命令:create table 数据库表名字 (字段 类型 约束 [字段 类型 约束]),中括号中的可以省略。

约束:

  • 主键 primary key : 物理上存储的顺序
  • 非空 not null : 此字段不允许填写空值
  • 唯一unique: 此字段的值不允许重复
  • 默认default: 当不填写此值时,会使用默认值。如果填写时,以填写的值为准
  • 外键foreign key : 对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存
  • 在,如果存在则写成功,如果不存在则写失败。 虽然外键约束可以保证数据的有效性,但是在进行
  • 数据的crud(增加,修改,删除,查询)时,都会降低数据库的性能。
  • auto_increment 表示自动增长

创建表

 再创建一个students表

3、查看表结构

查看表结构也就是查看各个字段的信息。

4、查看创建表的语句

5、向表中插入,更新,删除数据

插入:

更新:

删除:

 删除指定行:

删除所有行:

 

6、查看表中数据

查看所有数据:

 也可以查看指定数据(把*换成想查找的具体字段就行):

7、修改表名字

8、修改表字段信息

添加字段:alter table 表名 add 列名 类型;

 重新命名字段:alter table 表名 change 原字段名 新字段名 类型及约束;

修改字段:

 删除字段:alter 表名 drop 列名 

修改表的存储引擎:

常见引擎:MyISAM,InnoDB

查看之前的引擎:

 修改之后:

9、删除表

三、mysql查询操作

1、基本查询

查询所有字段:

查询指定字段:

使用as给字段起名:

消除重复行:

2、条件

比较运算:大于,小于,大于等于,小于等于,相等,不相等;逻辑运算

查询年龄大于18岁的学生信息

 查询年龄在大于21小于23的

 查询18岁以上的男性

 查询十八岁以上的身高大于180的同学

 查询没有超过23岁的男性

 查询没有超过十八岁的女性

模糊查询

模糊查询就是通一小部分信息查询对应的个体,如图:

查询姓名中以“小”开始的名字

查询姓名中含有“小”的所有名字

 

 查询有两个字的名字

查询至少有两个字的名字

范围查询

查询年龄为18,20,24的学生信息

查询年龄不是18,20,24

查询年龄在18到24之间的所有学生所有信息

查询年龄不在18到24岁之间姓名,年龄信息

查询学生学号为空的学生

3、排序

查询年龄在18岁以上的学生,年龄从小到大

查询年龄在18岁以上的学生,年龄从大到小

查询年龄在18到24岁之间的学生,按照年龄从小到大,身高从高到底排序

4、聚合函数

count()总数,max()最大值,min()最小值,sum()求和,avg()平均值,round()四舍五入

新表信息:

查询男生有多少人

查询最大年龄

查询最小年龄

计算所有人的年龄总和

计算平均年龄

计算平均年龄,设置平均年龄的小数位数

5、分组

新表信息:

group by分组

按照性别分组

计算男生和女生的人数

查看性别分组中,年龄最大的

查看性别分组中,每个组的人名

6、连接查询

内连接查询时比较常见的连接查询,可以查询两张及两张以上的数据表信息

假设一个学生的姓名、年龄、性别信息在第一张表中,家庭住址、学号信息在另一张表中,现在需要这个学生的全部信息,我们就需要连接查询

6.1、内连接查询

  • 定义:从一张表中取出一条记录,去另一张表中匹配,当某个条件在这两张表中相同时就会保留下来。
  • 查询条件:当两张表中存在相同意义的字段的时候,就可以用过该查询方式来连接查询,当该字段的值相同时就可以查出该记录。

现在有两张表student1,student2,如下:

 

查询两张表能对应上得全部信息

查询方式一:

 查询方式2:

6.2、外连接查询

对于内连接来说,我们只会保留符合连接条件的信息,而对于那些不符合连接条件的信息,我们不会保留,有时我们可能还需要这些信息,那么外连接就是解决这个问题的。外连接不仅仅会保留符合连接条件的信息,对于那些不符合连接条件的列,将会被填上NULL值,再返回到结果中。外连接中参与连接的表有主从之分,主表的每行数据去匹配从表的数据列。外连接分为左外部连接和右外部连接两种。

6.2.1、左连接查询

left join:以主表所在的方向区分外部连接,主表在左边,称为左外部连接;左表不管能不能匹配上连接条件,最终都会保留,只是右表不能匹配的字段都置为NULL;

6.2.2、右连接查询

right join:以主表所在的方向区分外部连接,主表在右边,称为右外部连接;右表不管能不能匹配上条件,最终都会保留,只是左表不能匹配的字段都置NULL(这里右表的所有结果都能匹配上左表,所以这里没有NULL值)。

7、自关联

但一个表与其自身进行连接时,称为表的自身连接

查询比id号为1的同学身高高的同学信息;

8、子查询和联合查询

下面这篇文章介绍的很详细

https://blog.csdn.net/weixin_39411321/article/details/90602030?spm=1001.2014.3001.5502

Sql 库和表的基本操作基本数据类型

一、数据库的基本操作

  基本操作:

  1、查看当前数据库:show databases;

  2、进入到指定的数据库:use [数据库名],

  数据库的增删改查:

  1、创建数据库:create database [数据库名]

  2、删除数据库:drop database [数据库名]

  3、修改数据库的编码:alter database [数据库名] charset   gbk;

  4、查看当前数据库:select database();

    show create database [数据库名];

 

二、表的基本操作

  基本操作:

  1、查看当前数据库里的表:show tables;

  表的增删改查

  1、创建表:

    create table [表名]  (字段+约束)

  2、删除表:

    drop table [表名],

  3、修改表:

    update db1.t1 set name=\'Andey\' where id=2;

  4、查询表

    查询所有select * from [表名]

    根据条件查询:where 条件

    查询字段:select id,name.......

  5、复制表

    create table t2 select * from t1  ( 既复制表结构也复制表内容 );

    create table t2 select * from t1 where 1>2; (只复制表结构)  或:create table t2 like db1.t1;

 

三、表的存储引擎

  create table t1 ( id int ) engine = innodb;(默认引擎)

  create table t2 (id int )  engine = myisam;

  create table t3(id int)engine=memory;(做缓存,退出后表的数据消失)
  create table t4(id int)engine=blackhole;(无论往表里怎么插数据,都为空)

 

四、数据的基本类型:

  1、整型(默认使用就行)

  包括tinyint 、smallint 、int 、bigint

  有符号:

  无符号:

   2、float单精度类型:

      float(m,d)m表示小数点前后位的个数,d 表示小数点后的个数

    double双精度类型:

      double(m,d)相同

    float、double两者表示的范围不一样随着小数点后的位数增多,表示的数值越来越不准确

    decimal 精确表示小数,随着小数点后的位数增多,数值一直精准

  3、日期类型

    year:表示年份如1998,2000

    date:YYYY—MM—DD用now()表示年 月 日

    time:HH:MM:SS 用now()表示 时 分 秒

    datetime:YYYY—MM—DD , HH:MM:SS  Now() 年 月 日,时 分 秒

   4、char()和varchar()

    查询: select @@sql_mode;

      https://www.cnblogs.com/majj/p/9167178.html

    在使用char_length()查询长度的时候char 和varchar()

    如:select x,length(x),y,length(y) from t1;

              char()会将字符里的空格删除,显示非空的字符长度(可以通过修改sql_mode修改char的显示)

      varchar()会将字符完全显示出来 包括空格

 

  5、枚举和集合类型

    enum(\'x1 \' , \' x2\' ,\' x3 \'......)相当于单选

    set(\'b1 \' , \'b2 \' ,  \' b3 \' , \' b4 \' ......)可以选中多个

     create table usetable(
          -> id int,
          -> name varchar(20),
          -> sex enum(\'male\',\'female\',\'other\'),
          -> fav set(\'football\',\'basketball\')
          -> );

      insert into usetable values
         -> (1,\'alex\',\'male\',\'football,basketball\');

 

五、完整性约束:  

  PRIMARY KEY (PK)    #标识该字段为该表的主键,可以唯一的标识记录
  FOREIGN KEY (FK)    #标识该字段为该表的外键
  NOT NULL    #标识该字段不能为空
  UNIQUE KEY (UK)    #标识该字段的值是唯一的
  AUTO_INCREMENT    #标识该字段的值自动增长(整数类型,而且为主键)
  DEFAULT    #为该字段设置默认值
  UNSIGNED #无符号
  ZEROFILL #使用0填充

  1、not null 与 default 约束同一个字段

   当未添加数据时 会自动设置为 默认值

      create table student2(
        -> id int not null,
        -> name varchar(50) not null,
        -> age int(3) unsigned not null default 18,
      );

   2 、unique 分单列唯一、 多列唯一、组合唯一(联合唯一)

    单列唯一:在创建表时 为某一个字段设置unique 约束

    多列唯一:在创建表时 为对多个字段设置unique约束

    组合唯一

    create table services(
          -> id int,
          -> ip char(15),
          -> port int,
          -> unique(id),
          -> unique(ip,port)
         -> );


    组合唯一:插入两行记录 只要有一行不相同,就符合组合唯一

    insert into services values
        -> (1,\'192,168,11,23\',80),
        -> (2,\'192,168,11,23\',81),
        -> (3,\'192,168,11,25\',80);

   3、primary key:主键,一个表里唯一标示的字段

    not null + unique ==primary key

 

以上是关于数据库的基本操作的主要内容,如果未能解决你的问题,请参考以下文章

数据库的基本操作

SQL server学习笔记数据库的基本知识基本操作(分离脱机收缩备份还原附加)和基本语法

MySQL数据库数据表的基本操作

2关于数据库的基本操作

MySQL基本操作和基于MySQL基本操作的综合实例项目

数据库数据表的基本操作及查询数据