mysql的简单命令

MySQL的命令介绍:
 
连接数据库服务器命令:
mysql -u 用户名 -p 密码
 
mysql是连接MySQL数据库的命令 -u表示后跟用户名 -p 后跟密码
 
如果登录后展示 "mysql >"表示登录成功
 
退出数据库命名:
quit;    或者 exit;   (注意MySQL以“;”结束一个语句)。
 
1、库相关的命令操作:
1.1、查看所有的库sql:
show databases;
 
1.2、创建数据库的SQL:
create database database_name;
 eg:创建一个名为test1的数据库
 
1.3、删除数据的SQL:
drop database database_name;
 
1.4、选择数据库的SQL:(多个数据库下,选择要使用的)
use database_name;
 
1.5、展示当前库下的所有的表SQL:
show tables;
2、表操作
 
2.1、创建表
create table table_name(
属性名 数据类型[完整性约束],
属性名 数据类型[完整性约束],
...
属性名 数据类型[完整性约束]
);
注意:在数据库创建的时候要选取合适的数据类型,而且
还要添加完整性约束,两个属性之间用逗号隔开,
完整性约束条件有:
-------------------------------------
     约束条件       | 说明
primary key        | 修饰的属性是该表的主键
foreign key         | 修饰的数据是该表的外键
not null               |表示该字段不能为null   
unique                |修饰的属性值是唯一的
auto_increment  |mysql的特色,表示该属性是自增的   
default                | 设置属性默认值
 
 数据类型:
int:整型
data:日期,只包含年月日 yyyy-MM-dd
datatime:   yyyy-MM-dd  HH:mm:ss
timestamp:时间戳类型 (包含年月日时分秒)如果将来不给这个字段赋值,或者赋值为null,则默认当前系统的时间自动赋值
varchar:字符类型
eg:create table t2(id int primary key, name varchar(5));
 
2.1、查看表
 
2.1.1、 desc table_name;
用desc可以查看表的字段名称、类型、是否为空、约束条件、默认值、备注信息
 
2.1.2 show create table table_name;
show create table可以打印创建的表的SQL,
并且显示该表的存储引擎和字符集编码
 
3.修改表:
 
修改数据库字符集:alter database 数据库名称 character set 字符集名称;
 
修改表名:   alter   table   旧表名  rename(to) 新表名;
 
修改表的字段类型:alter table 表名 modify 属性名 数据类型;
eg:alter table t1 id bigint;
 
修改表中属性名:alter  table  表名  change  旧属性名  新属性名  数据类型;
eg:alter table t1 change id idd int;
 
增加新的字段:
alter table 表名 add 属性名 数据类型 [约束条件] [first/        afters 属性名1];
 
删除属性:
alter table 表名 drop 属性名;
 
修改属性的排列顺序:
alter table 表名 modify 属性名1 数据类型  first/    after 属性名2;
 
修改表的存储引擎:
alter table 表名 engin = innodb | myisam;
 
4.删除:
 
drop database 数据库名称
删除前判断:drop database if not exists 数据库名称
 
删除属性SQL:
alter table table_name drop 属性名;
eg:alter table t1 drop age2;
 
5.查询
查询表SQL
SQL基本的结构如下:
select 属性列表 from table_name [where 条件表达式1]
[group by 属性1 [having 条件表达式2]]
[order by 属性2 [asc | desc]]
 
5.1 带in的子查询
[not] in(元素1,元素2...元素n)
eg:select * from Student where SID in (1,3,5);
 
5.2 带between and 的范围查询
[not] between 取值1 and 取值2
eg:select * from Student where SID between 3 and 7;
 
 5.3 带like的模糊查询字符串
[not] like 'abc';
注意:like可以结合通配符使用
%:表示0个或者是任意长度的字符串
_:只能表示单个字符 
eg:select * from Student where Sname like 'CJ%';
   
5.4 空值查询
is [not] null;   
eg:select * from Student where Sage is not null;
 
 5.5 带and 的多条件查询
条件表达式1 and 条件表达式2 [and ...条件表达式n]
eg:select * from Student where Ssex ='nan' and Sage=20;
 
 5.6 带or的多条件查询
条件表达式1 or 条件表达式2 [or ...条件表达式n]
 
 5.7 去重复查询
select distinct 属性名
eg:select distinct Sage from Student;
 
 5.8 对结果排序
order by 属性名 [asc| desc];
asc:升序(默认是升序)  
desc:降序
eg:select * from Student order by SID asc;
 
5.9 分组查询
group by 属性名[having 条件表达式]
eg:select * from Student group by Ssex having Sage >= 18;
 
 5.10 limit分页查询
不指定起始位置 limit是记录数
eg:select * from Student limit 3;
 
指定初始位置是limit的起始位置、记录数
eg:select * from Student limit 2,5;
 
多表查询:
内连接、左连接、右连接
内连接:将连接的两个表共同存在的数据(共同存在的)获取
左连接:将左表对应的数据全部展示,左表存在右表 不存在的数据时,将右表对应字段填充为null
右连接:将右表对应的数据全部展示,右表存在左表不存在的数据时,将左表对应的数据全部填充为null
 
联合查询
内连接:
select 属性名1...属性名n from 表名1 inner join 表名2 on 表名1.属性 = 表名2.属性(注:属性指关联的字段,即使用外键)
外连接:
select 属性名1,...,属性名n from 表名1 lift|right join 表名2 on 表名1.属性 = 表名2.属性(注:属性指关联的字段,即使用外键)
复合查询:select 属性名1 ... 属性名2 from 表名1,表名2 where 表名1.属性 = 表名2.属性
 
批量插入数据:
insert into table_name (属性名1,...,属性名n)
values
(值11,...值1n),
(值21,...值2n),
...
(值n1,...值nn);
 
 
2、索引使用的SQL
  若查询表中存在上万的数据量,使用索引可以大大提高查询效率
2.1 创建表的时候指定索引字段的SQL
create table table_name(
   id int primary key,
   name varchar ,
   index(id)
);
在创建SQL时指定字段创建索引index(id),指对id字段添加索引
eg:create table test3(id int, name varchar(5),age int, index(name));
该表中创建了索引名为'name'作用于name属性到的索引
 
2.2、在已存在的表中添加索引
2.2.1、create [unique|fulltext|spatial] index 索引名 on 表名(属性名);
eg:create index idx_age on test3(age)
 
2.2.2 alter table 表名 add  [unique|fulltext|spatial] index 索引名 (属性);
eg:alter table test3 add index idx_id_name(id,name);
 
2.3、删除索引
drop index 索引名 on 表名;
eg:drop index idx_age on test3;
 
2.4、展示索引
show create table 表名;
eg: show create table test3;
    +-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table | Create Table                                                                                                                                                                                                        |
    +-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | test3 | CREATE TABLE `test3` (
      `id` int(11) DEFAULT NULL,
      `name` varchar(5) DEFAULT NULL,
      `age` int(11) DEFAULT NULL,
      KEY `name` (`name`),
      KEY `idx_id_name` (`id`,`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
其中:KEY 后即为该表中的索引 展示的格式为KEY  索引名(索引对应的字段)
 
 
 

猜你喜欢

转载自www.cnblogs.com/128-cdy/p/11941076.html