文章目录
MySQL 基本命令操作
数据库语言:
DDL 数据定义(例如:CREATE、DROP、ALTER等语句。)
DML数据 操作(例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。)
DQL 数据查询(例如:SELECT语句。(一般不会单独归于一类,因为只有一个语句)。)
DCL 数据控制(例如:GRANT、REVOKE等语句。)
TCL 事务控制(例如:COMMIT、ROLLBACK等语句。)
一、dos命令行操作
mysql -u root -p --连接数据库
update mysql.user set authentication_string =password('新密码') where user ='root' and Host ='lacalhost'; --修改密码
flush privileges; --刷新权限
show databases; --查看所有的数据库
use 数据库名 --切换数据库
show tables; --查看数据库中所有的表
describe/desc 表名 --显示表的信息
create database student; --创建一个数据库
exit; --退出连接
--查看创建数据库的语句
show create datebase school
--查看`person2`数据表的定义语句
show create table `person2`
-- 单行注释(SQL的本来的注释)
/*(SQL的多位注释)
hello
world
*/
二、操作数据库
层次:操作数据库–》操作数据库中的表–》操作数据库中表的数据
mysql关键字不区分大小写
1、基础命令
create database [if not exists] 数据库名; --创建数据库
drop database [if exists] 数据库名; --删除数据库
show databases; --查看数据库
--如果你的表名或者字段名是一个特殊字符,就需要带``(反引号)
use `数据库名`; --使用数据库
2、创建数据库表
--创建一个表
create table if not exists `person2`(
`id` int(4) NOT NULL auto_increment comment '号码',
`name` varchar(4) not null default '匿名' comment '姓名',
`age` int(4) not null default 0 comment '年纪',
`sex` varchar(2) not null default '男' comment '性别',
`telphone` varchar(20) comment'电话',
`adress` varchar(50) default 'xxxxxxx' comment '地址',
primary key (`id`)
) engine =innodb default charset=utf8;
--删除一个表
drop table if exists 表名
3、数据表的类型(MySQL存储引擎--MyISAM与InnoDB区别)
--数据库引擎
/*
INNODB 默认使用
MYISAM 早些年使用
*/
MyISAM | InnoDB | |
---|---|---|
构成上区别 | 每个MyISAM在磁盘上存储成三个文件。文件名为表名,扩展名为文件类型。 .frm 文件存储表定义; .MYD(MYData) 数据文件的扩展名; .MYI(MYIndex) 索引文件的扩展名。 | 基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB |
事务处理方面 | MyISAM类型的表强调的是性能,其执行速度比InnoDB类型更快,但是不提供事务支持。 | InnoDB提供事务支持事务,外部键等高级数据库功能。 |
锁 | 表级锁 | 行级锁 InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%” |
select、insert、update、delete操作 | 如果执行大量的 SELECT,MyISAM 是更好的选择。 | 1.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。 2.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。 3.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。 |
对于AUTO_INCREMENT类型的字段 | 必须包含只有该字段的索引 | 可以和其他字段一起建立联合索引 |
InnoDB不支持FULLTEXT类型的索引。 | ||
MyISAM类型的二进制数据文件可以在不同操作系统中迁移 |
4、修改删除表
--修改表名
alter table 旧表名 rename 新表名
--增加表的字段
alter table 表名 add 字段名 列属性
alter table person1 add nation varchar(8) not null default "汉" comment "民族"
--修改表的字段
/*
modify 不用来字段重命名,只能修改字段类型和约束
alter table 表名 modify 字段名 列属性
alter table person1 modify nation char(4)
change用来字段重命名,不能修改字段类型和约束
alter table 表名 change 旧字段名 新字段名 列属性
alter table person1 change nation nation1 varchar(4)
*/
--删除表的字段
alter table 表名 drop 字段名
alter table person2 drop nation1