MySQL快速上手[学习笔记](一)

前言:
课程:《三大主流数据库快速上手》(点击跳转官方课程,b站有资源,可自搜)
笔记(点击跳转豆丁网)
此处是个人学习笔记,用作回顾用途

目录:
一、MySQL 数据类型
二、操作数据库
三、操作表

一、MySQL 数据类型

1.整数类型

MySQL快速上手[学习笔记](一)_第1张图片

2.浮点类型和定点类型

MySQL快速上手[学习笔记](一)_第2张图片
定点数范围是根据精度确定的。
M为精度,D为标度(小数个数),eg:DECIMAL(3,2),输入10/3,结果为3.33

3.时间日期类型

MySQL快速上手[学习笔记](一)_第3张图片
☞YEAR:2 位表示:

  • 00-69—>2000-2069
  • 70-99—>1970-1999
  • (插入数字) 如果插入为 0,则表示 0000
  • (插入字符串) 如果插入为”0”,则表示 2000

☞DATE:YYYY-MM-DD
☞TIME:CURRENT_DATE() NOW()
☞DATETIME:日期+时间
☞TIMESTAMP:最大时间–>2038-01-19 11:14:07

4.字符串类型

CHAR:255 固定char(5) ab VARCHAR:65535 可变
varchar(5)ab

TEXT
TINYTEXT、MEDIUMTEXT、TEXT、LONGTEXT

ENUM 单个值
SET 多个值

5.二进制类型

MySQL快速上手[学习笔记](一)_第4张图片
blob:比如存储图片,音频,视频等
存储地址,读取速度比较慢

二、操作数据库

1.登录数据库系统

mysql -h localhost -u root -p
在这里插入图片描述
-h:host(主机名)
-u:username(用户名)
-p:password(密码)

2.操作数据库语句

(1)查看现有的数据库

show databases;

(2)创建数据库
语法:create database 数据库名

create database test;

(3)删除数据库
语法:drop database 数据库名

drop database test;

(3)使用数据库
use 数据库名;

use test;

三、操作表

1.创建表

语法:
create table 表名(属性名 数据类型 [完整性约束],
属性名 数据类型 [完整性约束],

)

use test
create table exp0(id int,
name varchar(20),
sex boolean
);

2.删除表

语法:drop table 表名

drop table exp1;

(注意:
1.在删除表的时候要谨慎,以避免误删,导致数据丢失,所以在删除前最好做好备份工作
2.在删除表时,如果当前表存在外键,则先删除外键,再删除该表
3.在删除有关联外键表时,则先删除子表[存在外键的表],在删除主表)

3. 创建表的主键

主键:特殊的字段,能够唯一标识每条记录,不能重复
目的:为了让 MySQL 能以最快的速度查找到该记录创建:
(1)单字段主键:
语法:属性名 数据类型 primary key

create table exp1(stu_id int primary key,
stu_name varchar(20),
stu_sex boolean
);

(2)多字段主键
语法:primary key(属性 1 属性 n)

create table exp2(
stu_id int,
course_id int,
garde float,
primary key(stu_id,course_id)
);

4.创建表的外键

语法:constraint 外键别名 foreign key(字段 1.1,字段 1.2) references 主表名(字段 2.1,字段 2.2)
注:字段 2–>主表的主键列

create table exp3(
id int primary key,
stu_id int,
course_id int,
constraint FK_STU_COURSE foreign key(stu_id,course_id) references exp2(stu_id,course_id)
);

5.创建表的完整性约束

(1)非空约束 not null 语法:属性名 类型 not null
(2)唯一约束 unique 语法:属性名 类型 unique
(3)自增长 auto_increment 语法:属性名 类型 auto_increment
(↑要求:类型必须是整型)
(↑注意:如果插入到最后一个标识为 7,删除掉后这个”7”后,后续则从 8 开始)
(4)默认值 default 语法:属性名 类型 default 默认值

create table exp4(
id int not null primary key auto_increment,
stu_id int unique,
name varchar(20) not null,
address varchar(255) default 'ahui'
)

6.查看表结构

(1)1、基本结构:
语法:describe 表名
可简写:desc 表名

describe exp1;
desc exp1;

(2)详细结构:
语法:show create table 表名

show create table exp1;

7.修改表

(1)删除
①删除字段
语法:alter table 表名 drop 属性名

alter table exp2 drop garde;

②删除主键
语法:alter table 表名 drop primary key

alter table exp1 drop primary key; 

③删除外键
语法:alter table 表名 drop foreign key 外键名

alter table exp3 drop foreign key FK_STU_COURSE;

(2)增加
alter table 表名 add 新属性名 新属性类型 [完整性约束] [first | after 原有字段]
①新增无完整性约束的字段

alter table exp1 add telephone varchar(20);

②新增有完整性约束的字段

alter table exp1 add age int not null;

③将字段添加到第一位

alter table exp1 add num int primary key first;

④将字段添加到某个字段之后

alter table exp1 add address varchar(255) after telephone;

(3)修改
①修改表名
语法:
alter table 旧表名 rename [to] 新表名
查看当前数据库下所有的表
语法:show tables;

alter table exp1 rename to nexp1;
alter table nexp1 rename exp1;

②修改字段
语法:alter table 表名 change 旧属性名 新属性名 新属性类型

  • 修改字段类型
alter table exp1 change stu_name stu_name varchar(20);
  • 修改字段类型
alter table exp1 change stu_id id int(4);

③修改字段的排列顺序

  • 将字段修改到首位
    语法:alter table 表名 modify 属性名 属性类型 [完整性约束] [first]
alter table exp1 modify id varchar(20) first;

将字段修改到指定位置
语法:alter table 表名 modify 属性名 属性类型 [完整性约束] [after 原有字段]

alter table exp1 modify address varchar(255) after age;

你可能感兴趣的:(mysql,数据库,mysql)