创建用户和授权用户权限:

# 1 .创建用户:
# 指定ip 192.168.15.109的fgf用户登录
create user 'fgf'@'192.168.15.109' identified by '';
# 指定ip 192.168.15.开头的fgf用户登录
create user 'fgf'@'192.168.15.%' identified by '';
# 指定任何ip的fgf用户登录
create user 'fgf'@'%' identified by '';
# 2 .删除用户
drop user '用户名'@'IP地址';
# 3 .修改用户
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
# 4 .修改密码
set password for '用户名' @'IP地址'=password('新密码'); 对当前用户的授权管理
查看权限
show grants for '用户名'@'IP地址'
# 授权 fgf 用户仅仅对 db1.t1文件有查询 插入 和 更新的操作
grant select ,insert ,update on db1 to 'fgf'@'%';
# 表示所有的权限 , 除了 grant 这个命令 这个命令是root才有的,fgf用户对db1下的t1文件有任意操作权限;
grant all privileges on db1.t1 to 'mjj'@'%';
#fgf用户对db1数据库中的文件执行任何操作
grant all privileges on db1.* to 'fgf'@'%';
# fgf 用户对所有数据库文件有任何操作
grant all previleges on *.* to 'fgf'@'%';

复制表

#即复制表结构 又复制记录
create table t2 select * from db1.t1; # 只复制表结构,不复制记录
create table t2 select * from db1.t1 where 1>3;
create table t2 like db1.t1;

数据类型: 整型 默认有符号

  数据类型 无符号(unsigned) 和 有符号 用 0 填充 zerofill

  约束的作用 : 保证数据的完整性 和一致性

    tinyint[-128~127]小整数 两边区域都能取到

    int 整数

    bigint 极大整数

# 加了unsigned 表示从0开始 不再从负数开始
create table t1(id int(4) unsigned,name char(20));

浮点型

  float 单精度 随着小数位数的增多 会变得越来越不准确

    float[(M,D)] [UNSIGNED] [ZEROFILL]

    参数解释 : 单精度浮点数(非准确小数值) , M是全长 ,D是小数点后个数 M最大值为255,D最大值为30

  double 双精度 随着小数的增加 也会越来越不准确 但是要比float 准确点

    DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] 字母的含义与float 一样.

  decimal 小数 精准的小数

    decimal[(m[,d])] [unsigned] [zerofill]

      #参数解释:准确的小数值,M是整数部分总个数(负号不算),D是小数点后个数。 M最大值为65,D最大值为30。

        #精确度: **** 随着小数的增多,精度始终准确 ****

             对于精确数值计算时需要用此类型

             ecaimal能够存储精确值的原因在于其内部按照字符串存储。

日期类型: DATE TIME DATETIME TIMESTAMP YEAR

    作用 存储用户注册时间 文章发布时间 员工入职时间 出生时间 过期时间等

    YEAR 年份 (1901~2155)

    DATE 年月日

    TIME 时分秒

    now() sql 语言中自带的内容函 : 获取当前的事时间(根据数据类型)

    create table t10(born_year year,intClass datetime);

字符类型

    char 定长,简单粗暴 , 浪费空间 但是存取速度快

    varchar 变长 精准 节省空间 但是存取速度慢

length():查看字节数
char_length():查看字符数

  枚举和集合

 create table consumer(
id int,
name varchar(50),
sex enum('male','female','other') default 'male',
level enum('vip1','vip2','vip3','vip4'),#在指定范围内,多选一
fav set('play','music','read','study') #在指定范围内,多选多
);

    注意:在sql中使用tinyint(1)来表示boolean类型

完整性约束

  not null 与 default

    如果单独设置not null 不能插入空值

    如果既设置了not null 又指定default 可以插入空值 会执行default

  unique key

    单列唯一

create table t4(
id int not null,
name char(20) unique
); create table t4(
id int not null,
name char(20),
unique(name)
);
insert into t4(id,name) values(1,'alex');
insert into t4(id,name) values(1,'wusir');

    多列唯一   只要有一列相同 就不能插入(类似于且)

create table t5(
id int,
name char(20),
unique(id),
unique(name)
);

    联合唯一   全部相同时 不能插入(类似于或)

create table t6(
id int,
name char(20),
unique(id,name)
);

    应用场景 选课系统 一个学生可以选择多个课程 一个课程可以被多个学生选择

primary key

  化学反应 : not null + unique

  单列主键 不能为空 并且是唯一

# primary key 索引(针对于大量数据) 查询速度要快
create table t7(
id int primary key,
name varchar(10) unique
); create table t8(
id int not null unique,
name varchar(10) unique
);

  联合主键

create table t9(
id int,  
name varchar(10),
primary key(id,name)
);

auto_increment  约束 : 约束的字段为自动增长 约束的字段必须同时被key约束

