MySq的基础知识和基本的操作知识

一,理论知识

   1.数据库原理:一个数据库可以保存多个不同的数据表,每个数据表之间因为共同拥有一个相同的字段而可以彼此相关,协同作业,这就是关系型数据库。

   2.数据库系统的组成部分:

      1.数据库:用于存储数据的地方

      2.数据库管理系统:用于管理数据库的软件。

     3.数据库应用服务:为了提高数据库系统的处理能力所使用的管理数据库的软件补充。

   3.sql语言

     1.数据定义语言(DDL):DROP,CREATE,ALTER等语句

     2.数据操作语言(DML):INSTER,UPDATE,DELETE.

     3.数据查询语言(DQL):SELECT

     4.数据控制语言(DCL):GRANT,REVOKE,COMMIT,ROLLBACK

   4.数据库访问技术

     1.ODBC(开放数据库互连):技术为访问不同的SQL数据库提供了一个共同的接口。ODBC使用SQL作为访问数据的标准,提供最大限度的互操作性。访问不同的数据库管理系统。最大的有点就是能够统一的方式处理所有的数据库。

   5.关系数据库结构

      1.关系(relation):一个二维表就是一个关系.

      2.元组(tuple):二位表中的一行就是一个元组。

      3.属性(attribute):二位表中的一列就是一个属性,每个属性起的名字就是属性名。

      4.域(domain):属性的取值范围。

   6.MYSQL体系结构

     1.mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成。

     2.体系含义:

         1).Connectors:是不同语言中的SQL交互。

         2).enterprise management services & uitlities :系统管理和控制工具。

         3).Connection pool:连接池。管理缓冲用户连接,线程处理等需要缓存的需求。

         4).sql interface:Sql 接口:j接受sql 命令,返回需要查询的结果。

         5).parser:解析器。解析器是由lex和yacc实现,是一个脚本。sql命令传递到解析器的时候会被解析器验证和解析。主要分解成数据结构,把这个结构传递给后续操作。解析中遇见错误,说明sql语句不合理。

         6).optimizer:查询优化器。sql查询之前会使用查询优化器进行优化。它使用 "选取-投影-连接" 策略进行优化。

         7).caches & buffers:查询缓存。如果查询缓存有命中结构,就直接去查询缓存中取数据。这个机制是由一系列小缓存组成。比如:表缓存,记录缓存等等。

         8).pluggable storage engines:存储引擎。是MySQL中具体与文件打交道的子系统。

     3.sql执行顺序 
         (1)from 

         (2) on 
         (3) join 
         (4) where 
         (5)group by(开始使用select中的别名,后面的语句中都可以使用)
         (6) avg,sum.... 
         (7)having 
         (8) select 
         (9) distinct 
        (10) order by 

    4.数据库基本操作

     1.创建数据库:

CREATE DATABASE  database_name;

     2.查看数据库:

SHOW CREATE DATABASE database_name;

     3.选择数据库:

USE database_name;

     4.删除数据表:

DROP  DATABASE database_name;

     5.查看系统支持引擎类型:

SHOW ENGINES;

   5.数据库存储器引擎

       1.innodb,myisam,memory,

       2.存储引擎比较

  6.数据表基本操作

      1.创建数据表:

CREATE TABLE table_name(

 字段名  数据类型  [列级别约束条件]  [默认值],
 字段名  数据类型  [列级别约束条件]  [默认值],
 .
 .
 .
[表级别约束条件]

);

    2.主键约束:

       1.单字段之间:

           1).定义列的同时指定主键

字段名  数据类型  PRIMAPY KEY[默认值]

           2).定义完所有列指定之间

[CONSTRAINT<约束名>] PRIMARY KEY [字段名]

        2.多字段主键:主键由多个字段联合组成

PRIMARY KEY[字段1,字段2, ... ,字段n]

       2.外键约束:

[CONSTRAINT<外键名>] FOREIGN KEY 字段名1 [,字段名2, ...]
REFERENCES<主键名> 主键列1 [,主键列2, ...]

      3.非空约束

字段名   数据类型  NOT NULL 

       4.唯一性约束

字段名  数据类型  UNIQUE 

       5.默认约束

字段名  数据类型  DEFAULT  默认值

        6.自增属性

字段名 数据类型 AUTO_INCREMENT 

    7.查看数据表结构

          1.查看数据表基本结构

//第一种方式
 DESCRIBE table_name;

//第二种
 DESC table_name;

          2.查看数据表详细结构

SHOW CREATE TABLE table_name\G

         3.修改数据表

             1.修改表名

ALTER TABLE <table_name>RENAME <new_table_name>;

             2.修改字段属性类型

ALTER TABLE <table_name>MODIFY<字段名> <数据类型>;

           3.修改字段名

ALTER TABLE table_name CHANGE <旧字段> <新字段> <字段类型>

          4.添加字段

