新建测试数据库:create database test_cour;
选择数据库:use 数据库名;
查看数据表:show tables;
创建数据表里面的字段(列)名:
create table 表名(
//列名 字符格式 约束
//注意末尾加逗号,最后一列末尾除外
uid int(32) primary key auto_increment,
//primary key 定义这个字段为主键。
//auto_increment 定义这个字段为自动增长,即如果INSERT时不赋值,则自动加1
uname varchar(32) ,
upassword varchar(32)
);
查看表结构:desc user;
写入内容在数据表中:insert into user(表名)values(‘1’,‘adc’,‘root’);
查看数据表数据:select * from 表名;
因为我的uid已经有自增的属性,也可以这样不填入内容
insert into user values(null,‘def’,‘admin’);
再新建一个数据表:student
注:not null 不允许为空;comment是备注信息。
利用:show full columns from student;查看表的整体情况它可以查看到字段的备注信息
向student表填入数据:insert into 表名 (‘字段1内容’,‘字段2内容’,‘字段3内容’);
跨表查询
- select 表1列名,表2列名 from 表1,表2 where 条件;
lg:select uname,sname from user,student where uid=1 and sid=2;
- 利用join来联合多表查询
inner join:代表选择的是两个表的交集部分。
left join:代表选择的是前面一个表的全部,即使右表没有对应匹配的记录,右表不足的地方用NULL填充
right join:代表选择的是后面一个表的全部,即使左表没有对应匹配的记录,左表不足的地方用NULL填充
插入一些新的数据在两个表中,以便区分这三个查询。
select 表1列名,表2列名 from 表1 inner/left/right join 表2 on 条件;
lg:select uname,sname from user inner join student on uid=sid;
lg:select uname,sname from user left join student on uid=sid;
lg:select uname,sname from user right join student on uid=sid;
跨库查询
其实和跨表查询差不多就在数据表前面加上数据库名
再新建一个数据库,数据库里面新建数据表,表里填入数据。
- select * from 数据库1.表1,数据库2.表2 where 条件;
lg: select * from test1_cour.username,test_cour.user where nid=uid;
2.利用join来联合多表查询。只举一例。和上面相差不远
select * from 数据库名1.数据表名1 inner join 数据库名2.数据表名2 on uid=nid;
lg:select * from test_cour.user inner join test1_cour.username on uid=nid;