create table student(
id int primary key auto_increment,
name varchar(20) not null,
sex enum('male','female') default 'male',
ip varchar(20) unique
); insert into student(name,sex,ip) values
('alex','female','127.0.0.5'),
('wusir','male','173.45.32.1');

  清空表 区分delete 和 truncate的差异:

    delete from t1 : 如果有自增的id 信息鞥的数据 仍然是以删除前的最后一样作为起始

    truncate table t1: 适用于删除数据量比较大 , 删除速度也比上一条快 且 直接从零开始.

foreign key

  外键  即关联两个表格

# 创建主表
create table dep(
# 主表id 设置成可以自动增长
id int primary key auto_increment,
# 设置部门名称为单列唯一
name char(10) unique,
# 部门描述 不能为空
dep_desc varchar(50) not null
); # 创建从表
create table emp(
eid int primary key auto_increment,
name char(10) not null,
age int not null,
dep_id int,
constraint fk_dep foreign key(dep_id) references dep(id)
on delete cascade
on update cascade,
); create table emp(
eid int primary key auto_increment,
name char(10) not null,
age int not null,
dep_id int,
constraint fk_dep foreign key(dep_id) references dep(id)
on delete cascade
on update cascade,
); insert into dep(name,dep_desc) values
('董事部','管理公司部门'),
('公关部','公关管理部门'),
('IT部门','IT管理部门'),
('财务部','财务管理部门'); insert into emp(name,age,dep_id) values
('alex',18,1),
('wusir',30,2),
('吴老板',20,3),
('马老板',18,4),
('邱老板',20,2),
('女神',16,3);

mysql数据类型 完整性约束 054的更多相关文章

  1. MySQL数据类型以及基本使用详解

    MySQL数据类型以及基本使用详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL服务器的主要组件 我们知道MySQL的主要组件主要是由服务端(mysqld)和客户端 ...

  2. MySQL表完整性约束

    =======MySQL表完整性约束====== 目录: 一.介绍 二.not null 与 default 三.unique 四.primary key 五.auto_increment 六.for ...

  3. mysql 数据类型

    1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节  范围(-128~127) smallint(m) 2个字节  范围(-32768~32767) mediumint(m) ...

  4. MySQL 数据类型 详解

    MySQL 数据类型 详解 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 My ...

  5. MySQL数据类型的验证

    CHAR char (M) M字符,长度是M*字符编码长度,M最大255. 验证如下: mysql)) default charset=utf8; ERROR (): ); use BLOB or T ...

  6. MySQL数据类型 int(M) 表示什么意思?详解mysql int类型的长度值问题

    MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MySQL 的时候,我还以为 int(3) ...

  7. 浅谈MySQL数据类型

    MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 一.数值类型 MySQL支持所有标 ...

  8. MySQL数据类型——数值类型

    1.1.1 整型 整型 占用字节 范围 范围 tinyint 1 -27~27-1 -128~127 smallint 2 -215~215-1 -32768~32767 mediumint 3 -2 ...

  9. 【转】MySQL数据类型和常用字段属性总结

    来源:http://www.jb51.net/article/55853.htm 这里先总结数据类型.MySQL中的数据类型大的方面来分,可以分为:日期和时间.数值,以及字符串.下面就分开来进行总结. ...

随机推荐

  1. 制作alipay-sdk-java包到本地仓库

    项目要用到支付宝的扫码支付,后台使用的maven 问了客服 官方目前没有 maven 的地址只能手动安装到本地了,如果建了maven 服务器也可以上传到服务器上 从支付宝官网上下载sdk 制作本地安装 ...

  2. mysql 数据库查询

    myspl   三部分  文件  服务  界面 查看数据库命令   show databases 创建数据库  create database  库名 删除数据库   drop database   ...

  3. vim的基本使用

    Vim 编辑器中设置了三种模式—命令模式.末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手.要想高效率地操作文本,就必须先搞清这三种 ...

  4. [leetcode] 1. Valid Palindrome

    leetcode的第一题,回文数判断. 原题如下: For example, "A man, a plan, a canal: Panama" is a palindrome. & ...

  5. 详解C#中的反射(转发)

    https://www.cnblogs.com/Stephenchao/p/4481995.html 两个现实中的例子:1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况 ...

  6. SQL Server分页模板

    SQL Server分页模板 WITH T AS ( SELECT ROW_NUMBER() OVER(ORDER BY AlbumId ) AS row_number, * FROM (SELECT ...

  7. 项目前端打包工具从 NEJ 切换成 webpack

    此文已由作者张磊授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 这里不讨论 NEJ 和 webpack 的优劣,仅从技术角度来探寻一下能否实现,以及实现的代价. 前言 上一篇 ...

  8. 达梦数据库(DaMeng)如何删除IDENTITY自增属性字段

    今天工作中使用到达梦数据库,要求删除具有IDENTITY自增属性的字段. 直接执行删除:ALTER TABLE <表名> DROP COLUMN <列名> CASCADE; 删 ...

  9. css3动画(animation)效果1-漂浮的白云

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. “全栈2019”Java第七十七章:抽象内部类与抽象静态内部类详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...