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而非delete4) 向(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返回满足指定条件的记录值