Mysql第三章 创建数据库和表
1、本章目标
创建数据库和表
查询
2、创建数据库
语法:
create database 数据库名;
删除:
drop database 数据库名;
使用:
use 数据库名;
注意:
1、创建数据库时,我们使用判断数据库是否存在
create database if not exists 数据库名;
2、删除数据库时,我们使用判断数据库是否存在
drop database if exists 数据库名;
3、创建表
语法:
creata table 表名(
字段1 类型1 特征,
字段2 类型2 特征.......
)
删除:
drop table 表名:
复制:
create table 表名1 select * from 表名2;
注意:不能复制主键结构
create table 表名1 like 表2
注意:不能复制表数据
4、修改表
添加字段:
alter table 表名 add 字段名 数据类型 特征;
例如:alter table userInfo add address varchar(50)
删除字段:
alter table 表名 drop 字段名
修改字段:
alter table 表名 change 旧字段名 新字段名 新数据类型 新特征;
添加主键:
alter table 表名 add primary key(字段名)
修改表名:
alter table 表名 rename to 新表名
5、表数据操作
1、新增
insert into 表名 [字段1,字段2...] values(值1,值2.....)
注意:
对于自增列,怎么赋值?
把自增列的值指定为0或null
显示指定列名的方式(故意去掉自增列)
对于默认值
把字段的值写出:default
显示指定列名的方式(故意去掉默认值的列)
2、批量新增
insert into 表名1 select * from 表名2
注意:表1和表2的结构一样
3、修改
update 表名 set 字段1=新值,字段2=新值.... where 条件
注意:如果没有where,表示修改表中所有的数据
4、删除
delete from 表名 where 条件
注意:
如果没有where,表示删除表中所有的数据
delete from 表名和trancate table 表名 :
1、都能删除表中的所有数据
2、delete不会释放表空间,trancate会释放表空间
3、trancate删除速度更快
4、对于自增列,delete删除后会继续计数,trancate会从头开始计数
5.查询
select * from 表名
6.排序,分组
order by 字段 asc/desc
group by 字段
7.限制行数(分页)
limit 行下标,行数 --第几行开始,查询几条数据,下表从0开始计算
6.连接查询
内连接
select * from 表一 inner join 表2 on 条件关联 where 条件
效果:就是查询出能够通过条件关联上的数据
笛卡尔查询
select * from 表1,表2......where 条件
左外连接
select * from 表一 left join 表2 on 条件关联 where 条件
效果:把卸载左边的表的数据全部查询出来,右边表的数据只能查询出能够关联的
右外连接
select * from 表一 right join 表2 on 条件关联 where 条件
效果:把卸载右边的表的数据全部查询出来,左边表的数据只能查询出能够关联的
7.子查询
通常子查询出现在where 条件后面
exists 后面跟上查询语句,若能够查询到数据,表示真,否则表示假
注意:
对于修改和删除,子查询同样适用
8. 函数
感觉和 java 一样 都能用

浙公网安备 33010602011771号