MySQL菜鸟学习日志——0001

#MySQL基本命令

通过mysql -u root -p 来启动mysql

show databases ; //查看当前实例下包含多少个数据库
create database [IF NOT EXISTS] 数据库名 ; // 创建新的数据库
drop database 数据库名 ; //删除指定数据库
use 数据库名 ; //进入指定数据库
show tables ; //进入数据库后查询该数据库下包含多少个数据表
desc 表名 ;// 查看指定数据表的表结构
show create table 表名;//观看建表语言

登陆mysql的命令:
mysql -p 密码 -u 用户名 -h 主机名 --default-character-set=utf8
退出关闭mysql:
quit;
exit;

##数据库对象

对象名称 对应关键字 描述
table 表是储存数据的逻辑单元,以行和列的形式存在
数据字典 系统表,存放数据库相关信息
约束 constraint 执行数据校验的规则
视图 view 一个或多个数据表里数据的逻辑显示
索引 index 用于提高查询性能,相当于书的目录
函数 function 用于完成一次特定的计算,具有一个返回值
存储过程 procedure 用于完成一次完整的业务处理,没有返回值,但可以通过传出参数将多个值传给调用环境
触发器 trigger 相当于一个事件监听器

##查询语句

1.DDL(数据定义语言)语句

create 创建表的语法

create table [模式名.]表名
(
	#可以有多个列定义
	colunmnName1 datatype [default expr],
	...
);
例如
create table heros
(
	hero_id int auto_increment primary key,
	hero_name varchar(255) unique,
	mainkind enum ('strength' , 'agility' , 'wit'),
	strength int default '10' not null,
	agility int default '10' not null,
	wit int default '10' not null,
	health int default '200',
	magic int ,
	armor int ,
	hero_increasement int,
	foreign key(hero_increasement) references heros(hero_id)
);

alter 修改表结构的语法

alter table 表名
add
(
	#可以有多个列定义
	column_name1 datatype [default expr],
	...
);
例如
alter table heros
add 
(
	move_speed int default '100' not null 
);

修改列定义的语法
alter table 表名
modify column_mane datatype [default expr] [first|after col_name];

例如
alter table heros
modify name varchar(255);

删除列的语法
alter table 表名
drop column_name

例如
alter table heros
drop name;

重命名数据表的语法
alter table 表名
rename to 新表名

例如
alter table heros
rename to dota_heros;

改变列名的语法
alter table 表名
change old_column_name new_column_name type [default expr] [first|after col_name]

例如
alter table heros 
change blood health int ;

drop 删除表的语法

drop table 表名; 

例如 
drop table heros;

turncate 清空表中所有数据

turncate 表名;

2.DML(数据操作语言)语句

insert into

用于向指定数据表中插入记录,语法格式如下

insert into table_name[(column [,column ...])]
values(value [,value...]);

例如

insert into heros(hero_name)
value('axe');
insert into heros
value(null ,'nax' ,'agility',14,18,17,560,380,4,300);

mysql可以一次插入多条记录

insert into heros(heros_name)
value('rabick' ),
('pugna');

updata

用于修改数据表的记录,每次可以修改多条,通过使用where子句限定修改哪些记录。

update table_name
set column1 = value[,column2 = value2 ]...
[WHERE condition];

例如

update heros
set strength = 381
where hero_name = 'nax';

delete from

用于删除指定数据表的记录,整行删除。可用where语句指定删除多行。

delete from table_name
[where condition];

例如

delete from heros
where hero_name = 'pugna';

3.DCL(数据控制语言)语句

grant

revoke

4.事物控制语句

commit

rollback

savepoint

##数据库约束

not null非空约束

非空约束,指定某列不能为空

alter table heros
add wit int not null;

可以修改表的时候删除非空约束

alter table heros
modify wit int null;

unique唯一约束

唯一约束,制定某列或者几列组合不能重复
虽然不能出现重复值,但是null可以重复(null≠null)

alter table heros
add hero_name varchar(255) unique;

或者

alter table heros
modify unique(hero_name);

primary key主键约束

主键约束,制定该列的值可以唯一地标识该条记录
主键约束等于非空约束加唯一约束
每个表中最多允许有一个主键,但是这个主键可以由多个数据列组成

create table heros
(
	hero_num int ,
	hero_name varchar(255),
	primary key (hero_num , hero_name)
);

主键列支持自增长特性,通过关键字auto_increment添加

foreign key外键约束

外键约束,指定该行记录从属于主表中的一条记录(主表中的主键)

create table last_skill
(
	skill_name varchar(255) primary key
);

create table rubick
(
	steal_skill varchar(255),
	foreign key(steal_skill) references last_skill(skill_name)
);

外键约束不仅可以参照其他表,而且可以参照自身

create table heros
(
	strength int primary key,
	health int ,
	foreign key(health) references heros(strength)
);

###check约束
检查,mysql暂不支持
###删除约束
首先在定义约束时建立约束名
如在唯一约束中

create table heros
(
	hero_name varchar(255) unique,
	constraint name unique(hero_name)
);

mysql中总是将主键约束命名为primary

你可能感兴趣的:(MySQL菜鸟学习日志——0001)