Mysql数据库常用操作语句
最近在学习Mysql数据库的使用,记录一些常用操作指令。根据学习进度更新。可能有错误 仅供学习参考
Data Definition Languages 数据定义语言,定义了数据库的表,字段,列等对象。
1.登录数据库:
mysql -u用户名 -p登录密码
2.创建数据库:
create database 数据库名
3.显示所有数据库:
show database
4.查看已有数据库:
use 数据库名
5.查看数据库中的表:
show tables
6.删除数据库:
drop database 数据库名
7.创建表:
create table 表名(字段名称 字段类型(字段长度))
8.查看表结构:
desc 表名
查看创表时的sql语句
show create table 表名 \G:
9.删除表:
drop table 表名
10.修改表操作:
修改字段类型:
alter table 表名 modify 字段名 修改的类型
增加字段:
alter table 表名 add column 字段名称 字段类型 [first\after 字段名]
删除字段:
alter table 表名 drop column 字段名称
字段改名:
alter table 表名 change 要改的字段名 改正过的字段名 字段类型
修改字段排列顺序
alter table 表名 modify 字段名 字段类型 [frist\after 字段名] first:排列在最前面 after:排列在字段后
修改表名
alter table 旧表名 rename[to] 新表名
查看数据库编码
show create database 数据库名
查看表编码
show create table 表名
修改表编码
alter table 表名 default character set 编码类型(utf8,gbk)
修改字段编码
alter table表名 modify 字段名 varchar(20) character set 字符编码;
添加索引
普通索引
建表时添加:
create table 表名( 字段名称和类型, index/key 索引名称(添加索引的字段) );
为已有字段添加:
alter table 表名 add key(添加索引的字段名称);
为字段删除索引:
alter table 表名 drop key 索引名称,如果没用定义索引名称默认为字段名;
添加自动递增:
字段名称 INT(10) NOT UNLL PRIMARY KEY AUTO_INCREMENT,
唯一索引:
建表时添加:
create table 表名(字段名, unique index (添加索引字段名));
为已有字段添加:
alter table 表名 add unique 索引名 (字段);
删除索引:
alter table 表名 drop key 索引名;
主键索引:
create table 表名( 字段,primary key(字段));
主键不能有null
**
**
DML语句是对表中的数据进行操作,主要包括向表中插入记录,更新,删除和查询。
1.插入记录
insert into 表名 (字段名称) values(插入值)
同时插入多条:
insert into 表名 (字段名可省略)values (插入值1),(插入值2)
2.更新记录
update 表名 set 更新字段名称=更新值 where 主键字段名称=
3.删除记录
delete from 表名 where 字段=
同时删除多个表数据
delect a ,b from 表名一 a ,表名二 b where 约束条件
注:a b 为表的别名 当from后引用表别名时 delect后也要用表别名
4.查询记录
查询所有记录:
select * from 表名
查询不重复的记录:
select distinct 字段名 from 表名
条件查询:
select * from 表名 where 条件
注:条件中可以用=,<等多种比较运算符,多个条件中还可以用or,and 等进行关联查询
排序:
select * from 表名 [where condition] order by 字段名 [desc/asc]
desc ,asc为排序关键字 desc为降序排列 asc 为升序排列 默认为asc
对排序后的数据通常使用limit关键字进行显示限制
selct * from 表名 order by 字段名 limit 偏移量
默认偏移量为0 limit 3 为显示前三条记录 limit 1,3 显示从第二条开始的三条记录
表连接
select 字段名,字段名 from 表一,表二 where 查询条件
左连接:包含所有左边的记录甚至是右边的表中没有与其匹配的
右连接:包含所有右边的记录甚至是左边的表中没有匹配的
select 字段一 ,字段二 from 表一 left join 表二 on 查找条件
此时会显示表一中相关字段的所有信息包括没有根据条件匹配表二的,右连接反之
子查询
子查询关键字:in ,not in,=,!=,exists,not exists等
select * from 表一 where 条件
可把另一个表的查询结果作为查询条件
select * from 表一 where 字段 in(select 字段 from 表二)
子查询在一些条件下可以和表连接插叙相互转换
若有错误请在评论指出!