MySQL的一些基础操作(简单 易懂)(笔记整理)

本篇是关于MySQL的一些基础操作,包括创建、授权、数据的增删改查,还涉及引擎、枚举、集合以及主键、外键等。(复习自用)

一、创建

1.创建用户

create user'用户名' @'ip地址'identified by '密码'

# ip地址中出现%表示任意、所有

2.创建库

create database 库名;

3.创建表

create table 表名 (列名及约束)

eg:

create table t1 (

id int null /default 1/auto_increment primary key,

name char(10)

)engine=innodb default charset=utf8;

# null表示可以为空(不加默认不为空),default 1表示默认为1,auto_increment primary key表示自增和主键(一个表里只能有一个)。注意engine是引擎,便于插入中文。

二、授权

grant 权限 on 库.表 to '用户' @'ip';

eg: grant select,insert,update on dp1.t1 to 'alex'@'%';

eg: grant all privileges on dp1.t1 to 'alex'@'%';

# all privileges表示所有权限但不包括授权

#末尾加with grant option,表示可将权限传递

收回权限:revoke all privileges on dp1.t1 to 'alex'@'%';

三、数据的处理

1. 插入

insert into 表名<列名(可多个 逗号隔开)> value <内容(对应列名)>;

2. 删除

删数据:delete from 表名 where 删除条件

删除表/库:drop table 表名 / drop table if exists 表名;drop databases 库名

清空表:delete table 表名;# 内容会删但自增不归一,会接下去

               truncate table 表名;# 删除且自增归一(也更快)

3. 修改

update t1 set age=18; # age全改为18

update t1 set age=18 where age=17; # age=17的改为18

4. 查询

查数据库:show datebases;

查库里面:ues 库;

                  select 列名(可多个) from 表名;

查当前数据库下的所有表的名称:show tables

查表是如何创建的:show create table 表名

查表包含哪些字段:desc 表名

四、数据与时间的类型

1. 数据类型

数字:整数 tinyint、int、bigint(范围从小到大)   小数 float、double、decimal(准确)

字符串:char()、varchar()、text

#char(10)会自动填补空位 长度一致(查询时速度快),varchar(10)不自动填补(节省空间),前两个最多长度255个,text 最多65535个

#创建数据表时定长的列往前放

#上传文件:文件存硬盘,db存路径

2. 时间类型

最常用:datetime    表示年月日时分秒 yyyy-mm-dd hh:mm:ss

五、枚举与集合

1. 枚举

enum('a','b','c','d')

 #只能是括号内的内容,即只能是a或b或c或d

2. 集合

set('a','b','c','d')

#括号内的任意组合均可,例如a或acd都可

六、主键与外键

1. primary key主键  

能作为唯一标识的属性组(只能有一个)

约束:不能重复且不能为空      

加速查找

2. 外键   

用来和其他表建立联系用,外键是另一表的主键(可有多个,可重复可为空)

constraint 外键名称 foreign key (主表的列)  references  从表(列)

节省空间

保证数据一致性

eg:将部门名称用数字代替,以节约空间

create table userinfo(

uid bigint auto_increment primary key,

name varchar(32),

department_id int,

constraint fk-user-depar foreign key ("deparment_id") references department('id')

)engine=innodb default charset=utf8;

create table department(

id bigint auto_increment primary key,

title char(15)

)engine=innodb default charset=utf8;

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值