MySQL基础命令模板

数据库基本命令

#创建数据库
create database book(数据库名);

#删除数据库
drop database book(数据库名);

#查看数据库
show  databases ;

#查看某个数据库信息
show create database book(数据库名);

#修改数据库
alter database book(数据库名) default character  set gdk(编码方式) collate gbk(编码方式)_bin;

表单基本命令

===创建表单====
create table teacher(表单名)
(
	id int(5),
	name varchar(10),
	email varchar(10)
);

#删除表单
drop table teacher(表单名);

#查看所有表单
show tables;

#查看某个表单信息
show create table  teacher(表单名);show create table  teacher \G

#使用describe查看数据表
describe teacher(表单名);desc teacher(表单名);

#修改表名
alter table teacher(旧名) rename my_teacher(新名) ;

#修改字段和数据类型
alter table teacher(表名) CHANGE  旧字段名  新字段名 新数据类型 ;

#修改字段数据类型
alter table tercher(表名) modify 字段名 新数据类型 ;

#添加字段
alter table teacher(表名) add 新字段名 数据类型 ;
#删除字段
alter table teacher(表名) drop email ;

#修改字段位置
alter table teacher(表名) modify  name(字段名) varchar(10)(数据类型)  first(位置) ; 


PRIMARY KEY CONSTRAINT (主键约束)


===单字段主建===
#创建表单时指定主建
create table company(表名)
(	
	id int(11)  primary key,        #peimary key 就是设置主键的命令,同下
	name varchar(50),
	address varchar(50)
);

#为已存在表单添加主键约束
alter table company(表名) modify 字段名 数据类型 primary key;

#删除主键约束
alter table company(表名) drop primary key;

💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖

===复合主键===
复合主键指主键由多个字段组成

#创建表单时指定复合主键
primary key (字段名1,字段名2,字段名3) ;

create table company(表名)
(
	id int(10),
	name varchar(10),
	address varchar(10),
	primary key(id,name)		#此处所选为上面定义的字段	
);

#为以存在表单添加复合主键
alter table company(表名) add primary key (字段名1,字段名2) ;

#删除复合主键
alter table company(表名) drop primary key ;		#此处删除后这个表单中复合主键都会被删除

  

FOPEIGN KEY CONSTRAINT(外键约束)

===外键约束===
一个表可以有一个或多个外键,一个表可以为空值,诺不为空值则这个表的外键值必须等于另一个表中主键某个值。
主表:对于两个有相关联的表而言,相关联字段中主键所在的那个表即是主表
从表:对于两个有相关联的表而言,相关联字段中外键所在的那个表即是从表

===添加表示添加外键约束===
语法格式如下:
constraint  外键名  foreign key (从表的外键字段名) references 主表名 (主表主键字段名) ;

例:先建主表
create table student(表名)		#主表
(
	id int(11),
	name varchar(10),
	school varchar(10),
	age int(10)
) ;
   再建从表
create table teacher(表名)		#从表
(
	id int(11),
	name varchar(10),
	school varchar(10),
	domain varchar(10),
	#在从表写入如下内容
	constraint fk_teacher_student(外键名)0 foreign key (domain)(从表外键字段名)  references student(主表名) (school)(主表主键字段名)
) ;

==================================================================================================================================

===为已存在表添加外键约束===
语法如下:
alter table 从表名 add  constraint 外键名  foreign  key (从表的外键字段名)  references  主表名 (主表的主键字段名) ;

#先建主表再建从表
create table student(表名)		#主表
(
	id int(11) primary key,
	name varchar(10),
	school varchar(10),
	age int(10)
) ;
  
create table teacher(表名)		#从表
(
	id int(11) primary key,
	name varchar(10),
	school varchar(10),
	domain varchar(10)
) ;
接下来使用alter table 语句为teacher从表创建外键
alter table teacher add constraint fk_teacher_student foreign key     (school) references student (name);

===删除外键约束===
语法如下:
alter table 从表名 drop foreign key 外键名 ;

删除teacher表school字段外键约束
alter table teacher drop foreugn key fk_teacher_student ;

NOT NULL CONSTRALNT(非空约束)

===创建表时添加非空约束===
字段名 数据类型  not null ;
create table 表名
(  id int(11) primary key,
   name varchar(50),
   num int(20) not null
);

===为已存在的表添加非空约束===
alter table 表名 modify 字段名 新数据类型 not null ;   

#删除非空约束
alter table 表名 modify 字段名 数据类型 ;    

