MySQL表及表内容的基本操作


DDL——create 、drop 、alter
DML——insert 、delect 、update
在这里插入图片描述

创建表

create table 表名(
	字段1 数据类型,		//当往表中插入数据的时候,没有插入该字段,该字段默认为null
	字段2 数据类型 default XX, //当往表中插入数据的时候,没有插入该字段,该字段默认为XX
	字段3 数据类型,
	......;
  • 数据类型
    • int 整数
    • bigint 长整型
    • float 浮点型
    • char 定长字符串
    • varchar 可变长字符串
    • date 日期类型
    • BLOB 二进制大对象 -存储图片、视频等流媒体信息
    • CLOB 字符大对象 - 存储较大文本 存储4G字符串
      在这里插入图片描述
  • char 和varchar的选择
    • 在实际开发中,当某个字段的数据长度不发生改变时,是定长的。性别、生日采用char
    • 当一个字段的数据长度不确定时,采用varchar:简介、姓名等
      在这里插入图片描述在这里插入图片描述

约束

  • constraint
  • 在创建表的时候,添加约束,可以保证数据的合法性、有效性、完整性
  • 约束种类
    • 非空约束 not null 约束字段不能为null
    • 唯一约束 unique 约束字段不能重复 ,但可以为null
    • 主键约束 primary key 约束字段不能为null ,不能重复
    • 外键约束 foreign key
    • 检查约束 check 【oracle支持该约束,mysql没有该约束】
      在这里插入图片描述

唯一性约束unique

  • 唯一性约束修饰的字段具有唯一性,不能重复,但可以为null
    -对一个字段添加唯一性约束:列级约束
    • 用户名添加唯一性约束
      在这里插入图片描述
  • 针对两个字段添加唯一性约束 :表级约束
    在这里插入图片描述

主键约束

  • 主键约束、主键字段、主键值
  • 一张表的主键约束只能有1个。
  • 主键分类
    • 按照主键的字段数量
      • 单一主键
      • 复合主键——多个字段联合为一个主键约束,违背三范式
    • 根据主键性质
      • 自然主键——主键是和业务没有关系的自然数。
      • 业务主键——主键值与业务挂钩,银行卡做主键,身份证号做主键。最好不要使用与业务挂钩的字段做主键,当业务变动是,需求更改,主键可能也需要更改。
drop table if exists t_user ;
create table t_user(
	no int primary key,
	name varchar(255),
	email varchar(255)
	//primary key(name);
);
insert into t_user (no,name,email)values(1,'zhangsan','zhangsan@163.com');
insert into t_user (no,name,email)values(2,'lisi','lisi@163.com');
insert into t_user (no,name,email)values(3,'wangwu','wangwu@163.com');

insert into t_user (no,name,email)values(3,'wangwu','wangwu@163.com');
//ERROR 1062 (23000): Duplicate entry '3' for key 'PRIMARY'
主键自增auto_increment
- id字段自动维护一个递增的数字,由1开始以1递增 **auto_increment**
drop table if exists t_user ;
create table t_user(
	id int primary key auto_increment,  
	name varchar(255)
);
insert into t_user (name) values ('a');
insert into t_user (name) values ('b');
insert into t_user (name) values ('c');

外键约束

  • foreign key (该表字段名) references 表名(字段名);
  • 外键值可以为null
  • 外键字段引用其他表的字段时,被引用的字段必须是主键?
    • 不是,引用其他表的字段具有唯一性约束就可以
      在这里插入图片描述在这里插入图片描述

删除表drop

  • drop table if exists t_student;
  • 如果t_student存在,就删除。

插入表 insert into…values…

  • insert into 表名(字段1,字段2,字段3…)values(值1,值2,值3)
    • 要求:字段的数量和值的数量相同,并且数据类型对应相同。
    • insert into 表名(字段1)values (值1)——仅插入字段1对应的值,其他值由建表时的语句确定,含有default的字段,采取默认值;没有default的字段默认为null。
  • 当一条insert语句执行成功之后,表格当中必然会多出一行记录,如果该行数据有NULL,那么后期也没有办法执行insert语句插入到该行。只能使用update进行更新
  • 将查询结果插入到一张表中
mysql> insert into t_student(no,name,sex,classno,brith) values (1,'zhangsan','1','gaosan1ban','1950-10-12');
Query OK, 1 row affected (0.02 sec)

mysql> select * from t_student;
+------+----------+------+------------+------------+
| no   | name     | sex  | classno    | brith      |
+------+----------+------+------------+------------+
|    1 | zhangsan | 1    | gaosan1ban | 1950-10-12 |
+------+----------+------+------------+------------+
1 row in set (0.02 sec)

在这里插入图片描述

表的复制

  • create table 表名 as select 查询语句

修改数据update… set

  • update
  • 语法格式
    • update 表名 set 字段1=值1,字段2=值2 …where 条件;
    • 注:没有条件,整张表数据全部更新
      在这里插入图片描述

删除数据delect from

  • delect from 表名 where 条件;
    • 没有条件全部删除
      在这里插入图片描述

删除大表数据truncate

  • truncate table 表名; //表被截断,不可回滚。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值