My SQL数据库(基础)

1.DDL-数据库操作

show databases;

create database 数据库名;

use 数据库名;

select database();

drop database 数据库名;

2.DDL-表操作

show tables;

create table  表名(字段 字段类型,

字段 字段类型,

字段 字段类型

);

desc 表名;

show create table 表名;

alter table 表名 add/modify/change/drop/rename to...;   /*change修改的是字段和字段类型*/

/*modify修改的是字段*/

drop table 表名;

3.DML-表操作

1.添加数据

insert into 表名(字段1,字段2,...)values (值1, 值2,...)[,(值1, 值2,...)...];

2.修改数据

update 表名 set 字段1 = 值1, 字段2 = 值2 [where 条件];

3.删除数据

delete from 表名[where 条件];

4.DQL语句

select 

        字段列表                字段名 as 别名

from

       表名

where                 > >= < <= <> like between A and B in and or        /*like后面跟 %,_*/ 

        条件列表

group by

        分组字段列表                        分组之前过滤

having

        分组后条件列表                       分组之后过滤

order by

        排序字段列表                               升序ASC,降序DESC

limit

        分页参数                                       起始索引(从0开始),每页展示记录数

                                                                /*不是从0开始的页数,(页数-1)*每页展示记录数*/

5.DCL语句

1.用户管理

create user '用户名'@'主机名' identified by '密码';

alter user '用户名'@'主机名' identified with mysql_native_password by '密码';

drop user '用户名'@'主机名';

2.权限控制

grant 权限列表 on 数据库名.表名 to ‘用户名’@'主机名';

revoke 权限列表 on 数据库名.表名 from ‘用户名’@‘主机名’;

show grants for '用户名'@'主机名';

6.函数

1.字符串函数

concat, lower, upper, lpad, rpad, trim, substring

/*

lpad(字符串, 字符串长度, 填充内容)

rpad(字符串,字符串长度,填充内容)

trim(str) 去掉字符串头部和尾部的空格

substring(字符串, 开始的地方从1开始,截取字符串的长度)

*/

2.数值函数

ceil, floor, mod, rand, round

/*

round(x, 保留几位小数)

*/

3.日期函数

curdate, curtime, now, year, month, day, date_add, datediff

/*

date_add(date, 加上一个时间间隔)

datediff(date1, date2)从date1开始到date2结束。date1 - date2

*/

4.流程函数

if,ifnull, case[...] when ... then... else...end

7.约束

1.非空约束:not null

2.唯一约束:unique

3.主键约束:primary key(自增:auto_increment)

4.默认约束:default  /*后面加默认值*/

5.检查约束:check /*后面加约束条件()*/

6.外键约束:foreign key  /*在后面可以加cascade级联  set null设置为空  on update/delete cascade */

8.多表关系

一对多:在多的一方设置外键,关联一的一方的主键

多对多:建立中间表,中间表包含两个外键,关联两张表的主键

一对一:用于表结构拆分,在其中任何一方设置外键(UNIQUE),关联另一方的主键

9.多表查询:

内连接

        隐式:select..from 表A, 表B where 条件...

        显式:select...from 表A inner join 表B on 条件...

外连接

        左外:select...from 表A left join 表B on 条件...

        右外:select...from 表A right join 表B on 条件...

自连接

select...from 表A 别名1, 表A 别名2 where 条件...

子查询

标量子查询、 列子查询、行子查询、表子查询

10.事务

事务是一组操作的集合,这组操作,要么全部执行成功,要么全部执行失败。

1.事务操作

第一种

查看/设置事务提交方式:

        select @@autocommit;

        set @@autocommit = 0;  /*开启手动提交事务     值为1时开始自动提交*/

2.提交事务

        commit;

3.回滚事务

        rollback;

第二种

开启事务

        start transaction 或者 begin;

提交事务

        commit;

回滚事务

        rollback; 

11.事务四大特性

原子性(Atomicity)

一致性(Consistency)

隔离性(Isolation)

持久性(Durability)  

12.并发事务问题

赃读、不可重复读、幻读

13.事务隔离级别

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值