UNIQUE CONSTRAINT (唯一约束)

语法格式如下:
字段名 数据类型 unique ;
===创建表单时添加唯一约束===
create table comany(表名)
(
	comany_id int(11) primary key,
	comany_name varchar(15) unique,			#添加唯一约束
	comany_address varchar(15) not null
) ;

===为已存在表添加唯一约束===
语法格式如下:
alter table 表名 modify 字段名 新数据类型 unique ;

喏comany 表中comany_name没有设置唯一约束,呢么下面将设置
alter table comany modify comany_name varchar(15) unique ;

删除唯一约束
语法格式如下:
alter table 表名  drop index 字段名 ;

#删除company 中comany_name的唯一约束
alter table comany drop index comany_name ;

DEFAULT CONSTRAINT(默认约束)

将数据中某列设置为默认约束,如果用户没有指定数据呢么系统自动将默认赋值给该列。
===创建表单时添加默认值===
语法如下:
字段名 数据类型 default 默认值 ;

create table comany(表名) 
(
	comany_id int(10) primary key ,				#设置为主键
	comany_name varchar(50) unique,				#设置为唯一约束
	comany_address varchar(200) not null,		#设置为非空约束
	comany_tel varchar(20) default '0371-'		#设置默认值
) ;

===为已存在表添加默认约束===
语法格式如下:
alter table 表名 modify 字段名 新数据类型 default ' 默认值 ' ;

删除默认值
语法如下:
alter table 表名 modify 字段名 数据类型 ;

#删除comany表中comany_tel 字段默认约束
alter table comany modify comany_tel varchar(20) ;

设置表的字段值自动增加

===创建表示指定字段自动增加===
语法如下:
字段名 数据类型 primary key auto_increment ;

create table comany(表名)
(
	comany_id int(11) primary key auto_increment,		#设置为主键并将其设置为值自动增加
	comany_name varchar(50) unique,						#设置为唯一约束
	comany_address varchar(200) not null,				#设置为非空约束
	comany_tel varchar(20) default '0371-'				#设置为默认约束
) ;

===为已存在表单设置字段自动增加===
语法格式如下:
alter table 表单 modify 字段名 新字段类型 auto_increment ;

诺上表comnay中comany_id没有设置自动增加,下面将其添加自动增加功能
alter table comany modify comany_id int(11) auto_increment ;

删除字段值得自动添加
语法格式如下:
alter table 表名 modify 字段名 数据类型 ;

数据表记录插入

===向数据表中插入单行数据===
语法格式如下:
insert 表名 (列表1,列表2,列表3) values ('值1','值2','值'3) ;
例:
#创建一个love表单
create table love(表名)
(
	name varchar(20) primary key,
	id int(10) unique,
	age int(120),
	tel varchar(120) default '0371-'
) ;
#插入一条数据:
insert love (name,id,age,tel) values ('messi','10','35','17238355593') ;

===向数据表中插入多条记录===
向一个表单中插入多个数据是可以无需写出列表values后面可直接写值,但是要与表单山字符顺序对应。

语法格式:
insert 表名 values ('值1','值2','值3','值4'),('值1','值2','值3','值4') ;	#按照格式加多少个都行
借用上面love表单我们插入多条数据格式如下:
insert love values ('CR7','7','38','17538355593'),('bogeba','9','28','17538355593') ;


数据表记录的修改

创建一个表单:
ariaDB [jing]> create table love (表名)
    -> (
    -> id int(10) unique,
    -> name varchar(40) primary key,
    -> age int(120),
    -> tel varchar(150)
    -> );


===修改整个数据记录===
语法格式如下:
MariaDB [mysql]>update 表名
	       -> set 字段名='新值'
	       -> [ where 条件表达式 ]
例:将 love表 tel  改为保密
MariaDB [jing]> update love
    -> set tel='保密';	 

===修改其中一个数据记录===
MariaDB [jing]> update love
    -> set tel='17538355593'
    -> where name='cr7';
    

使用DELETE删除数据

创建一个love表单
MariaDB [mysql]>create table love(表名)
(
	->name varchar(20) primary key,
	->id int(10) unique,
	->age int(120),
	->tel varchar(120) default '0371-'
) ;

语法格式如下:
MariaDB [mysql]>delete from  表名 
		[ where 条件表达式 ]
===删除某一个数据===
MariaDB [jing]> delete from love
        -> where name='Messi';		#只删除了Messi这行数据

===删除整个数据表记录===
MariaDB [mysql]>delete from  love(表名);

