关于约束的增删改查、关于数据表的管理和关于DML数据操作(增删改查)

1.关于约束的增删改查的一些整理

1.给表追加主键约束

alter table 表名 add primary key (字段名);

2.删除主键约束

alter table 表名 drop primary key;

3.默认情况下AUTO_INCREMENT 的开始值是1,如果希望修改开始值不为1,可以使用如下SQL:

ALTER TABLE 表名 AUTO_INCREMENT = 开始值;

4.在建表时加联合主键

CREATE table myunion(
mid int,
mname varchar(10),
maddress VARCHAR(10),
-- constraint 联合主键约束名 PRIMARY key (字段名1,字段名2,......)
constraint uk PRIMARY key (mid,mname)
);

5.追加唯一约束

alter table 表名 add unique(列名);

6.删除唯一约束

alter table 表名 drop index 列名;

7.追加非空/空约束

alter table 表名 modify 列名 数据类型 not null/null;

关于约束的增删改查、关于数据表的管理和关于DML数据操作(增删改查)_第1张图片

8.删除非空约束

alter table 表名 modify 列名 数据类型 null;

9.添加外键约束

1)在建表时添加外键约束,这里建议在添加外键约束时使用constraint关键字给外键约束添加一个名字,方便后面做外键删除的操作

-- 建立一个课程表,引用讲师表的编号字段
CREATE table mycourse(
cid int PRIMARY KEY auto_increment,
cname VARCHAR(20),
tid int,
-- 添加外键约束,利用constraint关键字自定义约束名
constraint fk_mycourse foreign key(tid) references myteacher(tid)
);
​

2)-- 事后追加外键约束

ALTER TABLE mycourse add constraint fk_mycourse1 FOREIGN key(tid) references myteacher(tid);

10.删除外键约束(关于外键约束可以查看我的主页,其中一篇文章—“如何删除外键约束”主要介绍了如何删除外键约束)

1)先查看外键约束名

查看外键约束有多种方式,第一种,前提:如果是在建表时或者事后添加的外键给起了名字,

可以通过SHOW INDEX IN 表名;

第二种通过show CREATE TABLE 表名 查看建表语句;

如果在建表时,没有自定义外键的名字,系统会自动添加,第一种和第二种方法可能不适用,不同的客户端可尝试一下,不行的话通过找设计表—外键 查看外键名称

2)删除外键约束

ALTER TABLE mycourse drop foreign key fk_mycourse1;

2.关于数据表的管理

1.查看某个数据库中的所有表

show tables;

2.查看表结构

desc 表名;

3.查看创建表的SQL语句

SHOW CREATE TABLE 表名;

4.同时复制表结构和数据

CREATE TABLE 新表名 查询语句;

5.删除表

drop table 表名;

6.为已经存在的表添加新列

alter table 表名 add 列名 类型;

ALTER TABLE student ADD hobby VARCHAR(100);

7.修改已经存在的列的数据类型

alter table 表名 modify 列名 新的数据类型;

例:将student表中的爱好列的数据类型扩充到VARCHAR(200)
ALTER TABLE student MODIFY hobby VARCHAR(200);  

8.修改列名

alter table 表名 change 旧列名 新列名 类型;

9.删除列

alter table 表名 drop 列名;

10.修改表名

pename table 表名 to 新表名;

11.修改字符集

alter table 表名 character set 字符集;

例:将sutden2表的编码修改成gbk  
ALTER TABLE student2 CHARACTER SET gbk;

12.截断表

截断表的作用是把原来的表摧毁,重新创建一个结构和原来一模一样的新表,语法如下:

truncate table 表名;

TRUNCATE TABLE table;

3.关于DML数据操作(增删改查)

1.插入数据

INSERT INTO 表名 ( 列名1 ,列名2, ......列名n ) VALUES (值1, 值2, ... 值n),(值1, 值2, ... 值n),(值1, 值2, ... 值n),......;

2.插入日期值

1)sysdate();

2)now();

3.通过子查询插入多行数据

INSERT INTO 表名 (列名1, 列名2, 列名3…) 查询语句;

4.修改数据

update 表名 set 列名=值 where ;

5.删除所有行

delete from 表名;

6.删除某行

delete from 表名 where ;

你可能感兴趣的:(MySQL约束的分类,数据操作的分类,sql,数据库)