MySQL数据库基础知识

Posted

tags:

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

mysql数据库基础知识

1.数据库系统(database system)

    数据库系统是计算机系统中一种专门管理数组资源的系统,数据库存储的是一组或多组经过处理后的数据,管理这个数据库的软件成为数据库管理系统。
    组成:
        数据库(database)   存数据的
        数据库管理系统(database managment system)  管理数据库
?
MySQL数据库作用:
?
?   1) 持久保存
?
?   2) 方便查询并提取满足条件的数据, 数据访问速度快
?
?   3) 处理并发访问
?
?   4) 权限管理

2.数据库系统分类:

    关系型数据库 : MySQL、SQLServer、oracle、db2、informix、sysbase
    非关系型数据库:redis、 MogoDB

3.开发中常用的数据库

    IBM:DB2
    甲骨文:Oracle  MySQL
    Microsoft:SQL Server Access等等

4.数据库在动态网站中有什么地位?

    1、动态网站是对数据进行操作。浏览网站的时候会发现网页内容变化,页面的布局主体没有变化。
    2、WEB系统的开发基本都离不开数据库,所谓的动态网站是基于数据库开发的系统,最主要的是围绕数据库来写程序(业务逻辑)。

5.MySQL和mysql有什么区别:

    MySQL指的是完整的数据库系统。
    mysql指的是一个叫mysql的客户端程序。

6.MySQL数据库的结构:

    数据库->数据表->字段(多个字段组成了一行数据)
    数据库:存放信息的文件夹
    数据库里面有一个一个的excel文件(数据表)
?
    数据表里面的数据是有数据行和数据列构成
?
    所看到的一行一行的数据是由一个或者多个字段组成的

7.SQL:为了和MySQL进行交互,需要使用一种叫SQL(结构化查询语言)的语言来进行交互。SQL是当今的标准的数据库语言,很多数据库都使用SQL作为交互语言:SQL Server、Oracle

    数据定义语言(DDL):定义和管理数据对象,比如建立数据库、数据表
    数据操作语言(DML):用于操作数据库对象中包含的数据。
    数据库查询语言(DQL):用于查询数据库对象中包含的数据,能够对表进行一个查询。
    数据控制语言(DCL):管理数据库的语言

8.连接数据库的步骤

    1、连接MySQL服务器
    2、选择数据库
    3、对数据表进行增删改查。
    4、关闭数据库

9.连接数据库

    mysql 
    -u 用户名 root 
    -p 密码
    -h 主机名
    -P 端口号 3306
    
数据库语法的特点:
        mysql>
        1、每个SQL命令都要使用分号来完成。
        2、->表示MySQL需要你继续输入命令。
        3、如果说有一条比较长的命令我就可以拆分成多行来执行。
        4、‘>表示等待下一行,等待以单引号开始的字符串的结束
        5、">表示等待下一行,等待以双引号开始的字符串的结束。
        6、查询的命令不区分大小写,通常使用大写字母来写出SQL关键字和函数名,用小写字母写出数据库、数据表和数据列的名字

10.退出MySQL

    quit
    exit
    \q
?
常见操作
        \c 取消命令输入
        \g 代替结束符;
        \s 查看服务器端信息
        \h 查看帮助

11.创建数据库

格式:
    create database if not exists 数据库名 default charset utf8;
?
    注意:
          1、数据库是唯一的
          2、if not exists先判断是否存在这个数据库,存在不创建,不存在就创建。
          3、创建数据库,并设定编码集为utf8

12.显示当前数据库服务器下所有的数据库名

show databases;
    use 数据库名    选择数据库
    注意:
        windows下面数据库名是不区分大小写的,在Linux下面严格区分。

13.删除数据库

drop database 数据库名
查看已经选择的数据库
   select database(); 
?
查看当前的数据库的版本号
    select version();

14.数据表的操作

show tables 查看数据库中的数据表。
创建数据表
    格式:
        create table 表名(列的一些信息);
?
    例子:
        create table t1(id int(12), name varchar(100));
?
        create table `test t1`(id int(10), name varchar(50));
    
   desc 表名 查看表的结构.
?
   show create table 表名 查看建表的语句
?
         \G 格式化输出(文本式,竖立显示)
?
   drop table 数据表名
?
   drop table [if exists] 数据表名  尝试性的删除表。

15.记录操作 增、删、改、查

(1)插入数据
    格式: 
        insert into 表名(字段1,字段2,字段3) values(值1,值2,值3);
?
insert into 表名(字段1,字段2,字段3) values(a值1,a值2,a值3);
?
(2)查询表数据
    格式: 
        select * from 表名;
?
select 字段1,字段2,字段3 from 表名;
?
select * from 表名 where 字段=某个值;
?
(3)修改表数据 
    格式:
        update 表名 set 字段=某个值 where 条件;
