MySQL数据库介绍

1.数据的存储形式

  内存/文件/第三方服务器/数据库服务器

2.什么是数据库

  数据库是按照一定的形式来组织,存储数据,目的是为了对数据操作——增删改查

 (1)数据库发展历史

  网状数据库->层次型数据库->关系型数据库->非关系型数据库

 (2)关系型数据库逻辑结构

Server->Database->Table-> Row->Column

服务器 -> 数据库-> 数据表 ->行 -> 列

 

3.MySQL数据库

 Oracle:  MySQL

 Martin:  MariaDB

 XAMPP

服务器套装,包含有多款服务器软件mysql、apache

https://www.apachefriends.org/download.html

 (1)MySQL部署结构

  服务器端:负责存储/维护数据 —— 银行服务器机房

    C:/xampp/mysql/bin/mysqld.exe   启动文件

     确保端口3306不被占用

  客户端:负责连接数据库,并发起增删改查——ATM机

    C:/xampp/mysql/bin/mysql.exe  客户端工具

 (2)使用客户端连接服务器端(结尾不能使用分号)

   mysql.exe  -h127.0.0.1  -P3306  -uroot  -p

    -h  host   服务器的域名/IP地址

    -P  port   端口号

    -u  user   用户名

    -p  password  密码

   mysql  -uroot   简写形式

4.mysql常用管理命令(必须以分号结尾)

  show databases;  显示服务器上当前所有的数据库     

  quit;  退出连接

  use  数据库名;  进入指定的数据库

  show  tables;  显示当前数据库中所有的数据表

  desc  表名称;  描述表中有哪些列(表头)

5.SQL命令

 SQL: Stuctured Query Language,结构化查询语言,用于操作关系型数据库服务器

 SQL命令的两种执行方式

  (1)交互模式:客户端输入一行,点击回车,服务器端执行一行,适用于临时性的查看数据。

  (2)脚本模式: 把要执行的多行SQL命令写在一个脚本文件中,一次性的提交给服务器执行,适用于批量的操作数据。

    mysql  -uroot < C:/xampp/…../01.sql   回车

SQL语法规范

 (1)一条SQL语句可以跨越多行,以英文的分号结尾。

 (2)假如某一条语句出现语法错误,则此条语句以及后边所有的语句不会再执行。

 (3)SQL命令不区分大小写,习惯上数据库关键字用大写,非关键字用小写。

 (4)SQL命令可以使用单行注释(#...)和多行注释(/*…*/),注释的内容不会被服务器所执行

 常用的SQL命令

 (1)丢弃指定的数据库,如果存在的话

  DROP  DATABASE  IF  EXISTS  jd;

 (2)创建新的数据库

  CREATE  DATABASE  jd;

 (3)进入创建的数据库

  USE  jd;

 (4)创建保存数据的表

  CREATE  TABLE  student(

    sid  INT,

    name  VARCHAR(8),

    sex  VARCHAR(1),

    score  INT

  );

 (5)插入数据

  INSERT  INTO  student  

  VALUES(‘1’,’tom’,’M’,’87’);

 (6)查询数据

  SELECT  *  FROM  student;

6.常用SQL命令

  (1)更改数据   

  UPDATE  user  SET

upwd=’888888’,phone=’19912345678’

WHERE uid=’1’;

  (2)删除数据

  DELETE  FROM  user  WHERE  uid=’2’;

标准SQL语句分类

DDL: Data Define Language 定义数据结构

 CREATE/DROP/ALTER

DML: Data Manipulate Language 操作数据

 INSERT/UPDATE/DELETE

DQL: Data Query Language 查询数据

 SELECT

DCL: Data Control Language 控制用户权限

 GRANT(授权)/REVOKE(收权)

7.计算机存储字符

 (1)如何存储英文字符

  ASCII: 总共有128个,对所有的英文字母和符号进行了编码。

  Latin-1: 总共有256个,兼容ASCII码,同时对欧洲符号进行了编码。MySQL默认使用这种编码。

 (2)如何存储中文字符

  GB2312: 对常用的6千多汉字进行了编码,兼容ASCII码

  GBK: 对2万多汉字进行了编码,同时兼容GB2312

  Unicode: 对世界上主流国家的常用语言进行了编码,兼容ASCII码,不兼容GB2312、GBK。具体分为utf-8,utf-16,utf-32存储方案。

 (3)解决MySQL存储中文乱码

  SQL脚本另存为的编码

  客户端连接服务器端的编码(SET NAMES UTF8)

  服务器端创建数据库使用的编码(CHARSET=UTF8)

8.mysql中的列类型

 创建数据表的时候,指定的列可以存储的数据类型

   CREATE  TABLE  t1( nid  列类型 );

 (1)数值型  引号可加可不加

   TINYINT  微整型,占1个字节,范围-128~127

   SMALLINT  小整型,占2个字节,范围-32768~32767

   INT  整型,占4个字节,范围

-2147483648~2147483647

   BIGINT  大整型,占8个字节,范围很大

   FLOAT  单精度浮点型,占4个字节,最多3.4E38,可能产生计算误差。

   DOUBLE  双精度浮点型,占8个字节,范围比BIGINT大的多,可能产生计算误差。

   DECIMAL(M,D)  定点小数,不会产生计算误差,M代表总的有效位数(不包含小数点),D代表小数点后的有效位数

   BOOL  布尔型,只有两个值TRUE、FALSE,真正存储的时候,列类型会变成TINYINT,TRUE和FALSE变成了1和0,使用的时候也可以直接插入1和0。常用于只有两个值的数据。 例如性别、是否在线、是否注册、是否为会员…

注意事项:TRUE和FALSE不能加引号。

 (2)日期时间型 必须加引号

   DATE  日期型  ‘2019-12-31’

   TIME  时间型   ’14:53:30’

   DATETIME  日期时间型   ‘2019-12-31 14:53:30’

 (3)字符串类型 必须加引号

   VARCHAR(M)  变长字符串,不会产生空间浪费,操作速度相同比较慢,M最大值是65535

   CHAR(M)  定长字符串,可能存在空间浪费,操作速度比较快,M最大值是255;用于存储固定长度的数据,例如身份证号码、手机号码等。

   TEXT(M)  大型变长字符串,M最多2G

  

CHAR(5)

VARCHAR(5)

a

a\0\0\0\0

a\0

ab

ab\0\0\0

ab\0

一\0\0\0\0

一\0

一二

一二\0\0\0

一二\0

   TB  GB  MB  KB  Byte  Bit

    1Byte=8Bit(位)

  CREATE  TABLE  t1(

    id  INT,

  age  TINYINT,

  commentCount  INT,

  salary DECIMAL(8,2),   #999999.99

  phone  CHAR(11),

  article  VARCHAR(5000),

  sex  BOOL,

  ctime  DATETIME

);

9.列约束

 Mysql在插入数据的时候,进行特定的验证;只有满足条件才允许插入,否则被认为是非法插入。

 例如:一个人的性别只能是男或者女,一个人的成绩0~100

 CREATE  TABLE  t1( eid 列类型 列约束 );

 (1)主键约束——PRIMARY KEY

  声明了主键约束的列上值不能出现重复,一个表中只能有一个主键,通常加在编号列,表中查询的记录会按照编号从小到大排序,加快查找速度。

  注意事项:声明了主键约束后就不允许在插入NULL值。

NULL 表示空,在插入数据时,无法确定要保存的数据。例如:无法确定员工的生日,工资都可以使用NULL

相关推荐