一、创建使用数据库
1.创建数据库aa
create database aa;
2.使用数据库aa
use aa;
3.查看所有数据
show databases;
4.创建工作表a1,包含id,name两列,id类型为整型,name为长字符,长度为50
create table a1(
id int,
name varchar(50));
5.插入数据,1号,姓名为你自己的姓名
insert into a1(id,name) values(1,'yy');
7.查看表的属性
desc a1;
8.查看表格a1的内容
select * from a1;
10.删除编号为1的数据
delete from a1 where id=1;
11.查看数据库aa的所有工作表
show tables from aa;
12.查看当前所使用的数据库
select database();
6.查看表中所有的索引
show index from 表名;
二、表的约束
1.含义,什么是约束?
一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性
列名 数据类型 约束
语法 : 列名 数据类型 约束
①NOT NULL:非空,用于保证该字段的值不能为空
比如姓名、学号等
id int not null,
②default:默认值,用于保证该字段有默认值 比如性别,年龄
age int default 18,
③primary key:主键,用于保证该字段的值具有唯一性,并且非空。在一个表里面最多设置一个主键,比如学号、员工编号等
sid int primary key,
④unique:唯一,用于保证该字段的值具有唯一性,可以为空 ,比如座位号,身份证号码
seat int unique,
⑤check:[检查约束mysql中不支持]比如年龄、性别
ssex char(5) check(ssex=‘男’ or ssex=‘女’),
⑥foreign key:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值
在从表添加外键约束,用于引用主表中某列的值。
比如学生表的专业编号,员工表的部编号,员工表的工种编号
⑦auto_increment:可以约束任何一个字段,从1开始递增,插入数据时不能使用在有递增约束的列名
外键语法 :
4.为majorid列加外键约束,约束名为fk_stuinfo_major :
foreign key(当前表中的外键字段)references 外键指向的表(外键指向表的主键)
例:foreign key(id) REFERENCES major(id);
三、什么时候添加约束?
创建表时
1、在每列的最后面添加:
create table T_student(
stud_id varchar(10) primary key,
mobile varchar(11) unique
/*添加方法:列名 数据类型 约束类型*/
);
2、在所有列的最下面添加:
create table T_student(
stud_id varchar(10),
mobile varchar(11),
CONSTRAINT pk PRIMARY key(stud_id),
CONSTRAINT uq unique(mobile)
/*添加方法:constraint 约束名 约束类型(列名)*/
);
修改表时
alter table 表名 add 字段名 字段类型 约束;
3、添加外键约束语法:
alter table 表名 add [constraint 外键名] foreign key(要设置的外键字段名字) references 指向的主表(指向的字段名字)
例:alter table stuinfo foreign key(couseid) references course(id);
四、修改约束
1、修改列级约束:
alter table 表名 modify 字段名 字段类型 约束;
2、添加约束:
alter table 表名 add 字段名 字段类型 约束;
3、在指定字段后面添加约束:
alter table + 表名 + add + 字段名 + 字段类型 + after + 要跟随的字段名
4、修改字段名:
alter table 表明 change 原字段名 新字段名 数据类型
五、删除约束
#1.删除非空约束
ALTER TABLE 表名 MODIFY 列名 类型 NULL;
#2.删除默认约束
ALTER TABLE 表名 MODIFY 列名 类型;
#3.删除主键
ALTER TABLE 表名 DROP PRIMARY KEY;
#4.删除唯—
ALTER TABLE 表名 DROP INDEX 列名;
#5.删除外键
ALTER TABLE 表名 drop foreign key 外键名;
六、表的复制
1.仅辅助表的结构:
create table 新表表名 like 被复制的表的表名;
2.复制表的结构和数据:
create table 新表表名 select * from 被复制的表的表名;
3.只复制部分数据且满足指定条件:
create table 新表名 select 要复制的列的列名(可以是多列) from 被复制表表名 where 要复制的数据
例子:create table a2 select ID,name from a1 where ID=901;
仅复制指定列(字段)结构:
create table 新表名 select 要复制列的列名 from 被复制的表 where 0;
复制指定列(字段)结构+内容
create table 新表名 select 要复制列的列名 from 被复制的表;