主键:
主键就是在一个数据表中可以唯一标识该表中的每一条信息。
比如我们上个数据表
很显然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 < 表名 >;
去重
过滤数据