Mysql的使用
1)——连接数据库
C:\Program Files\MySQL\MySQL Server 5.7\bin>
net start mysql (启动MySQL服务)
net stop mysql (关闭MySQL服务)
mysql -uroot -p密码 (不建议这种情况)
mysql -uroot -p
密码 (推荐--安全)
12345
注意事项:在开启MySQL服务时必须先关闭防火墙,否则会出现连接不到本地的错误
2)——常见命令
show databases; 显示数据库
use dbname; 切换数据库
show tables; 展示表
2、SQL
结构化查询语言、关系型数据库通用语言。
结束标识是 ;
字符串数据用引号
大小写不敏感
3)—— SQL的分类
- DDL: 数据定义语言(结构)
实现数据库对象(数据库,表,视图,索引等)的操作(创建,修改和销毁)
create / alter / drop
1
- DML: 数据操纵语言(数据)
增删改
insert / delete / update
1
- DQL: 数据查询语言
select
1
- TCL: (transaction)事务控制语言
commit / rollback(回滚)
1
- DCL: 数据控制语言(授权)
grant / revoke
数据定义语言,用于操作数据库对象的结构
- 数据库的创建和销毁
# 创建数据库
create database [if not exists] bd1906;
#删除数据库
drop database [if exists] bd1906;
12345
- 表的创建,修改和销毁
1. 创建表
create table student(
sid int,
sname varchar(20),
age int,
gender varchar(10)
);
# 查看表的状态
desc student;
2. 修改结构(添加字段,销毁字段,修改字段(字段名称,类型,长度,位置,约束等))
alter table tname add/drop/change/modify colname coltype... first|after
* 添加字段
追加字段
alter table student add email varchar(20);
添加到首列
alter table student add phone char(11) first;
指定位置:
alter table student add card char(18) after sid;
* 销毁字段
alter table student drop card;
* 修改字段
alter table student modify colname 类型 约束...
alter table student change 旧字段名称 新字段名称 类型 约束...
# 修改字段名称
alter table student change email semail varchar(20);
# 修改字段的类型和长度
alter table student modify sname varchar(50);
# 修改位置
alter table student modify semail varchar(20) after sname;
3.销毁表
drop table student;
4.修改表的名称
rename table student to stu;
5.清空表(只清空数据,不改变结构)
truncate table stu;
delete,truncate和drop的区别?
drop销毁表结构;
truncate不改变结构,只清空数据和重置。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
- 数据类型(仅限mysql)
数值类型:
整数:
int / bigint
浮点数:
float(10,2): 长度是10,小数点后的位数是2
double(16,4): 长度为16,小数点后的位数是4
decimal(m,n): 金额等数据时必须使用decimal
字符串类型:必须指明长度
char(n): 固定长度
varchar(n): 可变长度
日期类型:
date: 日期
time: 时间
datetime: 日期和时间
timestamp: 时间戳
其他类型:
text: 文本类型
blob: 二进制数据类型
enum() / set() / json()
12345678910111213141516171819202122
4)—— 数据完整性
数据的准确性和可靠性
实体完整性
实体指的就是记录,就是保证记录是准确的,不重复的
- 主键约束: 唯一而且不能为空(primary key)
# 场景1: 创建表的同时添加约束
create table student(
sid int primary key,
sname varchar(20)
);
create table student(
sid int,
sname varchar(20),
primary key(sid)
);
# 场景2: 表已经存在(主键字段绝对不能存在重复的数据)
alter table stu add constraint PK_ID primary key (sid);
# 注意:
1.每张表必须有主键,但是有且只能有一个,允许有联合主键
2.主键字段一般数据类型和长度尽可能小
3.主键字段不要使用业务字段
123456789101112131415161718
- 唯一约束: 字段的值必须唯一
create table student(
card char(18) unique
)
alter table stu add constraint UQ_CARD unique (card);
1234
- 主键自增:
auto_increment: 默认从1开始每次增加1
5)—— 域完整性
域:字段
类型约束
- not null:非空约束
- default: 默认值
6)—— 引用完整性
其中一张表的字段取值需要依赖于另一张表
外键约束
alter table emp add constraint FK_DEPTNO foreign key(deptno) references dept(deptno);