mysql的常用命令

 Mysql常用命令

windows命令提示行下改密码Mysqldamin -u root -proot password   新密码,新密码

mysql -uroot -proot             登陆

mysql里面 修改密码alter user user() identified by ‘123‘;  root密码改成123

Mysql -h 127.0.0.1 -u root -p root  指定ip登陆

Select database();  查看当前数据库

Select version();    查看当前数据库版本

Select now();      查看当前时间

Select user();      查看当前用户

Show databases;   查看所有数据库

数据定义语言 ddl     创建库, 修改库(只能修改编码属性), 删除库

创建数据库   create database

Create database test;  创建数据库

Create database if not exists test1 创建数据库,如果不存在的话创建

Create database if not exists test2 character set utf8  给数据库指定字符集为utf8

修改数据库  alter  database

Alter database test1 character set latin1; 修改test1字符集为拉丁语

Use test1  使用test1数据库

show variables like ‘character%‘; 查看test1数据库字符集,已经为拉丁语 默认是utf8

删除数据库 drop database test1   删除数据库test1

数据库 控制语言dml       创建表 , 修改表, 更新表,删除表

创建表

CREATE TABLE IF NOT EXISTS test(

   `t_id` INT UNSIGNED AUTO_INCREMENT,

   `t_title` VARCHAR(100) NOT NULL,

   `t_author` VARCHAR(40) NOT NULL,

   `t_date` DATE,

   PRIMARY KEY ( `t_id` ))ENGINE=InnoDB DEFAULT CHARSET=utf8;

ENGINE 设置存储引擎,CHARSET 设置编码。

1、查看数据库表

Show tables from reader;      如果查询当前数据库中的表用show tables

2、查看数据表基本结构    desc 表名

Show columns from 表名; 或者用desc 表名;

3、查看表详细结构语句,可以用来显示数据表的创建语句

Show create table 表名;

alter修改列,只能修改列的属性包括字符类型,是否为空,是否唯一和键的约束。

添加列       alter table reader add email varchar30

修改列名     alter table reader change email msg varchar(20);  用first after指定放哪

修改列属性   alter table reader modify email varchar(30) email varchar25

删除列       alter table reader drop email2

修改表名     alter table reader rename to bookinfo

添加外键     alter table emp add foreign key (主表列名) refreences dept (从表列名)

删除表  drop table t1       drop table if exists table   如果存在就删除,不存在就不报错

表分区,意思就是把一张表分为多个分区,分区块也可以在不同的磁盘,单都属于这张表。

分区表在查询比较大的表时,这样比较快

检查系统是否支持表分区   mysql>show plugins 显示 partition  active 表示支持

创建表,指定分区 range 代表范围  应用于非常大的表

mysql> create table bookinfo(

    -> book_id int,

    -> book_name varchar(20)

    -> )

    -> partition by range (book_id)(

    -> partition p1 values less than(20109999),

-> partition p2 values less than(20159999)

    -> );

Query OK, 0 rows affected (0.07 sec)

查询时用 select * from bookinfo partitionp1;

Update 更新表 更新表里面的值

Update test1 set name=tomwhere id=1

事务。在做删除操作是先开启事务,

删除表         drop>truncate>delete   删除的效果;

Delete from where 条件   一行一行的删

Delete from

Truncate 表名, 直接清空表    不支持回滚

Drop  表名 直接删除整个表

Dml 支持事务

开启事务  begin,或者用start transaction 开启事务   

事务必须以commit   rollback结束;

select * from table    查询表

Distinct 去重   order by  一定要在最后才能用   默认升序asc   降序desc

Where 条件查询   >    <    >=     <=     <>   in     and,   or     not  

例;查询分数为80,90的人呢   select * from where 分数 in(80,90);

聚合函数一定要用()    Count    sum    avg      max      min

分组函数 group by       having    后面还能用聚合函数

Where 后面不能放聚合函数,而having后面能用

约束

主键约束 primary key    唯一约束 unique   非空约束 not null  

主键自增长auto_increment  只支持int bigint 类型  (先设置主键才能设置自增长)

Alter table 表名 modify id int auto_incrementprimary key

外键约束 foreign key (列名)references 主表名(列名)

外键在的表为从表,a为从表,b为主表 constraint 指定个外键名为wj

mysql> alter table a add constraint wj foreign key a(bno) references b(bno);

Query OK, 4 rows affected (0.06 sec)

Records: 4  Duplicates: 0  Warnings: 0

建表方式11    1对多,    多对多

在多方添加字段,作为外键,指向1方的主键;

笛卡尔积    select * from 1, 表2

内连接 select * from emp inner join dept on emp.dno=dept.did;

Select * from emp e, dept d where e.dno=d.did;

外连接:左外连接 select * from emp left outer join dept on emp.dno=dept.did;    常用左外连接

右外连接;select * from emp right outer join dept on emp.dno=dept.did;          outer可以省略

内连接和外连接的区别

内连接是查询的是2张表交集的数据,主外键所关联的数据

左外连接查询的是左表中所有数据和2张表主外键关联的数据

右外连接查询的是右表中所有数据和2张表主外键关联的数据

 

Mysql 备份数据库     主要用输入输出字符,备份>     还原<

在没有进入sql时,用命令行mysqldump -u用户名 -p > 文件路径备份名  然后输入密码

C:\Users\Administrator>mysqldump -uroot -p test > d:/test.sql      输出到d盘根目录

Enter password: ****

备份表

C:\Users\Administrator>mysqldump -uroot -p test emp >d:/emp.sql

Enter password: ****

数据库还原

在还原是必须先创建数据库,然后再还原,可以指定数据库名字

Mysql -uroot -p test < d:/etst.sql

表还原  在指定的库里用 source d:/test.sql

如果显示为乱码,输入命令 set names utf8

 

mysql的常用命令

上一篇:分布式系统:向量时钟


下一篇:Navicat远程连接服务器mysql