数据库概述
数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以 对数据库中的数据进行增加,修改,删除及查询操作(CRUD)。 1. cmd--> services.msc 打开服务的窗口--> MySQL服务启动
什么是数据库
数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以
对数据库中的数据进行增加,修改,删除及查询操作(CRUD)。
数据库的特点
1. 持久化存储数据的。其实数据库就是一个文件系统
2. 方便存储和管理数据
存储数据有一定的格式
行和列的格式
3. 使用了统一的方式操作数据库
使用图形界面的形式查看数据
使用sql语言进行查看或管理数据
常见的数据库
| 关系型数据库 | 描述 |
|---|---|
| MySQL | 开源免费的数据库,中小型的数据库,已经被 Oracle 收购了。MySQL6.x 版本也开始收费。 |
| Oracle | 收费的大型数据库,Oracle 公司的产品 |
| DB2 | IBM 公司的数据库产品,收费的。常应用在银行系统中。 |
| SQL Server | MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用。 |
| SQLite | 嵌入式的小型数据库,应用在手机端,如:Android。 |
| OceanBase | 阿里的大型数据库,性能已经超过Oracle全球第一 |
| 非关系型数据库(NoSQL) | 描述 |
| MongoDB | MongoDB最流行的文档型数据库 |
| Readis | 基于内存的键值型数据库通过 Key-Value 键值的方式来存储数据 |
MySQL安装
查看是否安装成功:1、 查看服务 2、控制面版,卸载软件
查看是否可用: cmd mysql -uroot -proot
注意:如果cmd mysql -uroot -proot 不是内部或外部命令。 表示你的mysql服务并没有配置环境变量
如果有同学不能安装mysql服务器?
可以使用免安装:phpstudy_pro 这个第三方软件即可
注意:如果你使用的phpstudy不可以使用cmd命令,是因为你并没有真正在你本机安装mysql服务,也无法配置环境变量
MySQL卸载
1、直接通过计算机-控制面版-卸载软件进行卸载
2、找到c盘,把隐藏文件打开,C:\ProgramData\MySQL 删除
注意:如查卸载不彻底,需要删除计算机注册表(具体网上查相关资料)
MySQL服务启动和关闭
MySQL服务启动
- cmd--> services.msc 打开服务的窗口--> MySQL服务启动
- 使用管理员打开cmd
net start mysql: 启动MySQL的服务
MySQL服务关闭
- cmd--> services.msc 打开服务的窗口--> MySQL服务关闭
- 使用管理员打开cmd
net stop mysql: 关闭MySQL的服务
MySQL登录和退出
MySQL登录
* 本地登录
mysql -u用户名 -p密码 显示登录
mysql -u 用户名 -p 隐式登录
* 指定ip登录
mysql -h主机地址 -u用户名 -p密码
MySQL退出
1. exit;
2. quit;
SQL概述
什么是SQL
结构化查询语言(Structured Query Language)简称SQL,SQL语句就是对数据库进行操作的一种语言。
SQL是一套标准,所有的数据库厂商都实现了此标准;但是各自厂商在此标准上增加了特有的语句,这部分内容我们称为方言。
SQL通用语法
1. SQL 语句可以单行或多行书写,以分号结尾。
select * from stu;
select
*
FROM
stu;
2. 可使用空格和缩进来增强语句的可读性。
3. MySQL 数据库的 SQL 语句不区分大小写(仅此于win系统),关键字建议使用大写。
1). 库名 表名 字段 别名 建议写小写
2). 关键字建议大写: SHOW DATABASES CREATE
4. 3种注释
* 单行注释: -- 注释内容(这种方式是通用的) 或 # 注释内容(mysql 特有)
* 多行注释: /* 注释 */
SQL语句的分类
| 分类 | 说明 |
|---|---|
| DDL(Data Definition Language)数据定义语言 | 定义数据库对象:数据库,表,列等.关键字:create, drop,alter 等 |
| DML(Data Manipulation Language)数据操作语言(掌握) | 对数据库中表的数据进行增删改.关键字:insert, delete, update 等 |
| DQL(Data Query Language)数据查询语言 (掌握) | 用来查询数据库中表的记录(数据).关键字:select, where 等 |
| DCL(Data Control Language)数据控制语言(了解) | 用来定义数据库的访问权限和安全级别,及创建用户.关键字:GRANT,REVOKE 等 |
| TCL(Transaction Control Language) 事务控制语言 | 用于控制数据库的事务操作,关键字; commit,savepoint,rollback等 |
操作数据库-DDL
创建数据库
create database 数据库名称;
创建数据库,并指定字符集
create database 数据库名称 character set 字符集名;
查询所有数据库的名称
show databases;
查询某个数据库的字符集:查询某个数据库的创建语句及字符集
show create database 数据库名称;
修改数据库的字符集
alter database 数据库名称 character set 字符集名称;
删除数据库
drop database 数据库名称;
查询当前正在使用的数据库名称
select database();
使用数据库
use 数据库名称;
操作表-DDL
数据类型
| 数据类型 | 说明 |
|---|---|
| int | 整数类型,例如 : age |
| double | 小数类型,例如 : score double(5,2) 111.11 |
| date | 日期,只包含年月日,yyyy-MM-dd |
| datetime | 日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss |
| timestamp | 时间戳类型,包含年月日时分秒 yyyy-MM-dd HH:mm:ss 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值 |
| varchar | 可变字符 name varchar(20) |
| char | 不可变字符 name varchar(20) |
VARCHAR、CHAR
varchar :表示的长度可变的字符串。最大长度不能超过定义字段的时候长度。
char :长度固定。
name varchar(20); name 存贮数据的长度是20以内的。
存了:lisi 表示4个长度 ,zhangsan:8个长度 江一燕:3个长度
name char(20); 存了:lisi 当前的长度4,剩下的是空格 。
问题:char 的性能好。 varchar可以节省空间。
通常时候,我们使用varchar。
但是我们常用的varchar()节省空间。
使用char的情况。当某个字段的长度固定的时候,,可以采用char。例如身份证号,手机号。
创建表
语法:
create table 表名(
列名(字段名) 数据类型,
列名(字段名) 数据类型,
列名(字段名) 数据类型
...
);
示例:
create table student(
id int,
name varchar(32),
birthday date,
money double(5,2)
);
**注意事项:**最后一列,不需要加逗号(,)
查询表
查询某个数据库中所有的表名称
show tables;
查询表结构
desc 表名;
修改表
添加一列
语法:
alter table 表名 add 列名 数据类型 约束;
实例:
alter table teacher add jieshao varchar(50);
修改列类型
语法:
alter table 表名 modify 列名 新类型;
实例:
alter table teacher modify jieshao varchar(99);
修改列名和类型
语法:
alter table 表名 change 旧列名 新列名 新类型;
实例:
alter table teacher change jieshao intro varchar(999);
删除指定列
语法:
alter table 表名 drop 列名;
实例:
alter table teacher drop intro;
修改表字符集
语法:
alter table 表名 charset 字符集;
实例:
alter table teacher charset gbk;
查看表的字符集
show create table 表名
修改表名
语法:
rename table 旧表名 to 新表名;
实例:
rename table teacher to tch;
删除表
直接删除表
语法:
drop table 表名;
实例:
drop table tch;
drop table if exists emp; 如果表存在就删除
约束
概述
约束:规定,限制。限制表中列的内容。需要满足一定的规则。数据库中的约束:限制列的内容。
意义:保证数据的有效性和完整性。可以确保数据库满足业务规则。
约束类型
| 约束 | 说明 |
|---|---|
| primary key | 主键约束:非空且唯一 |
| not null | 非空约束 : 某一列的值不能为空 |
| unique | 唯一约束 : 某一列的值不能重复,但可以为空 |
| auto_increment | 自增器,每一次+1 |
| foreign key | 外键约束 |
设计表的时候。
通常我们会新增一个字段(没有意义的字段)去做主键。不去做修改。
主键是int类型的,我们可以给他设置自动增长(假设插入一条记录的时候,主键没有认为的设置值。会自己顺序。去+1 生成新的内容,添加到主键这个字段中。),auto_increment
主键自增长:
id int primary key auto_increment;
唯一约束:不允许重复。 一个表里可以添加多个唯一约束。
列名 类型(长度)unique;
非空约束:不允许为空。 表示该列的内容不允许为空。
列名 类型(长度) not null,
唯一和主键约束的区别
1、唯一约束可以是空(null)。 但是主键约束不能为空
2、一张表中只能有一个主键,但是唯一约束可以有多个。
创建完表后,添加主键
alter TABLE 表名 add primary key(id);
给表添加约束
create table employee(
id int primary key auto_increment,
name varchar(20) not null unique,
gender varchar(10),
birthday date,
entry_date date,
job varchar(30),
salary double not null
);
创建表添加注释
create table employee(
id int primary key auto_increment comment '编号',
name varchar(20) not null unique comment '姓名',
gender varchar(10) comment '性别',
birthday date comment '生日',
entry_date date comment '入职日期',
job varchar(30) comment '工作',
salary double not null comment '薪水'
);
使用navicat工具
连接mysql数据
参考上课视频
操作数据库
参考上课视频
操作创建表
参考上课视频