数据库(database)种类:
1. 网站数据库:20世纪60年代初
2. 层次型数据库:20世纪60年代末
3. 关系型数据库(RDBMS):20世纪70年代至今
4. 非关系型数据库(NoSQL):21世纪初至今
关系型数据库结构:
大多采用C/S(客户端)或 B/S(服务器\浏览器端) 形式,服务器端程序负责管理、维护数据,客户端程序用以远程连接到服务器并发送操作指令。
数据库存储过程:database(库)--- table(表) --- row(行) --- column(列)
常见的关系型数据库:
SQLite:微型数据库,常用于移动设备
MySQL:开源中小型数据库,可用于各种操作系统
PostgreSQL:开源中小型数据库
SQL Server:Microsoft开发的中型数据库,只用于windows系统
Oracle:Oracle公司开发的中大型数据库,可用于各种操作系统
DB2:IBM公司开发的中大型数据库,常与IBM服务器搭配
MySQL分支:
Oracle分支 mysql
Martin分支 mariadb
MySQL的使用\常用管理操作命令:
这里讲述的是在 xampp 软件中启动 →
服务端(端口号3306):c:/xampp/mysql/bin/mysqld.exe(相当于点击 start 的作用)
客户端(连接服务器):c:/xampp/mysql/bin/mysql.exe(相当于点击 shell 的作用)
使用客户端连接服务器端,进入数据库连接(显示mariadb):mysql.exe -h127.0.0.1 -p3306 -uroot -p
-h 表示 host 主机,服务器的地址或域名
-p 表示 port 端口
-u 表示 user 用户 root 管理员用户
-p 表示password 密码(xampp下root 的密码为空)
最简写命令:mysql -uroot(回车)
退出连接(显示路径):quit (回车)或者 Ctrl+c
查看当前数据库服务器中的所有数据库:show databases;(没有结束分号无法结束命令指令)
进入某个指定数据库:use 数据库名称;
显示数据库下的所有表(注意 查看之前一定要先进入数据库):show tables;
查看表的结构(都有哪些列):desc 表名称;
查看创建表:show create table 表名称;
SQL语法规范(脚本的书写规范):
1. 多行注释为 /* ... */,单行注释以 # 开头
2. 所有语句都必须以英文分号结束
3. 一条语句可以编写在多行中
4. 单词不区分大小写(推荐关键字大写形式,非关键字小写)
提交sql 脚本命令:mysql -uroot < 脚本路径
SQL常用语句分类:
DDL:定义数据的结构 DML:操作数据(增删改)
DQL:查询数据 DCL:控制用户的权限
ALTER/TRUNCATE(修改/清空数据库)
DDL:
创建一个新数据库:create database 数据库名称;
删除一个数据库(如果这个库存在):drop database if exists 数据库名称;
删除一个表:drop table 表名称;
创建一个新的表:
create table 表名称(
id INT, --表示整数
name VARCHAR(8), --表示一个可变的字符最大长度为8个
sex VARCHAR(1), -- m-男 f-女
score INT
)
ps--->1. 电话号码存储用 varchar ,因为INT有最大存储值限制
2. 如何解决存储中文乱码:
2-1. sql文本右下角设置文本模式UTF-8
2-2. 客户端连接服务器端编码UTF8
SET NAMES UTF8;
2-3. 服务器端创建数据库编码UTF8
create database 数据库 CHARSET=UTF8
DML:
插入一条数据:insert into 表名称 values(‘1‘,‘tom‘,‘m‘,‘87‘);
插入多条数据:insert into 表名称(id,name)values(‘2‘,‘jerry‘,‘3‘,‘marry‘);
删除表里的所有数据:delete from 表名称;
删除表里的某一行数据:delete from 表名称 where id=1;
修改表里的某一条数据里的名字和分数:update 表名称 set name=‘张三’ ,score=‘99‘ where id=2;
DQL:
查询表里的所有数据:select * from 表名称;
查询所有记录中id和name两列上的值:select id,name from 表名称;
查询某一条数据中的id和name两列上的值:select id,name from 表名称 where id=1;