您现在的位置是:首页 > 领风资讯 > >> 返回

Mysql的一些命令

装好(hǎo)mysql数据库後(hòu),會(huì)有一个默认本地用户root,密码在你装数据库期间會(huì)提示你输入一个密码,那个就(jiù)是你的root密码
虽然别的用户也可以登录到数据库但是权限少的可怜
装好(hǎo)数据库後(hòu)我们可以通過(guò)注释掉配置文件/etc/mysql/my.cnf中的bind-address = 127.0.0.1這(zhè)行来使mysql可以远程登录(然後(hòu)重启有效)
在命令行模式下修改用户密码的方式

mysqladmin -u root -p password "新的密码";(不過(guò)在你修改密码時(shí),會(huì)让你先输入你的旧密码)
登录本地mysql数据库 ”mysql -u root -p  “回车它會(huì)让你输入密码,输入正确密码就(jiù)可以登录了
连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
登录mysql数据库後(hòu)使用的命令:(注意写完命令後(hòu)要加个分号来)命令字母可以不区分大小写
显示当前使用者的名字:select user();
查看所有的用户:select user,host,password from mysql.user;
显示当前用户的权限:show grants for 用户名@localhost;(当然用户必须是在数据库中已經(jīng)建立的用户,如果不是會(huì)显示错误)
创建新用户: create user username identified by ‘password’(此用户沒(méi)有任何权限或沒(méi)有任何身份);還(hái)可以這(zhè)样建新用户:  grant select,insert,update,delete on *.* to test2@localhost identified by ’abc‘;
删除新用户:Delete FROM mysql.user Where User='test' and Host='localhost';
刷新系统权限表:flush privileges; 
选择数据库:use databasename然後(hòu)可以對(duì)数据库進(jìn)行操作;
创建数据库:create database databasename
删除数据库:drop database databasename;
查看表:show tables;
修改表名:alter table tablename rename  newtablename;
查看表的结构:desc tablename;或者是 show columns from tablename;
删除表:delete from tablename;或者truncate tablename; delete的效果是將(jiāng)mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了這(zhè)个表,所有的状态都(dōu)相当于新表,因此效率上truncate比delete快,并且不可恢复数据 。
1) 创建一张學(xué)生表,包含以下信息,學(xué)号,姓名,年龄,性别,家庭住址,联系电话 
create table student 
(
 學(xué)号 int,
 姓名 varchar(10),
 年龄 int,
 性别 varchar(4),
 家庭住址 varchar(50),
 联系电话 varchar(11)
);(注意裡(lǐ)面(miàn)的英文、数字和括号用英文格式书写
2) 修改學(xué)生表的结构,添加一列信息,學(xué)历 
alter table student add column 學(xué)历 varchar(6);
alter table test modify 性别 char(10) --修改表列类型
3) 修改學(xué)生表的结构,删除一列信息,家庭住址 
alter table student drop column 家庭住址;//注意此处用drop而非delete
4) 向(xiàng)學(xué)生表添加如下信息:

  學(xué)号 姓名年龄性别联系电话學(xué)历

  1A22男123456小學(xué)

  2B21男119中學(xué)

  3C23男110高中

  4D18女114大學(xué) 
insert into student (學(xué)号,姓名,年龄,性别,联系电话,學(xué)历) values(1,"A",22,"男","123456","小學(xué)");(当插入的中文不能(néng)识别時(shí),可用nchar()或nvarchar(),改用unicode编码而不用ASCii编码
insert into student (學(xué)号,姓名,年龄,性别,联系电话,學(xué)历) values(1,"B",21,"男","119","中學(xué)");
insert into student (學(xué)号,姓名,年龄,性别,联系电话,學(xué)历) values(1,"C",23,"男","123456","高中");
insert into student (學(xué)号,姓名,年龄,性别,联系电话,學(xué)历) values(1,"D",23,"女","114","大學(xué)");
5) 修改學(xué)生表的数据,將(jiāng)电话号码以11開(kāi)头的學(xué)员的學(xué)历改为“大专”
update student set 學(xué)历="大专" where 联系电话 like "11%";
6) 删除學(xué)生表的数据,姓名以C開(kāi)头,性别为‘男’的记录删除 
delete from student where 姓名 like "C" and 性别="男";
7) 查询學(xué)生表的数据,將(jiāng)所有年龄小于22岁的,學(xué)历为“大专”的,學(xué)生的姓名和學(xué)号示出来 
select 姓名,學(xué)号 from student where 年龄<22 and 學(xué)历="大专";
8) 查询學(xué)生表的数据,查询所有信息,列出前25%的记录 
select top 25 percent * from student ; ????
select  * from student limit 25%;???? 這(zhè)条有问题,在sql 2000中应该是select top 25 percent * from student ;
9) 查询出所有學(xué)生的姓名,性别,年龄降序排列 
select 姓名,性别,年龄 from student order by 年龄 desc;
10) 按照性别分组查询所有的平均年龄 
select avg(年龄) as 平均年龄 from student group by 性别;
select avg(年龄) from student group by 性别;
select avg(年龄) 平均年龄 from student group by 性别;
3) 說(shuō)出以下聚合数的含义:avg ,sum ,max ,min , count ,count(*)

  AVG:求平均值

  SUM:求和

  MAX:求最大值

  MIN:求最小值

  COUNT(*):返回所有行数

  COUNT返回满足指定条件的记录值