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接口,解析器,优化器,缓存,存储引擎组成。

MySq的基础知识和基本的操作知识_第1张图片

     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.存储引擎比较

MySq的基础知识和基本的操作知识_第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 RENAME ;

             2.修改字段属性类型

ALTER TABLE 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 ~ 127 0 ~ 255
SMALLINT 小的整数 2个字节 -32768 ~ 32767 0 ~ 65535
MEDIUMINT 中等大小的整数 3个字节 -8388608 ~ 8388607 0 ~ 16777215
INT 普通大小的整数 4个字节 -2147483648 ~ 2147483647 0 ~ 4294967295
BIGINT 大整数 8个字节 -9223372036854775808 ~ 9223372036854775807 0 ~ 18446744073709551615

       2.浮点数类型

FLOAT,DOUBLE

 

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


       3.定点数类型

DECIMAL

       

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

      4.时间/日期类型:

YEAR,TIME,DATE,DATETIME,TIMESTAMP;

     

类型名称 日期格式 日期范围 存储需求
YEAR YYYY 1901 ~ 2155 1个字节
TIME HH:MM:SS -838:59:59 ~ 838:59:59 3个字节
DATE YYYY-MM-DD 1000-01-01 ~ 9999-12-31 3个字节
DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8个字节
TIMESTAMP YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:00 ~ 2038-01-19 03:14:01 4个字节

        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
|
&
<<,>>
-,+
*,/,&
-(负号),~(按位取反)
!

 

 

 

 

 

你可能感兴趣的:(MySql)