mysql

mysql的基本操作:

show databases;  查询当前mysql自带的数据库
创建新库:
create database 库名;
create datebase if not exists 库名;
查询创建库的字符集: show create database 库名
修改字符集:alter database 库名 default character set 字符集名称
删除库:drop database 库名
    drop database if  exists 库名

数据类型:


int 最大长度11位数
 int(字符数)
varchar(最大字符数255个长度)
date:仅仅是日期类型
datetime:日期时间类型
timestap:(系统的一个瞬时时间)
double:小数类型
    double(几位数,小数点后保留的位数)
clob:大字符类型
    支持"大文本"
blob:大字节类型
    最大支持4G;

数据库的DDL语句:数据定义语言

DDL语句建表:
创建表之前必须声明那个库
use 库;
不使用库会默认mysql;
create table 表名(
    字段名称1 字段类型1,
    字段名称2 字段类型2,
    ..........
)
查询当前库中有哪些表  show tables;

查询:desc 表名;

修改表的字段:

alter table 表名 change 旧字段名称 新的字段名称 以前的数据类型;


修改表的字段类型:
alter table 表名 modify 字段名称 新的字段类型;

添加:给表中增加一个新的字段:
alter table 表名 add 字段名称 字段类型;

删除表:
drop table 表名;
drop table if exists 表名;

删除表的字段:
alter table 表名 drop 字段名;

复制表:

create table 新表名 like table;

查看表的文件路径:
show variables like '%datadir%';

sourse 导入sql文件

DML数据操作语言:
insert delete update select(重点)

select *from table  不建议使用
insert  into 表名 values()
修改        
update  表名 set (字段名称 = 值) where 条件; 可以修改多个

delete from 表名 where 条件;带条件删除记录(使用的非业务字段id删除)

truncate table 表名:删除全表数据;

共同点:都可以删除全表记录
delete仅仅删了记录表还存在;它针对id(非业务字段;设置主键并且自增)它不影响增长主键的值

truncate table删除后创建一张新表,影响主键的增长
primary key auto_increment 设置自动增长;

DQL数据库的查询语句:

select 字段名称 from 表名;

查询全部字段时,给字段取一个别名 as '别名名称' ,as可以省略

表可以起别名: 访问字段时可以  别名.字段名称

字段冗余: select  distent 字段值 from 表名 

条件查询: 使用  赋值运算符 = ,比较运算符 <,<=,>=,>,!= ///java  where 
mysql推荐使用and个or
还可以字段名称 between  ......   and  .......包含两端
不等于<>mysql用法
优化为  字段名称  in(值1,值2,值3,)
mysql不支持"=null"判空;使用语法是 is null//不为空是 is not null


mysql提供函数ifnull(字段名称,值) 如果字段名称的值是null给个默认值

模糊查询:  关键字 like  '%character%'
语法 select 字段列表 from 表名 where 字段名称  like 'xxx%'

select 字段列表 from 表名 where 字段名称  like '_'

%代表多个字符  // _代表单个字符


聚合函数: 单行单列
count (字段名称):查询表中记录,字段名称使用都是id,非业务字段
avg(字段名称):查询这个字段中的平均值
sum :求和函数
max:最大值
min (字段名称) :最小值

语法:select 聚合函数 (字段名)  from 表名 ---前提条件使用业务字段查询不能有null值
单表查询的子查询:select嵌套select语句 ----子查询
排序查询
select 字段列表from 表名 orderby 字段名称 排序规则 (asc (默认升序)  desc 降序)

如果同时有条件,则条件应在order by之前
多个字段排序首先第一个字段排序规则,然后第二个字段

DQL语句之分组查询(group by)
1.不带条件的分组查询

语法:select * from 表名 group by 分组字段名称;

注意事项:

①查询的字段列表中可以使用 分组字段
②group by之后不能使用聚合函数

2.带条件的分组查询语法(where 条件必须放在group by之前,否则语法错误)