数据库备份与恢复

备份单个数据库
mysqldump -u username -h host -ppassword dbname[dbname2,dbname3...]>filename.sql

username 登陆用户名
host  登陆主机名
password  登陆者密码
dbname 要备份的数据库名

备份多个数据库
mysqldump -u username -h host -ppassword  --databases dbname[dbname1,dbname2...] >filename.sql
备份多个时要添加 --databases ,后面写数据库名字,名字与名字之间以空格区分。

备份所有数据库
mysqldump -u username -h host -ppassword  --databases  --all-databases > filename.sql
--all-databases参数备份所有数据库

数据库恢复
mysql -u username -ppassword [dbname]<filename.sql
dbname表示要恢复的数据库名称filename.sql 表示
如果使用mysqlname备份的filename.sql 里面包含创建数据库的语句则不需要指定数据库。

方法二:
先登录MySQL服务器,再使用source语句导入已经备份好的文件
语法如下:
 source  filename.sql   (filename.sql必须是全路径)

用户管理—创建用户,删除用户,修改用户

创建用户有很多方法下面展示我喜欢的方式
使用GRANT  privileges ON database.table TO 'username'@'host' identified by 'password' ;

privileges :赋予用户权限类型
database.table:用户权限范围(填表名或数据库名)

例:创建一个新用户,名为jzy,密码为abc,并授予该用户对teacher表有查询权限
MariaDB [mysql]>GRANT table on teacher to ‘jzy’@‘loaclhost’ identified by ‘abc’ ;

查看用户信息
MariaDB [mysql]>SELECT  host,user,password FROM user ;

===删除用户===
使用DROP USER 语句删除用户
语法格式如下:
DROP USER ‘username’@‘hostname’ ; 
username: 表示用户名
hostname: 表示主机名

例如:
MariaDB [mysql]>DROP USER ‘jzy’@‘localhost’ ;


===修改用户名称===
语法如下:
RENAME USER old_username TO new_username ;

#old_username: 表示旧用户名
#new-username: 表示新用户名
例如:
MariaDB [mysql]> RENAME USER ‘cr7’@‘localhost’ to ‘CR7’@‘localhost’ ;

===修改用户密码===
使用SET语句修改
语法格式如下:
SET PASSWORD [for username]=PASSWORD(‘newpassword’) ;
#username表示用户如果不写表示当前用户,如果写必须写成‘username’@‘localhost’

下面登录到root用户将其密码修改为 123abc
MariaDB [mysql]> set password=password(123abc’); 

MYSQL权限管理

===权限查询===
SHOW GRANTS 基本语法如下:
SHOW GRANTS  FOR ‘username’@‘hostname’ ;

例如查询root用户信息:
MariaDB [mysql]> show grants for 'root'@'localhost';

==权限授予===
使用GRANT 语句为用户赋予权限

语法格式如下:
GRANT  删除线格式 所给权限  ON  范围   TO  用户  IDENTIFIED BY ‘密码’  (WITH GRANT OPTION 可选);

例:使用GRANT创建一个新用户mubapei密码为123,赋予mubapei用户对所有数据库和表单有查询,插入功能,并使用WITH GRANT OPTION可以将其权限
赋予给其他权限

MariaDB [mysql]> GRANT insert,select ON  *.*  TO  ‘mubapei’@‘localhost’ IDENTIFIED BY123WITH GRANT OPTION;
# insert,select 表示给的权限
# *.*表示所有,也可填某一个表单或数据库名
# WITH GRANT OPTION 表示该用户可以将其权限赋予给其他权限

使用select查询user用户权限
MariaDB [mysql]> select 
    -> host,user,password,insert_priv,select_priv,grant_priv 
    -> from user 
    -> where user=‘mubapei’
    -> \G;


===权限回收===
REVOKE语法格式如下:
REVOKE 要收回的权限  ON  *.*  FROM ‘mubapei’@‘localhost’ ;

例:收回mubapei对所有对象插入权限
REVOKE  insert  ON *.* FROM ‘mubapei’@‘localhost’ ;

===收回用户所有权限===
语法如下:
REVOKE ALL PRIVILEGES , GRANT OPTION FROM ‘username’@‘hostname’[用户1,用户2..]

例如收回mubapei所有权限:
REVOKE ALL PRIVILEGES , GRANT OPTION FROM ‘mubaopei’@‘localhost’ ;

在这里插入图片描述

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一个人的朝圣ò

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

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

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

打赏作者

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

抵扣说明:

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

余额充值