数据库操作mysql

一、数据库操作
1、创建数据库
SQL>create database db_name ;
2、查看数据库
SQL>show database db_name ;
3、使用数据库
SQL>use db_name ;
4、删除数据库
SQL>drop database db_name ;

二、表结构的操作
1、创建表
SQL>create [temporary] table tb_name( 字段1 字段类型1 [not null] [primary key] [default '-'] [auto_increment] [unique key], ...) ;
2、查看表名
SQL>show tables ;
3、查看表结构
SQL>describe/desc tb_name ;   或   SQL>show columns in/from tb_name; 
4、删除表
SQL>drop table tb_name ;   或   SQL>drop [temporary] table [if exists] tb_name[,tb_name2...];
5、重命名表
SQL>rename name_old to name_new ;   或   SQL>alter table name_old rename name_new ;
6、重命名表字段
SQL>alter table 表名 change 旧字段  新字段 字段类型; 
7、修改表字段内容
SQL>alter table 表名 modify (字段名 字段类型 默认值 是否为空) ;
8、添加表字段
SQL>alter table 表名 add (字段名 字段类型 默认值 是否为空) ;
9、删除表字段
SQL>alter table 表名 drop cloumn (字段名) ;
10、复制表结构
SQL>create table tb_name_2 select * from tb_name_1 ;
11、复制表指定字段
SQL>create table tb_name_2 select 字段1, 字段2 from tb_name_1 ;
关键字:
1、temporary  临时
2、not null  不为空
3、primary key  主键
4、default  默认值
5、auto_increment  自增
6、unique key  唯一键
7、if exists  
8、column  列
9、modify  修改

三、表数据的操作
1、插入数据(所有)
SQL>insert into tb_name values(所有列的值) ;
2、插入数据(部分)
SQL>insert into tb_name(字段1, 字段2) values(字段1的值, 字段2的值) ;
3、复制表数据
SQL>insert into tb_name_1(字段1, 字段2) select 字段1, 字段2 from tb_name_2 ;
4、更新表某列的数据
SQL>update tb_name set 列名=新的值 ;
5、更新表指定条件的数据
SQL>update tb_name set 列名=新的值 where 条件 ;
6、删除表的所有数据
SQL>delete from tb_name ; 
7、删除表指定条件的数据
SQL>delete from tb_name where 条件 ;
注:delete删除的数据在提交之前能恢复。(commit: 提交数据 rollback: 回滚数据)

8、数据查询
select [distinct | all] 列名或* from tb_name
[where 条件]
[group by 列名]
[having 条件]
[order by 列名]
where中的条件表达式:
关系运算符: =、!=、>、<、>=、<=、<>
逻辑运算符: not、and、or
特殊运算符: in (在某个集合中)
not in (不在某个集合中)
between (在某个范围内,包含边界)
not between (不在某个范围内)
like (匹配) --通配符: '%'、'_'、'[]'-[]中的所有值或范围中的所有值、'[^]'-取反
not like (不匹配)
is null (为null)
is not null (不为null)
order by 关键字:按照升序或降序排列 (asc: 升序(默认)、desc: 降序)
关键字:
1、distinct  去除重复值
2、all  全部记录(包括重复值)
3、group by  按字段分组

MySQL常用复制表的方法:
1. 只复制表结构到新表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2;(不会复制旧表字段的主键类型和自增方式)
或   CREATE TABLE 新表 LIKE 旧表 ;(把旧表的所有字段类型都复制到新表)
2.复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM 旧表
3.复制旧表的数据到新表(假设两个表结构一样) 
INSERT INTO 新表 SELECT * FROM 旧表
4.复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

数据库的外连接:
1、左连接:left join 或 left outer join
概念:左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。
例子:select * from table1 left join table2 on table1.id=table2.id;
2、右连接:right join 或 right outer join
概念:右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
例子:select * from table1 right join table2 on table1.id=table2.id;
3、完整外部联接:full join 或 full outer join
概念:完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
例子:select * from table1 full join table2 on table1.id=table2.id;

数据库的内连接:
1、内连接:join 或 inner join
概念:内联接是用比较运算符比较要联接列的值的联接
例子:select * from table1 join table2 on table1.id=table2.id;
2、等价
A:select a.*, b.* from table1 a, table2 b where a.id=b.id;
B:select * from table1 cross join table2 where table1.id=table2.id;(注:cross join后加条件只能用where,不能用on)

数据库的交叉连接:
1、交叉连接:cross join (不带条件where...)
概念:没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。
例子:select * from table1 cross join table2;(table1和table2交叉连接产生3*3=9条记录)
2、等价
A:select * from table1,table2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值