MySqL数据库操作详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
登陆MySqL数据库
mysql -h 127.0.0.1 -u root -p
创建数据库
create database 数据库名;
显示已经存在的数据库
show databases;
删除数据库
drop database 数据库名;
查看MySqL数据库支持的存储引擎类型
show engines;
(可以用'\g'或者'\G'结束,'\g'和;的作用相同,'G'可以让结果显示的更加美观)
查询MySqL数据库支持的存储引擎
show variables like 'have%';
查询默认存储引擎
show variables like 'storage_engine';
*****创建表之前需要用use 数据库名来选择数据库
表的主键:primary key 多字段主键(primary key(属性名,属性名))
表的外键:foreign key constraint 外键别名foreign key(属性名,..,属性名) references 表名(属性名,...属性名)
表的非空约束:not null
表的唯一性约束:unique
表的属性值自动增加:auto_increment
表的属性的默认值:default 默认值
创建表
create table 表名(属性名数据类型[完整性约束条件],
属性名数据类型[完整性约束条件],
... ...
属性名数据类型[完整性约束条件]);
查看表的基本定义
describe 表名;(describe 可以缩写成desc)
查看表默认的存储引擎和字符编码
show create table 表名;
(可以用'\g'或者'\G'结束,'\g'和;的作用相同,'G'可以让结果显示的更加美观)
修改表名
alter table 旧表名rename [to] 新表名;
修改字段的数据类型
alter table 表名modify 属性名数据类型;
修改字段名(也可以同时修改字段名和字段数据类型)
alter table 表名change 旧属性名新属性名新数据类型;
增加字段
alter table 表名add 属性名1 数据类型[完整性约束条件] [first| after 属性名2] (first的作用是将新增加字段设置为表的第一个字段,after 属性名2 的作用是将新增的字段添加到属性名2 所指的字段之后,如果没有上面2个参数,则新增的字段默认为表的最后一个字段)
删除字段
alter table 表名drop 属性名;
修改字段的排列位置
alter table 表名modify 属性名1 数据类型first|after 属性名2;
更改表的存储引擎
alter table 表名engine=存储引擎名;
删除表的外键约束
alter table 表名drop foreign key 外键别名;
删除没有被关联的普通表
drop table 表名;
向表中插入数据
insert into 表名values(... ...);
创建表的时候创建索引
create table 表名(属性名数据类型[完整性约束条件],
属性名数据类型[完整性约束条件],
... ...
属性名数据类型[完整性约束条件]
[unique|fulltext|spatial] index|key
[别名](属性名1 [(长度)] [asc|desc])
);
unique:表示索引为唯一性索引
fulltext:表示索引为全文索引
spatial:表示索引为空间索引
index和key用来指定字段为索引
别名:用来创建索引取的新名称
属性名1:指定索引对应的字段的名称,该字段必须是前面定义好的字段
长度:指索引的长度,必须是字符串类型才可以使用
asc:表示升序排列
desc:表示降序排列
查看索引是否被使用
explain select*from 表名where 索引名\G
创建空间索引
spatial index 索引名(属性名)
在已经存在的表上面创建索引
create [unique|fulltext|sratial] index 索引名on 表名(属性名[(长度)] [ASC|DESC]);
在已经存在的表上,用alter table 语句来创建索引
later table 表名add [unique|fulltext|spatial] index 索引名(属性名[(长度)] [asc|desc]);
删除索引
drop index 索引名on 表名;
创建视图
create [algorithm = {unique | merge| temptable}] view 视图名[{属性清单}]
as select 语句[with [ cascaded | local ] check option];
查询用户的权限
select select_priv,create_view_priv from er where user='用户名';
(select_priv 表示用户是否具有select权限,create_view_priv 表示用户是否具有create_view权限,er表示的是mysql数据库下的user表)
查看视图
1. describe 视图名;(describe 可以缩写成desc)
2. show table status like '视图名';(可以用'\g'或者'\G'结束,'\g'和;的作用相同,'G' 可以让结果显示的更加美观)
3. show create view 视图名;(可以用'\g'或者'\G'结束,'\g'和;的作用相同,'G'可以让结果显示的更加美观)
在view表中查看视图详细信息
select * from information_schema.views;(在mysql中,所有视图的定义都存在
information_schema数据库下的views表中,*表示查看所有的列的信息)
修改视图
1. create or replace view [algorithm={undefined|megrge|temptable}] view 视图名[(属性清单)] as select 语句[with [cascaded|local]check option];
2. alter[algorithm={undefined|megrge|temptable}] view 视图名[(属性清单)] as select 语句[with [cascaded|local]check option];
更新视图
删除视图
drop view [if exists] 视图名列表[restrict|cascade];(if exists是判断视图是否存在)
查询是否存在drop权限
select drop_priv from er where user='用户名';