数据库基本操作(mysql)

RDBMS是关系数据库管理系统(Relational Database Management System)的缩写。RDBMS是SQL的基础

use mysql打开数据库

建议安装navicat进行数据库操作

下列 value ,字符类型加上 “  ”,‘  ’    数字类型除外

select基础语法 

select now()   # 获取当前时间

select * from table    # *表示查询所有

select column from table     # 查询一列(column必须在table中存在)

select column1,column2 from table     # 查询多列(column必须在table中存在)

select * from table where column is null   # 查询列名为空的数据

select * from table where column is not null    # 查询列名部位空的数据
select sum(if(column=1,column,0)) from table    # 查询列名为1的总数

select sum(case when column=1 then column end) from table

SQL算术运算符

select column+1 from table    # + 相加    - 相减    * 相乘    / 相除   % 取余

比较运算符

select * select demo where column > 3 and column < 5   # 查询大于3小于5的数据

select * from demo where age between 3 and 5   # 和上面一样

select * from table where column = “zhangsan”   # 查询列名为zhangsan的数据

select * from table where not column = “zhangsan”   # 查询列名部位zhangsan的数据

select * from table where column != “zhangsan”   # 和上面一样


> 大于  < 小于    = 等于    >= 大于等于    <= 小于等于   between 在某个范围内    

limit指定

select * from demo limit 2   # 查询前俩行
  # 其他SQL 用 top 等

通配符

_   下划线表示单个字符

%   百分号表示零个,一个或多个字符

like 操作符

select * from table column like 's%'    # 查询已s开头的数据

select * from table column like '%s'    # 查询已s结尾的数据

select * from table column like '%s%'   # 查询数据中有s的数据

Aliases别名

select * from table as t         
     # 重命名t就代表了tatble表

In 操作符

select * from table where column in (value1,value2)   
     # 查询列名是value1、value2的值

select distinct (去重) 

select distinct column from table       
     # 去除重复的列名

and 和 or 运算

select * from table where 条件 and 条件     # 条件都为true执行

select * from table where 条件 or 条件      # 条件都一个为true执行

Order by 排序字段

select * from table where order by column desc    # 通过列名排序降序

select * from table where order by column asc     # 通过列名排序升序

inner join (内连接)   也可以只写join

select t1.varlue,t2.value from table1 t1 inner join table2 t2 on 条件   
     # 以俩表中心建立连接

left join (左连接)

select t1.varlue,t2.value from table1 t1 left join table2 t2 on 条件  
     # 以左表为中心连接右表

rigth join (右连接)

select t1.value,t2.value from table1 t1 rigth join table2 t2 on 条件   
    # 以右表为中心连接左表

  full join(外连接)

select t1.varlue,t2.value from table1 t1 full join table2 t2 on 条件    
     # 全表查询

self join(自连接)

select * from table1,table2

union all 命令

select column from table1 union all select column from table2
     # 把俩个查询结合在一起,但是列名必须一致

ifnull

select (column1+ifnull(column2,0)) from student      
     # 假如column为空,设置为0

计算语法

select avg(column) from table      # 平均值

select sum(column) from table      # 计算总和

select count(column) from table    # 查询列条数 null不计

查询排序列函数

select first(column) from table     # 查询第一行的值


select last(column) from table      # 查询最后一行

最大/小函数

select max(column) from table      # 查询最大值

select min(column) from table      # 查询最小值

Group BY

select sum(column) from table group by column            
     # 对结果进行分组查询

Having (where不能与合计函数一起使用)

select sum(column) from table group by column having sum( column )   
     # 在函数后面添加条件

Round 函数

select round(column) from table   
     # 四舍五入

Insert  into 语句 (添加)

insert into table values(value1,value2,value3)    # 添加一条数据

insert into table(column1,column2) values(value1,value2)  # 添加指定列

# 必须和创建表的字段一致

update 语句 (修改)

updata table set column1=value where column2=value      # 通过列列名2的条件修改列列名1的值

delete 语句 (删除)

delete from table     # 删除整个表,但是不会删除表结构

delete from table where column='value'     # 删除条件的行

子查询

select * from table where 1 = (select column from table where column=1)
    # 查询1等于子查询

数据格式

NOW()返回当前的日期和时间
CURDATE()返回当前的日期
CURTIME()返回当前的时间
DATE()提取日期或日期/时间表达式的日期部分
EXTRACT()返回日期/时间的单独部分
DATE_ADD()向日期添加指定的时间间隔
DATE_SUB()从日期减去指定的时间间隔
DATEDIFF()返回两个日期之间的天数
DATE_FORMAT()用不同的格式显示日期/时间
DATEYYYY-MM-DD
DATETIMEYYYY-MM-DD HH:MM:SS
TIMESTAMPYYYY-MM-DD HH:MM:SS
YEARYYYY 或 YY

----------------------------------------------------------------------------------------------

CREATE

creader database 库   # 创建库

creader table 表   # 创建表
CREATE TABLE Persons                
(                
ID int NOT NULL AUTO_INCREMENT,   # 自动增长             
LastName varchar(255) NOT NULL,                
FirstName varchar(255),                
Address varchar(255),                
City varchar(255),                
PRIMARY KEY (ID)  #主键
)

ALTER

ALTER TABLE table_name ADD column_name datatype;   添加新列

ALTER TABLE table_name DROP COLUMN column_name;    删除列

ALTER TABLE table_name MODIFY COLUMN column_name datatype;   修改列的数据类型

ALTER TABLE table_name MODIFY column_name datatype NOT NULL;   NOT NULL 约束

ALTER TABLE table_name DROP CONSTRAINT MyPrimaryKey;  删除约束

drop

alter table tabke drop index index_name     # 删除索引     

drop table 表    # 删除表

drop database 库    # 删除库

TRUNCATE

TRUNCATE TABLE  table_name;
# drop会删除表结构 truncate只会删除数据

Views

create view view_name AS select * from table

约束

NOT NULL 约束强制列不接受 NULL 值。

UNIQUE 约束唯一标识数据库表中的每条记录。 

PRIMARY KEY 约束唯一标识数据库表中的每条记录。唯一、不为空

FOREIGN KEY 外键约束。一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。 

DEFAULT 约束用于向列中插入默认值。

CHECK 约束用于限制列中的值的范围。

ALTER TABLE table_name ADD CONSTRAINT MyUniqueConstraint CHECK (CONDITION); # 添加约束

索引

相当于书籍的目录更快的查询

不会对数据产生影响,但会对速度产生影响

索引是唯一的

CREATE INDEX index_name ON table(column);   # 创建索引

CREATE UNIQUE INDEX index_name on table(column);   # 创建唯一索引不允许重复值

CREATE INDEX index_name on table(column1, column2);   # 聚集索引 WHERE 多列的适合 

事务

  • 原子性:保证任务中的所有操作都执行完毕;否则,事务会在出现错误时终止,并回滚之前所有操作到原始状态。
  • 一致性:如果事务成功执行,则数据库的状态得到了进行了正确的转变。
  • 隔离性:保证不同的事务相互独立、透明地执行。
  • 持久性:即使出现系统故障,之前成功执行的事务的结果也会持久存在。

代码

  • COMMIT:提交更改;
  • ROLLBACK:回滚更改;
  • SAVEPOINT:在事务内部创建一系列可以 ROLLBACK 的还原点;
  • SET TRANSACTION:命名事务;

临时表创建 :CREATE TEMPORARY TABLE SALESSUMMARY

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值