楼主: 于家崎
573 0

[学习笔记] 【学习笔记】数据分析706 MySQL(下) MySQL数据库常用约束条件 主键约束(pr ... [推广有奖]

  • 0关注
  • 0粉丝

硕士生

34%

还不是VIP/贵宾

-

威望
0
论坛币
940 个
通用积分
22.6174
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
700 点
帖子
124
精华
0
在线时间
1 小时
注册时间
2020-6-10
最后登录
2020-8-27

楼主
于家崎 发表于 2020-7-7 08:55:01 来自手机 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据分析706 MySQL(下)
MySQL数据库常用约束条件

主键约束(primary key)

每个表中只能有一个主键;

主键值须非空不重复;

可设置单字段主键,也可设置多字段联合主键;

联合主键中多个字段的取值完全相同时,才违反主键约束

添加主键约束:列级添加主键约束:create table <表名> (<字段名1> <字段类型1> primary key,……<字段名n> <字段类型n>);

表级添加主键约束:create table <表名>(<字段名1> <字段类型1>,......<字段名n> <字段类型n>,[constraint 主键约束名] primary key(字段名1[,字段名2,...字段名n]));

唯一约束(unique)

指定字段的取值不能重复,可以为空,但只能出现一个空值;

添加唯一约束:列级添加唯一约束:create table <表名> (<字段名1> <字段类型1> unique,……<字段名n> <字段类型n>);

表级添加唯一约束:create table <表名> (<字段名1> <字段类型1,……<字段名n> <字段类型n>,[constraint 唯一约束名] unique (字段名1[,字段名2...字段名n]));

自动增长列(auto_increment)

指定字段的取值自动生成,默认从1开始,每增加一条记录,该字段的取值会加1;

只适用于整数型,配合主键一起使用;

创建自动增长约束:create table <表名> (<字段名1> <字段类型1> primary key auto_increment,……<字段名n> <字段类型n>);

非空约束(not null)

字段的值不能为空;

创建非空约束:create table <表名> (<字段名1> <字段类型1> not null,……<字段名n> <字段类型n>);

默认约束(default)

如果新插入一条记录时没有为该字段赋值,系统会自动为这个字段赋值为默认约束设定的值;

创建默认约束:create table <表名> (<字段名1> <字段类型1> default value,……<字段名n> <字段类型n>);

外键约束(foreign key)

在一张表中执行数据插入、更新、删除等操作时,DBMS都会跟另一张表进行对照,避免不规范的操作,以确保数据存储的完整性。

某一表中某字段的值依赖于另一张表中某字段的值;

主键所在的表为主表,外键所在的表为从表;

每一个外键值必须与另一个表中的主键值相对应;

创建外键约束:create table <表名> (<字段名1> <字段类型1>,……<字段名n> <字段类型n>,[constraint 外键约束名] foreign key(字段名) references <主表>(主键字段));



修改数据表

修改数据库中已经存在的数据表的结构

修改表名:alter table 原表名 rename 新表名;

修改字段名:alter table 表名 change 原字段名 新字段名 数据类型 [自增/非空/默认] [字段位置];

修改字段类型:alter table 表名 modify 字段名 新数据类型 [自增/非空/默认] [字段位置];

添加字段:alter table 表名 add 新字段名 数据类型;

修改字段的排列位置:

alter table 表名 modify 字段名 数据类型 first;

alter table 表名 modify 要排序的字段名 数据类型 after 参照字段;

删除字段:alter table 表名 drop 字段名;



插入数据

字段名与字段值的数据类型、个数、顺序必须一一对应

指定字段名插入:

insert into 表名(字段名1[,字段名2,...]) values(字段值 1[,字段值 2,...]);

不指定字段名插入:

insert into 表名 values(字段值 1[,字段值 2,...]);

需要为表中每一个字段指定值,且值的顺序须和数据表中字段顺序相同

批量导入数据:

(路径中不能有中文,并且要将‘\\’改为‘\\\\’或‘/’)

load data infile ‘文件路径.csv’into table 表名[ fields terminated by ‘,\' ignore 1 lines];

show variables like \'%secure%\';-- 查看安全路径



更新数据

update 表名 set 字段名1=字段值1[, 字段名2=字段值2[,…]][ where 更新条件];

set sql_safe_updates=0; -- 设置数据库安全权限,从而执行批量操作



删除数据

delete from 表名[ where 删除条件];

truncate 表名;(与delete from 表名一样,都是删除表中全部数据,保留表结构)

delete和truncate的区别:

delete可以添加where子句删除表中部分数据,truncate只能删除表中全部数据

delete删除表中数据保留表结构,truncate直接把表删除(drop table)然后再创建一张新表(create table),执行速度比delete快。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:SQL数据库 MySQL 约束条件 数据分析 学习笔记

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 07:41