一.数据库的基本知识

数据库的分类:

1.关系型数据库:基于关系模型的数据结构(二维表),通常存储在磁盘。

大型数据库:Oracle,DB2.

中型数据库:MYSQL ,SQLServer.

小型数据库:Sybase,Access.

2.非关系型数据库:没有具体数据结构模型(键值对),通常存储在内存,不能永久存储。

常见的产品:MongoDB,redis,memcached.

SQL概念

sql;结构化的查询语言,是一种针对关系型数据库特殊标准化的编程语言。

能够实现用户数据查询和程序设计。

mysql 是一款C/S结构软件 ,因此需要客户端来访问服务端

mysqlld.exe :服务端 

mysql.exe: 客户端。

mysql访问原理:

SPU mysql 数据库SKC sql数据库mysql_数据库

 

 SQL 指令需要结束符,默认是英文的分号:;,\g,\G

\G:主要用于查询数据,立体展示结果。

1、结构创建:create 结构类型 结构名 结构描述;

2. 显示机构:show 结构类型(复数);

show create 结构类型 结构名;

3.数据操作(数据表)

新增数据:insert into 表名 values ....;

查看数据:select * from 表名....;

更新数据:update 表名 set .....;

删除数据:delete from 表名...;

二 .库操作

1.创建数据库: create database 数据库名称 [数据库选项],

create database db_1; //仅创建数据库

create DATABASE db_2 charset utf8mb4 ;;//创建数据库并指定字符集

create DATABASE db_3 charset utf8mb4 COLLATE utf8mb4_general_ci ; //创建一个指定校对集的数据库

数据库的创建时存储数据的基础,数据库的创建是一次性的,创建数据库的语法包含几个部分

关键字 : create database  数据库名称:自定义名字   数据库选项:非必须的规定

字符集:charset/character set字符集,非必须,默认继承DBMS。  校对集:collate 校对集,依赖字符集。

2.显示数据库

数据库的查看是根据用户的权限限定的

查看方式:
查看全部数据库:show database;

查看数据库创建指令:show create database 数据库名称,如show CREATE DATABASE db_3;

3.使用数据库:use  数据库名,如use db_1;

4.修改数据库:alter database 数据库名称 库选项。

修改字符集: alter database db_1 charset gbk;

数据库修改一般情况下不会发生,数据库的修改无法修改数据库名称。

5.删除数据库(删除数据库要慎重):drop databse 数据库名称; 如drop dababase db_3;

三. 表操作

1.创建数据表:create table 数据库.表名(字段名 字段类型,....)表选项。

如 create table t_3(name varchar(50)) engine Innodb charset utf8mb4;

存储引擎,一般使用默认存储引擎.

InnoDB 默认存储引擎,支持事务与外键,数据统一管理。

如果想创建一个与已有表一样的数据表,create table 表名 like  数据库名称.表名。

如 create table t_next_2 like t_3;

2.显示数据表:数据表的显示与用户的权限有关。

show tables;//显示所有的数据表

show tables from 数据库名。// 指定数据库内表

show tables  like '%like';//显示部分关联数据表--匹配,_匹配单个字符; %表示匹配n个字符。

show create tables 表名 //显示创建数据表的创建指令,注意 显示的结果未必是真实的创建的指令(系统会加工)。

3.查看数据表

desc 表名;

show columns from 表名;

4.更改数据表

修改表名:rename table  表名 to  新表名;

修改表选项:alter table 表名;如 alter table t_1 charset utfe;

5.更改字段

针对表创建好后,里面字段进行增删改。

 5.1 新增字段 add

alter table add 字段名 字段类型;如 alter table t_3 add age int;

5.2 字段位置: 字段位置分为两种

第一个字段:first  ;alter table t_3 add id int first;

某个字段后:after 已经存在的字段名; alter table t_3 add card varchar(18) after name;

5.3 更改字段名 change 

alter table 表名 change 原字段名 新字段名 字段类型 [字段属性] [位置]

alter table t_3 change card sfz varchar(18);

5.4  修改字段 modify:字段修改包含字段类型,属性,位置的修改。

alter table 表名 modify 字段名 字段类型 [字段属性][位置]

alter table t_3 modify sfz char(18) after id;

6 .删除字段 drop :该操作不可逆。

alter table 表名 drop 字段名;如 alter table t_3  drop age;

四 SQL数据操作

1.新增数据:

数据插入有两种方式:

全字段插入: insert into 表名 values(字段列表对应的所有值);

部分字段插入:insert into  表名 (字段列表)values(字段列表的对应值)。

2. 查看数据

select  字段列表 from 表名;

3. 更新数据:更新是针对已有的字段值,而不是全部记录都更新

update 表名 set 字段=新值 ,字段2 = 新值 where [条件筛选];

4. 删除数据:针对的记录,不是具体的某个字段。

delete from 表名 where [条件];

六 . 字符集

不同的字符集占用的空间不一样的,存储的底层也不一样。

不同字符集之间可以进行转换。

常见的字符集:

ASCII:一般英文符号,一个字节存储。

latin1:一个字节存储,ISO-8859-1 的别名 ,能够兼容ASC||。

gb2312,GBK:国标,两字节存储。

Unicode:万国码,

UTF-8 : 针对Unicode的可变长度字符编码(mysql中建议使用utf8mb4)。

七. 校对集概念

校对集是在进行数据比较的时候触发。

校对集的校对方式:

大小写不敏感:_ci;大小写敏感: _cs; 二进制比较(区分大小写): _bin 。

 show charset;

SPU mysql 数据库SKC sql数据库mysql_SPU mysql 数据库SKC_02

七 . 字段类型

1.字段类型作用:强制规范录入数据的格式及有效性。

1)整数类型:只能存储整数(使用unsigned 修饰整数类型,表示无符号)

tinyint :迷你整型,存储数量不超过一个字节的表示范围

smallint:小整型,存储数量不超过二个字节的表示范围

mediumint:中整型,存储数量不超过三个字节的表示范围

int :整型,存储数量不超过四个字节的表示范围

bigint:大整型,存储数量不超过八个字节的表示范围

显示宽度:int(L) 数字+符号

2)小数类型:可以存储有效数值

单精度:float ,使用4字节存储,精确范围为6--7为有效数字。

双精度:double,使用8个字节存储,精确范围14--15有效数字。

浮点数超过精度会自动进行四合五入。

可以使用科学计数法插入数据

定点数:decimal 默认。

整数部分:10位,小数部分为0.

decimal(有效位数,小数位数):整数部分为有效位数 - 小数位数 。有小数位不超过65个。

定点数存储模式不是固定长度,所以数据越大占用存储空间越大。

3)字符串类型:存储字符串数据

4)时间日期类型:存储日期格式数据。