一.数据库的基本知识
数据库的分类:
1.关系型数据库:基于关系模型的数据结构(二维表),通常存储在磁盘。
大型数据库:Oracle,DB2.
中型数据库:MYSQL ,SQLServer.
小型数据库:Sybase,Access.
2.非关系型数据库:没有具体数据结构模型(键值对),通常存储在内存,不能永久存储。
常见的产品:MongoDB,redis,memcached.
SQL概念
sql;结构化的查询语言,是一种针对关系型数据库特殊标准化的编程语言。
能够实现用户数据查询和程序设计。
mysql 是一款C/S结构软件 ,因此需要客户端来访问服务端
mysqlld.exe :服务端
mysql.exe: 客户端。
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;
七 . 字段类型
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)时间日期类型:存储日期格式数据。