一、数据库介绍
1 什么是数据库
数据库(Database)就是按照数据结构来组织,存储和管理数据的仓库。专业的数据库是专门对数据进行创建,访问,管理,搜索等操作的软件,比起我们自己用文件读写的方式对数据进行管理更加的方便,快速,安全。
2 作用
对数据进行持久化的保存。方便数据的存储和查询,速度快,安全,方便。可以处理并发访问。更加安全的权限管理访问机制。
3 常见的数据库
数据库分为两大类,一类是 关系型数据库,另一类叫 非关系型数据库。关系型数据库: MySQL,Oracle,PostgreSQL,SQLserver 等等。 非关系型数据库:Redis内存数据库,MongoDB文档数据库等等
二、Mysql的基本命令
1.mysql -u root -p;
此为数据库登陆命令。-u后面输入 用户名,-p后面输入password,默认最高权限的用户名为root,密码为空。
2.show databases;
登录进入数据库后可用此命令 查看当前mysql中所有的库。
3.use 库名;
进入所选择的库 进行操作。
4.show tables;
进入所选择的库后 用此命令 可查看该库中所有的表。
5.select 字段 from 表名
此命令为查看表中的数据。
6.create database 库名 default charset=utf8mb4;
创建库命令,其中utf8mb4为完整的utf8字符集,若无mb4则为阉割版。
7.create table 表名( 字段名 类型 字段约束, 字段名 类型 字段约束, 字段名 类型 字段约束, )engine=innodb default charset=utf8mb4;
创建表命令。
三 ,数据操作 增删改查
插入
insert into 表名(字段1,字段2,字段3) values(值1,值2,值3);
insert into 表名(字段1,字段2,字段3) values(a值1,a值2,a值3),(b值1,b值2,b值3);
查询
select * from 表名; select 字段1,字段2,字段3 from 表名; select * from 表名 where 字段=某个值;
修改
update 表名 set 字段=某个值 where 条件;
update 表名 set 字段1=值1,字段2=值2 where 条件; update 表名 set 字段=字段+值 where 条件;
删除
delete from 表名 where 字段=某个值;
四 sql语句中的快捷键
\G 格式化输出(文本式,竖立显示)
\s 查看服务器端信息
\c 结束命令输入操作
\q 退出当前sql命令行模式
\h 查看帮助
五 Mysql的数据类型
数据类型是定义列中可以存储什么类型的数据以及该数据实际是怎样存储的基本规则。数据类型限制存储在数据列列中的数据。例如,数值数据类型列只能接受数值类型的数据。在设计表时,应该特别注意所用的数据类型,使用错误的数据类型可能会严重影响应用程序的功能与性能。常用数据类型:整形,浮点型,字符串,日期等
1.字符串数据类型
最常用的数据类型是串数据类型。它们存储串,如名字、地址、电 话号码、邮政编码等。
不管使用何种形式的串数据类型,串值都必须括在引号内
有两种基本的串类型,分别为定长串和变长串
定长串:char 1. 接受长度固定的字符串,其长度是在创建表时指定的。 定长列不允许存储多于指定长度字符的数据。 2. 指定长度后,就会分配固定的存储空间用于存放数据
变长串 varchar
存储可变长度的字符串 varchar(7) 如果实际插入4个字符, 那么它只占4个字符位置,当然插入的数据长度不能超过7 个字符。
**注意 :
Text 变长文本类型存储
char(7) 不管实际插入多少字符,它都会占用7个字符位置
既然变长数据类型这样灵活,为什么还要使用定长数据类型?
回答:因为性能,MySQL处理定长列远比处理变长列快得多**
2.数值类型
数值数据类型存储数值。MySQL支持多种数值数据类型,每种存储的数值具有不同的取值范围。支持的取值范围越 大,所需存储空间越多
与字符串不一样,数值不应该括在引号内
3.日期类型
MySQL使用专门的数据类型来存储日期和时间值
六,表的字段约束
unsigned 无符号(给数值类型使用,表示为正数,不写可以表示正负数都可以) 字段类型后面加括号限制宽度 char(5). varchar(7) 在字符类型后面加限制 表示 字符串的长度 int(4) 没有意义,默认无符号的int为int(11),有符号的int(10) int(4) unsigned zerofill只有当给int类型设置有前导零时,设置int的宽度才有意义。 not null 不能为空,在操作数据库时如果输入该字段的数据为NULL ,就会报错 default 设置默认值 primary key 主键不能为空,且唯一.一般和自动递增一起配合使用。 auto_increment 定义列为自增属性,一般用于主键,数值会自动加1 unique 唯一索引(数据不能重复:用户名)可以增加查询速度,但是会降低插入和更新速度
七,DQL-MySQL数据查询SQL
select 字段列表|* from 表名
[where 搜索条件] [group by 分组字段 [having 分组条件]] [order by 排序字段 排序规则] [limit 分页参数
1.条件查询
可以在where子句中指定任何条件 可以使用 and 或者 or 指定一个或多个条件 where条件也可以运用在update和delete语句的后面 where子句类似程序语言中if条件,根据mysql表中的字段值来进行数据的过滤
2.like模糊查询
我们可以在where条件中使用=,<,> 等符合进行条件的过滤,但是当想查询某个字段是否包含时如何过滤?
可以使用like语句进行某个字段的模糊搜索, 例如: 查询 name字段中包含五的数据
注意:where子句中的like在使用%或者_进行模糊搜索时,效率不高,使用时注意:
尽可能的不去使用%或者_ 如果需要使用,也尽可能不要把通配符放在开头处
总结
理解关键字 后更好记忆。