当前位置:Gxlcms > 数据库问题 > 继续体验sql之数据操作和约束

继续体验sql之数据操作和约束

时间:2021-07-01 10:21:17 帮助过:32人阅读

  主键就是在一个数据表中可以唯一标识该表中的每一条信息。

比如我们上个数据表

技术图片

 

 很显然id可以成为主键,因为这里面只有id不会重复

 

那么如何指定某一个字段为主键?

两种方法:1、在创建数据表的时候声明   2、创建后指定

<字段名> <数据类型> PRIMARY KEY [默认值]
[CONSTRAINT <约束名>] PRIMARY KEY [字段名]

 

mysql> CREATE TABLE tb2
    -> (
    -> id INT(10) PRIMARY KEY,
    -> name VARCHAR(20)
    -> );

技术图片

 

 

创建后修改主键

mysql> ALTER TABLE tb1 ADD PRIMARY KEY(id);

技术图片

 

 

设置联合主键(将id class设为主键)

mysql> CREATE TABLE tb4
    -> (
    -> id INT(10),
    -> name VARCHAR(20),
    -> class VARCHAR(20),
    -> PRIMARY KEY(id,class)
    -> );

技术图片

 

 

 

删除主键约束

ALTER TABLE <数据表名> DROP PRIMARY KEY;

技术图片

 

 

 

主键自增长

比如序列号,每多一个数据进来,序列号自动+1

mysql> CREATE TABLE tb5
    -> (
    -> id INT(10) PRIMARY KEY AUTO_INCREMENT,#主键自增长
    -> name VARCHAR(20) NOT NULL
    -> )AUTO_INCREMENT=100; #设置主键自增长初始值(可以不加这句)

技术图片

 

 

 

唯一约束

指所约束的字段值不能重复出现,比如学号,不可以重复

设置唯一约束

<字段名> <数据类型> UNIQUE

添加唯一约束

ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>);

删除唯一约束

ALTER TABLE <表名> DROP INDEX <唯一约束名>;

技术图片

 

 

 

默认值

在创建数据表示,设置默认值,比如工科学院性别默认值可以设置为男

创建表时设置默认值

<字段名> <数据类型> DEFAULT <默认值>;

修改时添加默认值

ALTER TABLE <数据表名>
CHANGE COLUMN <字段名> <数据类型> DEFAULT <默认值>;

删除默认值

ALTER TABLE <数据表名>
CHANGE COLUMN <字段名> <字段名> <数据类型> DEFAULT NULL;
mysql> CREATE TABLE tb7
    -> (
    -> id INT(10),
    -> name VARCHAR(20),
    -> sex VARCHAR(5) DEFAULT man
    -> );

技术图片

 

mysql> ALTER TABLE tb7
    -> CHANGE COLUMN sex sex VARCHAR(5) DEFAULT NULL;

技术图片

 

 

 

非空约束

可以设置某字段比如有值,否则这条数据就无效。比如上例的名字

创建表时设置非空约束

<字段名> <数据类型> NOT NULL;

修改表时添加非空约束

ALTER TABLE <数据表名>
CHANGE COLUMN <字段名>
<字段名> <数据类型> NOT NULL;

删除非空约束

ALTER TABLE <数据表名>
CHANGE COLUMN <字段名> <字段名> <数据类型> NULL;

 

 

插入数据

拿我们刚才的tb7举例

我要插入一条数据 id :1    name :xiaowang   sex :man

mysql> INSERT INTO tb7
    -> VALUES(1,xiaowang,man);

技术图片

 

那如果我不想按照这个顺序呢,可以指定自己的顺序,比如 name id sex

mysql> INSERT INTO tb7
    -> (name,id,sex)
    -> VALUES(xiaoliu,2,man);

技术图片

 

 

 

修改数据

UPDATE <表名> SET 字段 1=1 [,字段 2=值 2… ] [WHERE 子句 ]
[ORDER BY 子句] [LIMIT 子句]

 

 

 

 

 

查看表中所有字段

SELECT * FROM 表名;

查看指定字段

SELECT < 列名 > FROM < 表名 >;

 

去重

过滤数据

 

继续体验sql之数据操作和约束

标签:数据类型   不能   image   声明   自己的   date   man   主键   def   

人气教程排行