kill hup mysql_MySQL基础 - bithup的个人空间 - OSCHINA - 中文开源技术交流社区

MySQL安装与使用

windows解压版安装

SQL分类概述

四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL

DQL和DML

查询和操纵就是开发中的增删改查,insert/delete/update/select与from/where等子句

DDL

数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等如:CREATE TABLE/VIEW/INDEX/SYN/CLUSTER

DDL操作是隐性提交的!不能rollback

DCL

数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:GRANT、ROLLBACK、COMMIT

表相关操作DDL

创建表

MySQL表引擎

MyISAM 强调性能,速度快,一般使用这种引擎

InnoDB 支持事务等高级处理,对有事务需求的数据使用

ARCHIVE

BLACKHOLE

CSV

MEMORY

MRG_MYISAM

PERFORMANCE_SCHEMA

表字段数据类型与注意事项

bit

tinyint/smallint/mediumint/int/bigint

real/double/float/decimal/numeric

date/time/timestamp/datetime/year

char/varchar/

binary/varbinary

tinyblob/blob/mediumblob/longblob

tinytext/text/mediumtext/longtext(注:medium中的的,媒体,介质)

enum/set/geometry/point/linestring/polygon/multipoint

multilinestring/multipolygon/geometrycollection

MySQL关键字与转义

check

status

注:表中字段名与关键字相同时,在sql语句中使用 ` ` 进行转义

表约束

PRIMARY KEY

FOREIGN KEY

NOT NULL

UNIQUE

AUTO_INCREMENT

DEFAULT

/*

*创建用户表

*设置主键

*添加备注、设置默认值

*设置引擎、字符集

*/

CREATE TABLE `tb_user` (

`id` bigint(20) NOT NULL AUTO_INCREMENT,

`account` varchar(50) DEFAULT NULL COMMENT '用户名',

`password` varchar(100) DEFAULT NULL COMMENT '密码',

`create_date` datetime DEFAULT NULL COMMENT '创建时间',

`status` int(2) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

/*

*创建订单表,一个用户可以有多个订单,一个订单只属于一个用户

*设置主键和外键

*/

CREATE TABLE `tb_order` (

`id` bigint(20) NOT NULL AUTO_INCREMENT,

`buyer_id` bigint(20) NOT NULL COMMENT '购买人id',

`status` int(2) DEFAULT NULL,

PRIMARY KEY (`id`)

FOREIGN KEY (`buyer_id`) references tb_user(`id`),

) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

修改表

修改表名、存储引擎

alter table '表名' rename '表名';

alter table '表名' engine=innodb;

添加字段和字段约束,以及指定指定位置

alter table '表名' add column '字段名' int not null default 0 after '字段名';

修改字段名或字段数据类型,以及修改字段位置

alter table '表名' change '旧字段名' '新字段名';

alter table '表名' modify '字段名' 数据类型 约束 默认值 位置;

添加和删除外键,以及修改约束

alter table '表名' add primary key('字段名');

alter table '表名' drop primary key;

删除表

drop table '表名';

清除表中数据

truncate table '表名';

数据库管理DCL

授权(grant/revoke/deny)

CREATE USER kevin IDENTIFIED BY '123456';    /*新建用户,用户名kevin,密码123456*/

SET PASSWORD FOR kevin=PASSWORD('123123');    /*修改密码*/

SHOW GRANTS FOR kevin;    /*查看kevin用户权限*/

GRANT SELECT ON db_kevin.* TO kevin;    /*为用户添加权限*/

REVOKE SELECT ON db_kevin.* TO kevin;    /*取消用户权限*/

提交(commit)

在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。

显式提交

用COMMIT命令直接完成的提交为显式提交。其格式为:

SQL>COMMIT;

隐式提交

用SQL命令间接完成的提交为隐式提交。这些命令是:

ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,

EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。

自动提交

若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,

系统将自动进行提交,这就是自动提交。其格式为:

SQL>SET AUTOCOMMIT ON;

事务控制(savepoint/rollback)

savepoint savepoint_name; /*做标记*/

rollbak /*使数据库状态回到上次最后提交的状态*/

rollbak to savepoint savepoint_name; /*回滚到标记点*/

release savepoint savepoint_name; /*解除标记*/

/*MySQL中事务被提交后会新建一个事务,有些命令会隐式执行提交操作,rollbak无法回到提交操作之前*/

MySQL参数设置

1.配置最大连接数

命令行临时配置,重启后失效

修改配置文件配置 my.ini

MySQL其他功能

视图

存储过程

函数

事件

索引

约束

触发器

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值