目录
外键约束 foreign key ... references ...
order by ... desc 从大到小排序。asc升序
full join 全连接-mysql不支持-使用union代替
函数avg(平均值), count(统计个数),max(最大值),min(最小值)
把字段里的值转换为 大写ucase( ) 小写lcase( )
格式:
create database 数据库名;
案例:
create database text;
查询以有的数据库
查询以有的数据库:
show databases;
指定一个数据库
格式:
use 数据库名;
案例:
use test;
创建表
格式:
create table 表名(
类型 ...;
...
);
案例:
create table test(
id int,
name varchar(20)
);
查看表的结构
格式:
describe 表名;
案例:
describe text;
Field:字段
Type: 字段的类型
Null: 是否允许为空
Key: 约束
Default:默认值
Extra: 其他
增删改查
格式:
增:insert into 表名 values (字段1,字段2....);
删:delete from 表名 where 条件;
改:update 表名 set 字段名 where 条件 ;
查:select * from 表名;
案例:
-- 增删改查
# 增
insert into text values('七七','女','2000-1-1');
# 删
delete from text where name='七七';
# 改
update text set name='伞兵nb' where sex='男';
# 查
select * from text;
主键约束
案例:创建表时添加主键
该id 添加了主键约束,就是id的数据是不可重复的、唯一的、并且不能为空。
关键字:primary key
create table test(
id int primary key,
name varchar(20)
);
联合主键
案例:创建表时添联合主键
create table user2(
id int,
name varchar(20),
pwd varchar(20),
primary key(id,name)
);
联合主键的字段,添加数据时都不能为空
而且主键联合的数据内容不能被重复
例如:
insert into user2 values(1,'张三','666');-- 成功
insert into user2 values(1,'张四','666');-- 成功
insert into user2 values(1,'张四','666');-- 失败
自增约束
案例:创建表时添加主键自增
关键字:auto_increment
create table user3(
id int primary key auto_increment,
name varchar(20)
);
自增: 这里只添加的名字 id是自增
insert into user3 (name) values('张三');-- 成功id自增
insert into user3 (name) values('张三');-- 成功id自增
alter add 添加字段
案例:给表添加字段
格式:alter table 表名 add 字段名称 字段类型;
关键字:alter add
create table user3(
id int,
name varchar(20)
);
alter table user3 add passtest int(4); --添加成功
alter add 添加主键
在我们创建表时忘记设置主键
create table user3(
id int,
name varchar(20)
);
案例:给关键字加上索引
格式:alter table 表名 add primary key(字段名称);
例子:
alter table user3 add primary key(id);-- 设置id主键成功
drop 删除主键+删除字段
create table user4(
id int primary key,
name varchar(20)
);
alter table user4 drop primary key;--删除了id的主键
alter table user4 drop id; --删除了id
alter modify修改字段类型
create table user4(
id int primary key,
name varchar(20)
);
格式:alter table 表名 modify 字段名 类型;
alter table user4 modify name int(20);
alter change修改字段名
create table user4(
id int primary key,
name varchar(20)
);
格式:alter table 表名 change 字段名 新的字段名 类型; 这里类型也可以修改为别的
alter table user4 change name nb varchar(25);
唯一约束 unique
格式:unique(字段名)
表示这个字段插入的内容不可以有重复数据
create table user5(
id int primary key auto_increment,
name varchar(20),
unique(name)
);
insert into user5 values(1,'牛B'); -- 成功
insert into user5 values(2,'牛B'); -- 失败
非空约束not null,默认约束default null
not null:插入数据时不能为空,非空约束
defaulr null:不插入这个字段数据 默认为空
也可以写 default 1,
不插入这个字段默认 为1
create table user3(
id int,
name varchar(20)not null,
pwd varchar(20)default null
);
外键约束 foreign key ... references ...
一个表中的 foreign key 指向另一个表中的 primary key
需要创建两张表 子表key引入父类key
父表的外键id
create table a(
id int primary key,
name varchar(20)
);
create tabke b(
id int primary key,
name varchar(20),
a_id int,
foreign key(a_id)references a(id)
);
insert into a values(1,'小李');
insert into b values(1,'张三',1);
delete from a where id = 1; 删除失败,因为子类a_id 有数据
delete from b where a_id = 1; 删除成功