1.操作数据库语句
1.1 显示所有的数据:show databases;
1.2 创建数据库:create database databasename;
1.3 删除数据库:create database databasename;
1.4备份数据库:mysqldump –uroot –p1234 databasename>本地保存的路径
1.5恢复数据库:mysql –uroot –p1234 databasename<本地保存的路径
1.6查看所在数据库:select database();
2.操作数据表语句
2.0 查询所有的表:show tables;
2.1 创建表:create table tablename(
字段1名称 字段1类型,
字段n名称 字段n类型(最后一项,不加逗号)
);
2.2 修改表:
2.2.1 添加字段: alter table 表名 add 字段名 字段类型;
2.2.2 修改表名: alter table 表名 rename to 新表名;
2.2.3 修改字段类型: alter table表名modify 字段名 字段新类型;
2.2.4 修改字段: alter table表名change 字段名 新字段名 新类型;
2.2.5 删除字段: alter table 表名 drop 字段名;
2.2.6 删除表: drop table 表名;
2.2.7 设置主键:
create table 表名(
字段1名称 字段1类型 primary key,
字段2名称 字段类型
);
create table 表名(
字段1名称 字段1类型 primary key,
字段2名称 字段2类型,
primary key(字段1名称)
);
create table 表名(
字段1名称 字段1类型,
字段2名称字段2类型
);
alter table 表名 add 字段名 primary key;
2.2.8设置自增长:
create table 表名(
字段1名称 字段1类型 primary key auto_increment,
字段2名称 字段2类型
);
//注意:自增长是对主键且数据类型为数值型的字段而言的
2.2.9 设置约束条件:unique(唯一性),not null(非空),default(默认)
2.3 查询表:
2.3.1 查询所有数据: select * from 表名
2.3.2 查询符合字段类型(数值)的数据: select * from 表名 where 字段名=id;
2.3.3 查询符合字段类型(字符串)的数据:select * from 表名 where 字段名=‘str’;
2.3.4 查询含有某字符的数据:select * from 表名 where 字段名 like ‘%r%’;
2.3.5 查询不含某字符的数据:select * from 表名 where 字段名 not like ‘%r%’;
2.3.6 查询同时满足多个条件的数据:
Select * from 表名 where id in(条件1,条件2);
Select * from 表名 where 条件1 and 条件2;
2.3.7 查询满足多个条件之一的数据:
Select * from 表名 where 条件1 or 条件2;
truncate and delete的区别:
(1)truncate既删除表内数据,也删除表的结构,删除表结构后,会重建表的结构
(2)delete只删除表内的数据
having与 where的区别:
(1)having后面跟函数,having是对结果的筛选
(2)where后面跟字段
关键字的书写顺序:
select,from,where,group by,having,order by
关键字的执行顺序:
【from】 【where,group by,having 条件】 【select】 【order by】
内连接:
inner join on(内连接),可以多表进行内连接
demo:
//内连接示例
select s.sname, c.cname from sinfor s inner join scinfor sc on s.sid=sc.sid
inner join cinfor c on sc.cid=c.cid;
结果: +-------+---------+
| sname | cname |
+-------+---------+
| s1 | java |
| s2 | java |
| s1 | android |
| s3 | php |
+------+--------+
外连接:
(1)left join on(左外连接),以左边的表为基表
demo:
select s.sname, c.cname from sinfor s left join scinfor sc on s.sid=sc.sid
left join cinfor c on sc.cid=c.cid;
输出结果:
+-------+---------+
| sname | cname |
+-------+---------+
| s1 | java |
| s1 | android |
| s2 | java |
| s3 | php |
| s5 | NULL |
+-------+---------+
(2)right join on(右外连接),以右边的表为基表
demo:
select s.sname, c.cname from sinfor s right join scinfor sc on s.sid=sc.sid
right join cinfor c on sc.cid=c.cid;
输出结果:
+-------+---------+
| sname | cname |
+-------+---------+
| s1 | java |
| s2 | java |
| s1 | android |
| s3 | php |
| NULL | C# |
+-------+---------+
附sql语句:
表1 sinfor (学生表):
create table sinfor(
sid int primary key,
sname varchar(32)
);
表2 scinfor(选课表):
create table scinfor(
sid int,
cid int,
primary key(sid,cid),
foreign key(sid) references sinfor(sid),
foreign key(cid) references cinfor(cid)
);
表3 cinfor (课程表):
create table cinfor(
cid int primary key,
cname varchar(32)
);
insert into sinfor values(1, 's1');
insert into sinfor values(2,'s2');
insert into sinfor values(3,'s3');
insert into sinfor values(4,'s5');
insert into cinfor values(1,'java');
insert into cinfor values(2,'android');
insert into cinfor values(3,'php');
insert into cinfor values(4,'C#');
insert into scinfor values(1,2);
insert into scinfor values(2,1);
insert into scinfor values(3,3);
insert into scinfor values(1,1);
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。