语法:select 字段名称(包含分组字段、聚合函数) from 表名 where 条件 group by 分组字段名称; 

DQL语句之筛选查询(having)
必须先有条件,然后分组,接下来筛选

语法:select 字段名称  from  表名   where 条件  group by 分组字段名称  having  筛选条件;

注意事项:筛选的后面可以使用聚合函数,group by的后面不能使用聚合函数

DQL语句之分页查询(limit)
语法:select 字段列表 from 表名   limit 起始行数,每页显示的条数;

起始行数是从0开始算的,起始行数=(当前页码-1)*每页显示的条数。

数据库的备份和还原
方式1:图形界面化工具

备份:选中库名,右键----->BACKUP/Export 备份导出---->
            选中Sql脚本,存储到本地某个磁盘上----->StructureAndData:表的结构和数据都需要备份

还原:先在SqlYog将myee_2203删除了,新建库右键---->Import 导入---->选中执行execute sql 脚本

方式2:命令行控制台

备份:以管理员身份进入dos,不需要登录mysql
保存到指定路径上 :mysqldump -uroot -p你的密码  库名 >  磁盘上的路径xx\xx\xx.sql

还原:①进入dos控制台,登录mysql,先将库删除,新建一个库
           ②使用这个库 use库名;
           ③加载指定路径sql脚本:source 备份的sql脚本路径(D:\EE_2203\day9\code\mysql_01.sql)

数据库的约束
概念:限制用户操作数据库的一种行为(非法行为)

非法行为是指直接插入null值或某个非业务字段的值一直重复。

1.默认约束
default:如果某个字段没有插入数据,默认约束就会起作用

①.添加默认约束

方式1.建表时加入默认约束

语法:create table 表名( 字段名称 字段类型 DEFAULT ‘约束值’);

方式2:通过sql语句加入默认约束

语法:alter table 表名 modify  字段名称 字段类型 DEFAULT ‘约束值’;

②.删除默认约束

通过sql语句删除默认约束

语法:alter table 表名 modify 字段名称  字段类型;

2.非空约束
not null:当前这个字段的值不能为空(插入空值的话会报错)

①.加入非空约束

方式1:建表时加入非空约束

语法:create table 表名( 字段名称 字段类型 NOT NULL);

方式2:通过sql语句加入非空约束

语法:alter table 表名 modify 字段名称 字段类型 not null;

②.删除非空约束

通过sql语句删除非空约束

语法:alter table 表名 modify 字段名称 字段类型;

3.唯一约束
unique:某个字段的值必须唯一,属于一种index:索引。

①.添加唯一约束

方式1.建表时加入唯一约束

语法:create table 表名 (字段名   字段类型  UNIQUE);

方式2.通过sql语句加入唯一约束

 语法:alter table 表名 modify  字段名 字段类型  UNIQUE;

②.删除唯一约束

语法:alter  table  表名 DROP INDEX  字段名称;

4.主键约束
PRIMARY KEY:非空且唯一 ,一般和auto_INCREMENT(自增长约束)使用多一些.

①.添加主键约束(非业务字段)

方式1.建表时加入主键约束

语法:create  table  表名(   字段名 字段类型  primary  key);

方式2.通过sql语句加入主键约束

语法:alter  table  表名 modify  字段名称  字段类型 primary key;

②.删除主键约束

语法:alter table 表名 drop  primary key;

给id加上自增长约束后,不需要给id赋值,id会自增长。

注:自增长约束可以自己插入新的id,然后在之前id上继续自增

获得最后一次自增长主键id的值:SELECT LAST_INSERT_ID() ;

5.外键约束
①.加入外键约束

create  table 表名(

        字段名  字段类型,

        constraint     --声明

        外键名称         --命名规则:主表名称_从表名称_fk

        foreign  key(字段名)      -- 作用在这个字段id上

        references   主表名称(id)     --关联主表的主键id

注意:加入外键约束:修改和删除是很麻烦,需要先修改或者删除从表数据,然后修改/删除主表数据
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值