1、数据库是按照一定的形式来组织存储数据,目的是为了对数据操作-增删改查;
2、发展历史:网状数据库->层次型数据库->关系型数据库->非关系型数据库(nosql);
3、关系型数据库逻辑结构
server服务器->Database数据库->Table表->Row(行)-Cloumn(列)
4、常见的关系型数据库
SQLite | 微型数据库 |
---|---|
SQLserver | 只能用在windows系统 |
Oracle | 大型数据库,收费 |
MySql | 中小型数据库(免费)(瑞典)适用于各种操作系统 |
5、服务器套装:XAMPP软件
-
mysql.exe 客户端负责向服务器端发起增删改查操作;
mysqld.exe 负责存储数据; -
使用客户端连接服务器端
mysql.exe -h127.0.0.1 -P3306 -uroot -p或简写为
mysql.exe -uroot
---------------h主机 ----------P端口- u用户名- p密码 -
Mysql常用管理命令:
quit-退出服务器连接
show databases; -显示所有数据库
use 数据库名;-使用数据库
show tables;-显示数据库中的所有表
desc 表名;-查看该表中的所有表头 -
SQL命令(structured Query language结构化查询语言)
作用:用于操作关系型数据库,对数据执行增删改查;
两种执行方式:①交互模式,客户端输入一行,服务器执行一行,适用于临时性的查看数据;②脚本模式,客户端把要执行的多行命令写在一个文本文件中,一次性的提交给服务器,适用于批量的操作数据
运行脚本方法:mysql -uroot <脚本文件路径 -
SQL语法规范
①每条sql命令可以跨越多行,遇英文符号结束;
②假如某一条命令出现语法错误,则此条语句以及后边所有的语句都不会执行;
③sql命令不区分大小写,习惯上关键字大小,非关键字小写;
④sql命令有多行注释(/* */)和单行注释(#); -
常用的sql命令
创建新的数据库:CREATE DATABASE 数据库名;
丢弃(删除)指定的数据库,表也可以丢弃:DROP DATABASE IF EXISTS 数据库名
创建表:CREATE TABLE 表名(属性1,属性2…);
向表中插入数据:INSERT INTO 表名 VALUES(‘ ’,‘ ’,‘ ’);
查询数据:SELECT *FROM 表名;
修复数据:UPDATE 表名 SET 属性;
删除数据:DELETE *FROM 表名; -
标准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
设置客户端连接服务器端的编码为UTF-8:SET NAMES UTF8,解决存储中文乱码问题。 -
mysql中的列的类型
类型 | 字节数 |
---|---|
TINYINT | 1 |
SMALLINT | 2 |
MEDIUNINT | 3 |
INT | 4 |
BIGINT | 8 |
FLOAT | 4 |
DOUBLE | 8 |
CHAR | 1 |
VARCHAR | 2 |
TEXT | – |
BLOB | – |
TINYBLOB | – |
DATE | – |
TIME | – |
DATETIME | – |
BOOL | TRUE/FALSE |
DECIMAL(M,D) | 定点小数,无误差 |
注意:①BOOL类型存储数据时会变成TINYINT类型,使用true和false是不能加单引号!②在插入数值类型时,引号可加可不加;③在插入字符串类型和日期时间类型时,必须加单引号!
-
列约束:mysql可以对插入的数据进行特定验证,只有满足条件才允许插入到数据表中,否则认为是非法的插入
①主键约束:PRIMARY KEY(不能为空)
注意:主键是唯一的,不能出现多个主键;
②非空约束:NULL是不能确定的时候用的,NULL和任何值都不相等,包括他自己;
③唯一约束-UNIQUE,允许为空,一个表中可以出现多个唯一约束;
④检查约束-CHECK(条件),检查约束可以对插入的数据进行自定义条件验证,mysql不支持检查约束,会降低数据的插入速度;
⑤默认值约束-DEFAULT(默认值);
⑥外键约束-FOREIGN KEY REFERENCES 表(主键); -
mysql的自增列
AUTO_INCREMENT:自增给编号设值;
不足:自动寻找最大的进行自增赋值;只适用于整形的列上,自增列允许手动赋值; -
简单查询
查询列:SELECT * FROM 表名;
给列起别名:SELECT 列名 AS 中文别名;在起别名的时候,AS可以省略;
显示不同的记录、合并相同的记录使用DISTINCT;
查询时计算,示例:SELECT 表达式;
查询结果排序:ORDER BY #ascendant 升序ASC 降序DESC -
条件查询
字符串:WHERE …LIKE…“%多个字符、_单个字符”
比较运算符:>、<、<=、>=、!=;
BTWEEN …AND…
NOT BTWEEN …AND…
WHERE …OR…
WHERE A AND B=WHERE IN(A,B)在A,B之间 -
分页查询
假如查询的结果集有太多的数据,一次显示不完,可以使用分页显示;
*每页的开始=(当前的页码-1)每页的数据量
格式:LIMIT start, count------start每页的开始,count------每页的数据量。