ALTER TABLE table_name ADD <新字段> <数据类型>
[约束条件][FIRST|AFTER 已存在字段名]

          5.删除字段

ALTER TABLE table_name DROP <字段名>

          6.修改字段排序

ALTER TABLE table_name MODIFY <字段1> <数据类型> FLRST|AFTER <字段2>;

         7.更改表的存储引擎

ALTER TABLE table_name ENGINE = <更改后的存储引擎名>;

          8.删除表的外键约束

ALTER TABLE table_name DROP FOREIGN KEY <外键约束名>;

          9.删除没有关联的表

DROP TABLE [IF EXISTS] 表1,表2, ... 表n;

     4.MYSQL数据类型

         1.整数类型:

TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT

 

数据类型说明存储需求有符号的取值范围无符号的取值范围
TINYINT很小的整数1个字节-128 ~ 1270 ~ 255
SMALLINT小的整数2个字节-32768 ~ 327670 ~ 65535
MEDIUMINT中等大小的整数3个字节-8388608 ~ 83886070 ~ 16777215
INT普通大小的整数4个字节-2147483648 ~ 21474836470 ~ 4294967295
BIGINT大整数8个字节-9223372036854775808 ~ 92233720368547758070 ~ 18446744073709551615

       2.浮点数类型

FLOAT,DOUBLE

 

数据类型说明存储需求
FLOAT单精度浮点数4个字节
DOUBLE双精度浮点数8个字节


       3.定点数类型

DECIMAL

       

类型名称说明存储需求
DECIMAL压缩的“严格”定点数M+2个字节

      4.时间/日期类型:

YEAR,TIME,DATE,DATETIME,TIMESTAMP;

     

类型名称日期格式日期范围存储需求
YEARYYYY1901 ~ 21551个字节
TIMEHH:MM:SS-838:59:59 ~ 838:59:593个字节
DATEYYYY-MM-DD1000-01-01 ~ 9999-12-313个字节
DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~ 9999-12-31 23:59:598个字节
TIMESTAMPYYYY-MM-DD HH:MM:SS1970-01-01 00:00:00 ~ 2038-01-19 03:14:014个字节

        5.字符串类型:

CHAR,VARCHAR,BINARY,VARBINARY,BLOB,TEXT,ENUM,SET;

     

类型名称说明存储需求
CHAR固定长度非二进制字符串M个字节,1≤M≤255
VARCHAR变长非二进制字符串L+1个字节,在此L≤M和1≤M≤255
TINYTEXT非常小的非二进制字符串L+1个字节,在此L<2的八次方
TEXT小的非二进制字符串L+2个字节,在此L<2的十六次方
MEDIUMTEXT中等大小的非二进制字符串L+3个字节,在此L<2的二十四次方
LONGTEXT大的非二进制字符串L+4个字节,在此L<2的三十二次方
ENUM枚举类型,只能有一个枚举字符串值1个或者2个字节,取决于枚举值的树木,最大为65535
SET一个集合,字符串对象可以有零个或者多个SET成员1,2,3,4或8个字节,取决于集合成员的数量,最大为64个成员
CHAR与VARCHAR的存储差别
插入值CHAR(5)存储需求VARCHAR(5)存储需求
'''         '5个字节''1个字节
'ab''ab     '5个字节'ab'3个字节
'abcd''abcd '5个字节'abcd'5个字节
'abcde''abcde'5个字节'abcde'6个字节
'abcdefg''abcde'5个字节'abcde'6个字节

      6.二进制类型:

BIT,BINARY,VARBINARY,TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB;

5.运算符

     1.算数运算符

运算符作用
+加法运算
-减法运算
*乘法运算
/除法运算,返回商
%求余运算,返回余数

    2.比较运算符

运算符作用
=等于
<=>安全等于(可以比较NULL)
<> (!=)不等于
<=小于等于
>=大于等于
<小于
>大于
IS NILL判断一个值是否为NULL
IS NOT NULL判断一个值是否不为NULL
LEAST当有两个或者多个参数时返回最小值
GREATEST当有两个或者多个参数时返回最大值
BETWEEN AND判断一个值是否落在两个值之间
IS NULL与IS NULL 相同
IN判断一个值是IN列表中的任意一值
NOT IN判断一个值不是IN列表中的任意一值
LIKE通配符匹配
REGEXP正则表达式匹配

      3.位运算符

运算符作用
|按位或
&按位与
按位异或
<<按位左移
>>按位右移
~按位取反,反转所以二进制位

    4运算符优先级(按优先级由低到高排序)

运算符
=(赋值运算),:=
||,OR
XOR
&&,AND
NOT
BETWEEN,CASE,WHEN,THEN,ELSE
=(比较运算),<=>,>=,>,<=,<,<>,!=,IS.LIKE,REGEXP,IN
|
&
<<,>>
-,+
*,/,&
-(负号),~(按位取反)
!

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

韩若轩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值