MySQL介绍、数据库、表等基本操作,表约束表关系 (一)

一、Mysql介绍

1、数据库介绍

数据库管理系统(DataBase-Management System,DBMS)由一个相互关联的数据的集合和一组用以访问这些数据的程序组成。这个数据集合通常称作数据库(database)。

2、关系型数据库

关系数据库基于关系模型,使用一系列表来表达数据以及这些数据之间的关系。MySQL就是关系型数据库。关系模型已经成为当今主要的数据模型,它比之前的的网络模型和层次模型简化了编程者的工作。现在开始流行的NoSQL,泛指非关系型的数据库。

3、Mysql初步了解

1、查看配置文件 :/etc/mysql/mysql.conf.d/mysql.cnf

2、查看Mysql服务:service mysql status/start stop

3、登录Mysql:

本地连接:mysql -u用户名 -p密码
例如:mysql -uadmin -p123456		(可以回车后再输入密码)

远程连接:mysql -hIP地址 -P端口 -u用户 -p密码
例如:mysql -h127.0.0.1 -uadmin -p123456

退出:exit

4、查看数据库

查看有哪些数据库:  	SHOW DATABASES;
进入某个数据库: 	USE xxx;
判断是否在哪个数据库里:  	SELECT DATABASE();
查看当前用户:  	SELECT user(); 

补充:

登录mysql并进入数据库:mysql -u用户 -p密码 -A 数据库名称;

二、数据库的基本操作

1、创建数据库
create database (if not exists) xxx;

2、删除数据库
drop database xxx

3、使用数据库
use xxx

4、查看目前使用的数据库
select database();

三、表操作(命令行都带上table)

1、查看数据库中的数据表
当前数据库中:show tables;
其他库中:show tables from xxx;

2、创建数据表
create table (if not exists) tb_name(
	column_name  data_type,
	);
# column_name 	字段名/列名
# data_type 	字段类型(整型、字符串……)
例如:create table `tb1`(
	`id`	int,
	`name`	varchar(20)				# 注意:是反引号,最后一句后面不能加逗号,	
	);

3、查看数据表信息
查看表结构:show create table tb_name;
查看表字段信息:describe tb_name;	/	desc tb_name;

4、删除表
drop table tb_name;

5、修改数据表
添加字段:add 字段名 字段类型
alter table tb_name add age int;
alter table tb_name add (age int, score int);

删除字段:drop 字段名
alter table tb_name drop score;
alter table tb_name drop score, drop age;

修改字段名:modify 字段名 新字段类型	
alter table tb_name modify sex varchar(20);
修改字段名and字段类型:change 字段名 新字段名  新字段类型
alter table tb_name change sex sexs varchar(20);

修改表名:rename  新表名
alter table tb_name rename tb_n;

四、表数据的增删改查

1、增:insert into
写字段:insert into tb_nane (id,name,sex,age) values (1,"beidou",'男',18),(2,'moran','男',20);
不写字段:insert into tb_name values (1,"beidou",'男',18),(2,'moran','男',20);

2、查:select * from  xxx
select * from tb_name;
select * from tb_name where id=2;

3、改:update xxx set 字段 where 条件
update tb_name set sex = '女'  where id=2;

4、删:delete from xxx where 条件
delete from tb_name where id=2;

五、表约束(命令行也带上table,在表操作的基础下进行)

1、非空约束: not null
alter table tb_name modify names varchar(20) not null;

2、唯一约束:unique(xx)
alter table tb_name add unique(id);
删除:alter table tb_name drop key(id);

3、主键约束:primary key (xx);	# 一个表只存在一个主键约束,且不能为空
alter table tb_name add primary key (id);
删除:alter table tb_name drop primary key;

4、自增约束:auto_increment
alter table tb_name change id id int not null auto_increment;
删除:alter table tb_name change id id int not null

5、默认约束:default xx
alter table tb_name alter sex set default '男';

字段可以有多个约束,但是主键约束只能存在一个

create table test(
	id int primary key automent,
	name varchar(20) not null,
	age int default 18,
	phone char(11) unique key
	)auto_increment = 1000, charset = utf8;  # 从一千开始递增
  1. CASCADE 删除包含与已删除键值有参照关系的所有记录
  2. SET NULL 修改包含与已删除键值有参照关系的所有记录,使用NULL值替换(只能用于已标记为NOT NULL的字段)
  3. RESTRICT 拒绝删除要求,直到使用删除键值的辅助表被手工删除,并且没有参照时(这是默认设置,也是最安全的设置)
  4. NO ACTION 啥也不做

六、表关系

一对一关系: 如用户表对应用户的详细信息

一对多关系: 如一个学院当中,有若干学生

多对多关系: 如课程和学生之间,一个课程有很多学生,一个学生对应很多课程

# 创建学院表【一对多  一个学院可以有多个学生】
create table department(
	d_id int primary key auto_increment;
    d_name varchar(20) not null
	);

# 学生表 
create table student(
	s_id int primary key auto_increment,
    s_name varchar(20) not null,
    dept_id int,
    foreign key(dept_id) references department (d_id) on delete set null
);
	
# 创建学生详情表【一对一】
create table stu_detail(
	sd_id int primary key auto_incremnt,
	s_age int,
	s_sex char(1) default '男',
	stu_id int unique key,
	foreign key (stu_id) references student (s_id)
	);

# 创建课程表【多对多】
create table course(
	c_id int primary key auto_increment,
    c_name varchar(20)
	);

# 创建中间表
create table stu_course(
	s_id int,
    c_id int,
    primary key (s_id, c_id),	# 创建联合主键
	foreign key(s_id) references student(s_id), # 学生id对应中间表学生id
    foreign key(c_id) references course (c_id) # 课程id对应中间表课程id
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Taverry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值