目录
1.mysql默认登陆后默认登录的是mysql数据库;
2, 登陆mysql数据库
以mysql数据库管理员root,密码为123456为例;
mysql -uroot -proot
或者
mysql -uroot -p
或者
#/opt/mysql/bin/mysql -u root -p
如果找不到该命令,检查PATH变量,出现 Enter password:输入密码,回车。 然后出现:
mysql>
现在就进入了mysql的管理界面了, 注意在登陆之前,确保mysql已经启动。
3, 操作命令:
在mysql数据库中,每操作一个命令,都是;号结尾的。如果忘记加;使用\c退出。
显示已有的databases:
mysql> show databases;
4,创建和删除数据库
创建数据库:
mysql> create database [数据库名];
如:mysql> create database crc;
删除数据库:
mysql> drop database [数据库名];
如: mysql> drop database crc;
5, 操作数据库
首先是要指定一个数据库为当前数据库,应该用use命令,
mysql> use [数据库名];
6, 备份数据库
# mysqldump -u root -p linux > /root/linux.sql
然后输入密码 Enter Password:
首先备份数据库是要以数据库管理员的身份(非系统管理员)备份;其次:备份目的地是/root,备份的文件名是linux.sql。其实备份的位置和文件名,根据自己的情况来定。文件名可以自己来取,路径也可以自己来安排;
比如我想把linux的数据库备份到/home/beinan,数据库的文件名为localhost.sql,所以应该输入如下的命令。
[root@localhost root]#mysqldump -u root -p linux > /home/beinan/localhost.sql
7, 将备份的数据库导入到数据库中
比如我们要把在/home/beinan这个目录中的linuxsir031130.sql这个备份,导入名为linux的数据库中,应该如下操作:
# mysql -u root -p linux < /home/beinan/localhost.sql
Enter password:在这里输入密码
8、SQL DDL语句:
创建数据库表:
create table 表名(列名 数据类型,列名 数据类型(规定的数据长度),列名 数据类型(规定的数据长度));
create table students (id int,name varchar(25),age int,email varchar(255));
查询表中的内容:
desc 表名; 例如:desc students;
给表添加列:
alter table 表名 add 列名 数据类型; 例如:alter table students add score int; 就是给students表添加score列
修改列的数据类型:
alter table 表名 modify 要修改的字段 要修改成的数据类型; 例如修改表students的id字段的数据类型为bigint alter table students modify id bigint;
删除表中的字段:
alter table 表
名 drop 要删除的字段; 例如删除students 表的nums字段:alter table students drop nums;
修改表名:
rename table 要修改的表的表名 to 修改后的表的表名;
查看完整的创建表的信息:
show create table 表名;
修改默认字符集: alter table 表名 character set 要修改成的字符集; 比如要将上面表的字符集修改成utf8 alter table employee character set utf8;
修改表的列名:
alter table 表名 change 列名 修改后后的列名 该列的数据类型;
例如修改上图中表的那么列为newname列 alter table employee change name newname varchar(20);
删除表:
drop table 表名;
8、SQL DML语句(对表进行增删改查):
查询中的信息:
select 要查询的字段 from 表名; 例如查询students表中所有的信息 select * from students;
向表中增加数据:
insert into 表名(字段1,字段二,字段N) values (字段1的值,字段2的值,字段N的值),(字段1的第二个值,字段2的第2个值,字段N的第2个值),(字段的第N个值,字段二的第N个值,字段N的第N个值);
例如:给表添加三个字段
insert into students (id,name,age,email,score) values (1,'zhangsan',19,'12345@qq.com',80),(2,'lisi',20,'09876@qq.com',79),(3,'wangwu',23,'34567@qq.com',78);
更新表信息:
update 表名 set score=90; 更新score列中的所有数据
update 表名 set score=60 where name=zhangsan;更新score列中name是zhangsan的列
update 表名 set score=80,age=40 where name='wangwu'; 统一个name更改多个列的值时。
通过sql命令修改数据库密码:5.7之后的版本适用此密码
update mysql.user set authentication_string=password('123456') where user='root' and Host='loaclhost';
修改完需要刷新数据库配置信息:flush privileges;
通过mysql命令修改数据库密码:
mysqladmin -u root -p password 1234; 该命令必须提前配置环境变量,或者进入mysql数据库相应的bin文件夹才能执行。
删除表中指定的数据:
delete from 表名 where 列名=‘删除的值’; 例如:select from students where name='wangwu';
delete from 表名 ; 删除表中所有的数据
上面的删除表中信息的操作删除后可以恢复,下面的删除后不可以恢复,他是将表结构删除,然后在创建新的表;
truncate table 表名
9、SQL DQL语句:结构化查询
查询所有的列表信息:
select * from students;
查询指定的表信息:
select name,age from students;
条件查询:
select * from 表名 where 列一=值 and 列二=值;
and 代表且
or 代表或
范围查询:
根据关键字查询关键字里固定的某些值:select * from 表名 where 关键字 in (关键字里包含的值一,关键字里包含的值二,关键字里包含的值三);
例如: select * from students where id in(1,,2,3);
查询部分值为空的值得记录:
select * from 表名 where 字段 is null;
查询部分值部位空的值得记录:
select * from students where name is not null;
通过不等号的查询:
select * from 表名 where 字段 !=值;
范围查询,大于等于,小于等于:
select * from 表名 where 要查询的范围信息;
或者用between
模糊查询:
select * from 表名 where 字段 like ‘____’ ; 每个下划线代表一个字符,该例中查询name是四个字符的值
查询由八个字符组成,且最后一个字符是n的name的值:
select * from student where name like '_____n';
%通配符查询:
查询以m开头的学生记录
select * from students where name like 'm%';
查询第二个字母是i的所有name字段的值:
select * from students where name like '_i%;
查询带有s的左右名字:
select * from students where name like '%s%;
将重复信息过滤掉用distinct
select distinct name from students;
简单的数值类型计算:
select *,age+score from students;
如果出现空就自动忽略掉空,如果相加的值都为null 那就将计算结果设为0;
select *,infull(age,1)+ifnull(score,0) from students;
给计算结果列添加别名:
select *,ifnull(age,1)+infull(score,0) as total from students;
给查询结果添加别名:
select name as resName from students;
表的升序和降序:
select * from students order by age desc,id desc;
order by 表示排序, age desc 表示按age大小进行降序排序 id desc 表示在age一样的情况下根据id大小进行降序。
10,其他常用mysql指令
查看状态:
mysql>show status;
查看进程:
mysql>show processlist;
查看表,应该先指定一个数据库为当前数据库;比如是名为linux的数据库;show tables;
mysql>use linux;
mysql> show tables;
Empty set (0.00 sec)
显示当前mysql版本和当前日期
select version(),current_date;
mysqladmin drop databasename 删除数据库前,有提示。
mysql>describe user; 显示表mysql数据库中user表的列信息);
创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
mysql> grant all privileges on *.* to user@localhost identified by ’something’ with
增加新用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”