update dept1 set loc = "wz",dname = "xueshenghui""/>

文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql常用语句 4 + mysql的约束(非空,唯一,主键,外键)

2015-03-29 01:56

关注

mysql常用语句 4 + mysql的约束(非空,唯一,主键,外键)

更新语句
update dept1 set loc = "wz",dname = "xueshenghui" where deptno = 10;

mysql> update dept1 set loc = "wz",dname = "xueshenghui" where deptno = 10;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from dept1;
+--------+-------------+---------+
| DEPTNO | DNAME | LOC |
+--------+-------------+---------+
| 10 | xueshenghui | wz |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
+--------+-------------+---------+
4 rows in set (0.00 sec)

更新语句格式:update 表名 set 字段="",字段="" where 字段="";

更新所有记录,不加条件即可

update dept1 set dname = "bangongshi", loc = "cqust" ;
mysql> update dept1 set dname = "bangongshi", loc = "cqust" ;
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4 Changed: 4 Warnings: 0

mysql> select * from dept1;
+--------+------------+-------+
| DEPTNO | DNAME | LOC |
+--------+------------+-------+
| 10 | bangongshi | cqust |
| 20 | bangongshi | cqust |
| 30 | bangongshi | cqust |
| 40 | bangongshi | cqust |
+--------+------------+-------+
4 rows in set (0.00 sec)

删除数据

delete from dept1 where deptno = 10;
mysql> delete from dept1 where deptno = 10;//这里如果不加条件会删除表中的所有数据。
和drop分开区别。drop是删除表,delete是删除数据。
Query OK, 1 row affected (0.01 sec)

mysql> select * from dept1;
+--------+------------+-------+
| DEPTNO | DNAME | LOC |
+--------+------------+-------+
| 20 | bangongshi | cqust |
| 30 | bangongshi | cqust |
| 40 | bangongshi | cqust |
+--------+------------+-------+
3 rows in set (0.00 sec)

  1. delete from 表名//删除小表数据,可以回滚。
    truncate table 表名//删除大表数据,不可回滚

约束:对字段进行合理的限制。
not null非空,unique 唯一,primary key 主键,foreign key外键。

非空约束
drop table if exists t_user;
create table t_user(

id int(3) not null default 100,
name varchar(7) default "hch"

);
insert into t_user (id,name) values(1,"h1");
insert into t_user (id,name) values(null,"h2");

//这里不能为空
mysql> insert into t_user (id,name) values(null,"h2");
ERROR 1048 (23000): Column "id" cannot be null

唯一约束,存在列级约束,表级约束
drop table if exists t_user;
create table t_user(

id int(3)   ,
name varchar(7),
unique(id,name)

);
insert into t_user (id,name) values(1,"h1");
insert into t_user (id,name) values(1,"h2");

//这里添加了唯一约束,
mysql> insert into t_user (id,name) values(1,"h2");
ERROR 1062 (23000): Duplicate entry "1" for key "id"
mysql>

mysql> create table t_user(
->
-> id int(3) unique ,
-> name varchar(7) unique//这里两个字段都添加约束,要求都不一样才可以成功。
-> );
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t_user (id,name) values(1,"h1");
Query OK, 1 row affected (0.01 sec)

mysql> insert into t_user (id,name) values(2,"h2");
Query OK, 1 row affected (0.00 sec)

mysql> create table t_user(
->
-> id int(3) ,
-> name varchar(7),
-> unique(id,name)//表级约束,插入数据要求两个联合起来唯一
-> );
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t_user (id,name) values(1,"h1");
Query OK, 1 row affected (0.01 sec)

mysql> insert into t_user (id,name) values(1,"h2");
Query OK, 1 row affected (0.00 sec)

主键(primary key)
按照数量分:单一,复合主键(不推荐)
按照性质:自然,业务主键(不推荐)
在实际开发中不要把业务中的某一个属性作为主键。
主键约束只能有一个。
作用:是一条数据的唯一标识
主键值
主键约束
主键字段

drop table if exists t_user;
create table t_user(

id int(3) primary key auto_increment ,
name varchar(7)

);
insert into t_user (name) values("h1");
insert into t_user (name) values("h2");
insert into t_user (name) values("h3");
insert into t_user (name) values("h4");
insert into t_user (name) values("h5");
insert into t_user (name) values("h6");

mysql> create table t_user(
->
-> id int(3) primary key ,
-> name varchar(7)
->
-> );
Query OK, 0 rows affected (0.02 sec)

mysql> insert into t_user (id,name) values(1,"h1");
Query OK, 1 row affected (0.00 sec)
//主键不能重复,而且不能为空
mysql> insert into t_user (id,name) values(1,"h2");
ERROR 1062 (23000): Duplicate entry "1" for key "PRIMARY"

mysql> create table t_user(
->
-> id int(3) primary key auto_increment ,//主键自增,这里主键只是一个标识作用
-> name varchar(7)
->
-> );
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t_user (name) values("h1");
Query OK, 1 row affected (0.01 sec)

mysql> insert into t_user (name) values("h2");
Query OK, 1 row affected (0.00 sec)

mysql> insert into t_user (name) values("h3");
Query OK, 1 row affected (0.00 sec)

mysql> insert into t_user (name) values("h4");
Query OK, 1 row affected (0.00 sec)

mysql> insert into t_user (name) values("h5");
Query OK, 1 row affected (0.00 sec)

mysql> insert into t_user (name) values("h6");
Query OK, 1 row affected (0.00 sec)

mysql> select * from t_user;
+----+------+
| id | name |
+----+------+
| 1 | h1 |
| 2 | h2 |
| 3 | h3 |
| 4 | h4 |
| 5 | h5 |
| 6 | h6 |
+----+------+
6 rows in set (0.00 sec)

外键(foreign key)
外键约束表现出来两张表存在父子关系。
在建表的时候
例如:t_teacher(父表)
t_id t_name
1 laoyu
2 laodu
3 niexin
4 ruanqidong

t_student(子表)
stu_id stu_name t_name(添加外键约束)
1 h1 laoyu//这里的数据必须是父表中的数据。以此获得联系
2 h2 laoyu
3 h3 laoyu
4 h4 laodu

在创建表的时候,先创建父表,再创建子表
添加数据,先添加父表,再添加子表
删除数据,先删除子表中的数据,再删除父表中的数据
删表,先删除子表,再删除父表
drop table if exists t_teacher2;
create table t_teacher2(
t_id int(2) primary key,
t_name1 varchar(10)
);
drop table if exists t_student2;
create table t_student2(
stu_id int(2) ,
stu_name varchar(10),
t_name2 int (10),
foreign key (t_name2) references t_teacher2(t_id)//这里的字段一般是主键,至少具有唯一性。
外键值可以为null

);

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