数据库基础编程

连接mysql在黑窗口

mysql -u root -p
#登录MySQL

SQL语句分类

数据库操作

创建数据库

create database [if not exists] db_name;

1.character set :指定数据库采用的字符集,如果不指定字符集,默认utf8

2,collate:指定数据库字符集的校对规则(常用utf8_bin区分大小写)

删除数据库

drop database 数据库名;
select * from 表名;

展现所有数据库

show databases;

数据备份

mysqldump -u root -p -B 数据库1 数据库2 数据库n>文件名.sql

恢复数据库

source 文件名;

表的操作

创建表

create table 表名(
field1 datatype
field1 datatype
field1 datatype
);
​
character set :字符集    collate:校对规则   engine:引擎
field:指定列名  datatype:指定列类型  
character set :如不指定则为所在数据库字符集
collate:如不指定则为所在数据库校对规则
engine:存储引擎

添加数据

insert into 表名 values(数据,数据,数据);

修改表操作

alter table 表名 add 列名 数据类型;

删除列

alter table 表名 drop 列名;  

列名修改

alter table 表名 change '原列名' '新列名' 数据类型

插入数据

insert into 表名 (数据类型,数据类型,......);

删除表中元素

delete from 表名;//删除所有元素
delete from 表名 where 条件 //删除某一行

更改表中元素

update 表名 set 列名=要修改为 where

Select语句

使用order by 子句排序查询结构

select * from 表名 order by 列名 asc|desc;
//ASC 升序| desc 降序

distinct去重关键字

MySQL类类型

数值类型

整型

1,tinyint:一个字节 2,smallint:两个字节 3,mediumint:三个字节 4,int:四个字节 5,bigint:八个字节

小数类型

1,float:单精度4字节 2,double:双精度8字节 3,decimal[M,D]:

文本类型

1,char:0~255 2,varchar:0~65535 4,text 4, longtext

二进制数据

1,blob 2,longblob

日期类型

1,date【日期 年月 日】 2,time【时间 时分 秒】 3,datetime【年 月 日时分秒 YYYY-MM--DD HH:DD:SS】

4,timestamp:时间戳

函数

统计函数

select count(*) from 表名;

时间函数

 

1,查询时间

select now();//查询当前时间带时分秒
select curdate();//查询当前时间不带时分秒

2,str_to_date:将字符通过指定格式转化为日期

3,date_format:将日期转为字符

 

 

加密函数

 

  

流程控制函数

 

 

MySQL表查询增强

 

 

MySQL子查询

子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询

单行子查询是指只返回一行数据的子查询语句

多行子查询指返回多行数据的子查询,使用关键字in

自我复制

表内容复制

insert into 表名 select * from 需要复制的表名;

 

 

表结构复制

create table 表名 like 需要复制的表名;

合并查询

union all将两个查询结果合并,不会去重

 

 

 

union将两个查询结果合并 并去重

 

 

MySQL表外连接

左外连接

select ..... from 表1 left join 表2 on 条件;

右外连接

select ..... from 表1 right join 表2 on 条件;

外键约束foreign key(外键)

1,外键指向的表的字段,要求是primary key 或者是unique

2,表的类型是innodb,这样的表才支持外键

3,外键字段的类型要和主键的类型一致

4,外键字段的值,必须在主键字段中出现过,或者为null

5,外键关系一旦建立,数据不能随意更改

 

 

check关键字

用于强制行数据必须满足的条件,假定在sal列上定义了check约束,并要求sal列值在1000·2000之间如果不再1000·2000之间就会提示出错

MySQL索引优化

创建索引

create index 索引名称 on 表名(列创建索引);

查询表是否有所欲

show indexes from 表名;

添加唯一索引

create unique index 索引名 on 表名(列名);

添加普通索引

create index 索引名 on 表名(列名);

删除索引

drop index 索引名 on 表名;

删除主键索引

alter table 表名 drop primary key;

MySQL事务

基本概念

事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败

重要操作

1,start transaction :开始一个事务

2,savepoint:保存点名 ----设置保存点

3,rollback to :保存点名---回退事务

4,rollback: 回退全部事务

5 ,commit :提交事务,所有的操作生效,不能退回

MySQL事件隔离

 

 

 

查看隔离级别

select @@transaction_isolation_isolation;//查看当前会话隔离级别
select @@global.transaction_isolation_isolation;//查看系统当前隔离级别

设置隔离级别

set session transaction isolation level 隔离级别;//
set global transaction isolation level 隔离级别

MySQL引擎

基本介绍

1,MySQL的表类型由存储引擎(storage Engines)决定,主要包括MyISAM,innoDB,Memory等

2,MySQL数据表主要支持六种类型,分别是:CSV,Memory,ARCHIVE,MRG_MYISAM,MYUSAM,innoDB

3,这六种又分两类,一类是“事务安全型”比如:InnoDB;其余都属于第二类,称为 “非安全事务型”

如何使用存储引擎

1,如果你的应用不需要事务,处理的只是基础的CRUD操作,那么MyISAM是不二选择,速度快

2,如果需要支持事务,选择InnoDB

3,,Memory存储引擎就是将数据存储在内存中,由于没有磁盘I./O的等待,速度极快,但是由于是存储引擎,所做的如何修改在服务器重启之后都消失

指令修改存储引擎

alter table 表名 engine=引擎名;

MySQL视图

1,视图是根据基本来创建的,视图是虚拟的表

2,视图也有列,数据来自基表

3,通过视图可以修改基表数据

4,基本的改变,也会影响视图的数据

视图的基本使用

1,create view 视图名 as select 语句

2,alter view 视图名 as select语句

3,show create view 视图名

4,drop view 视图名1 ,视图名2

创建视图

create view 视图名 as select 列1,列2 from 表名;

查看视图

desc 视图名;

查看创建视图指令

show create view 视图名;

删除视图

drop view 视图名

MySQL用户管理

创建用户

create user '用户名' @ '允许登录位置' identified by '密码'

修改自己的密码

set password =password ('新密码');

修改别人的密码

ALTER USER '用户名'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '新密码';

MySQL权限管理

 

 

回收用户权限

revoke select,.... on 数据库名.表名 from '用户名'@'登录位置'

删除用户

drop user '用户名'@'登陆位置';

用户管理细节

在创建用户的时候,如果不指定host,则为%,%表示所有ip都有连接权限

create user 用户名;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值