?
update 表名 set 字段1=值1,字段2=值2 where 条件;
?
update 表名 set 字段=字段+值 where 条件;
?
(4)删除数据
    格式: 
        delete from 表名 where 字段=某个值;
?
delete from 表名; (慎重使用)
?
delete from 表名 where 字段 = 值;
清空表数据
        truncate table 表名;

16.修改用户密码

    在退出mysql服务的情况下 输入
    1、mysqladmin -u 用户名 -p password 新密码
    输入旧密码:
?
    2、登录到mysql的时候使用set password for ‘用户名‘@‘登录主机‘=password(‘新密码‘);

 

17.修改表的字段信息

修改表的字符集
    alter table 表名 charset utf8
修改字段的类型
    alter table 表名 modify 字段名 字段类型
修改字段的名字并同时修改字段类型
    alter table 表名 change 旧字段名 新字段名 字段类型
修改字段的字符集
    alter table 表名 modify 字段名 类型 charset utf8
添加新字段
    alter table 表名 add 字段名 类型
删除字段
    alter table 表名 drop 字段名
修改表名 
    alter table 旧表名 rename as 新表名

18.删除默认匿名的账户

为什么我直接输入mysql也能进入数据库中。是匿名用户,MySQL默认创建的。他有test和information_schema这两个库的权限。我们可以把他删掉
    删除匿名用户:drop user ‘‘@‘localhost‘;

19.MySQL数据库的数据类型:

MySQL的数据类型分为四大类:数值类型、字串类型、日期类型、NULL。
1 数值类型:
    *tinyint(1字节) 0~255  -128~127
    smallint(2字节)
    mediumint(3字节)
    *int(4字节)
    bigint(8字节)
    *float(4字节)   float(6,2)  float(m,d)
    *double(8字节)    double (m,d)
    decimal(自定义)字串形数值  decimal(m,d)  
                            m精度    d标度
    
 2 字串类型
    普通字串
    *char  定长字串      char(8)  
    *varchar 可变字串 varchar(8)
    
    二进制类型
    tinyblob
    blob
    mediumblob
    longblob
    
    文本类型
    tinytext
    *text      常用于<textarea></textarea>
    mediumtext
    longtext
    
    *enum枚举
    set集合
    
3 时间和日期类型:
    date  年月日
    time  时分秒
    datetime 年月日时分秒
    timestamp 时间戳
    year 年
?
4 NULL值
    NULL意味着“没有值”或“未知值”
    可以测试某个值是否为NULL
    不能对NULL值进行算术计算
    对NULL值进行算术运算,其结果还是NULL
    0或NULL都意味着假,其余值都意味着真
?
MySQL的运算符:
    算术运算符:+ - * / % 
    比较运算符:= > < >= <= <> != 
    数据库特有的比较:in,not in, is null,is not null,like, between and 
    逻辑运算符:and or not
?
    like: 支持特殊符号%和_ ; 其中 %表示任意数量的任意字符,_表示任意一位字符。
?
表的字段约束:
    unsigned    无符号(正数)
    zerofill    前导零填充
    default    默认值
    not null   非空
    auto_increment  自增 在产生一个唯一的标识或顺序值的时候,可以利用这个约束条件。这个约束条件只能用于整数类型,值一般从1开始。每行加1,插入一个null到一个auto_increment列时,MySQL将插入一个比出现过的最大值+1的值。一个表中只能有一个auto_increment列,并且必须定义为primary key或unique才能够使用
?
    primary key  主键索引 (非null并不重复)
    unique   唯一索引   (可以为null但不重复)
    index    常规索引

19.建表语句格式:

 create table 表名(
   字段名 类型 [字段约束],
   字段名 类型 [字段约束],
   字段名 类型 [字段约束]
   ...
  );
?
实例:
    mysql> create table stu(
    -> id int unsigned not null auto_increment primary key,
    -> name varchar(8) not null unique,
    -> age tinyint unsigned,
    -> sex enum(‘m‘,‘w‘) not null default ‘m‘,
    -> classid char(6)
    -> );

20.插入数据

1 插入指定字段
    insert into t1(字段1,字段2,字段3...) values (‘值1‘,‘值2‘,‘值3‘,....);
2 插入所有的字段
    insert into t1 values (‘值1‘,‘值2‘,‘值3‘,....);
3 插入多条数据
    insert into t1(字段1,字段2,字段3...) values (‘值1‘,‘值2‘),(‘值1‘,‘值2‘)....;
4 插入结果
    insert into t1(字段1,字段2,字段3...) select 字段1,字段2,字段3... from t1;
    insert into t1() select * from t1;
5 插入单条数据
    insert into t1 set 字段1=值1,字段2=值2....;

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

android小知识点代码片段

从mysql的片段中加载ListView

[vscode]--HTML代码片段(基础版,reactvuejquery)

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

使用 json rereiver php mysql 在片段中填充列表视图

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段