Chinaunix首页 | 论坛 | 博客
  • 博客访问: 187336
  • 博文数量: 26
  • 博客积分: 71
  • 博客等级: 民兵
  • 技术积分: 825
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-15 16:14
个人简介

希望在这里与大家一起交流学习,共同进步。。。

文章分类

全部博文(26)

文章存档

2019年(1)

2015年(5)

2014年(6)

2013年(13)

2012年(1)

我的朋友

分类: Mysql/postgreSQL

2013-11-08 14:21:48

当大家刚刚装好mysql数据库后,会有一个默认本地用户root,密码在你装数据库期间会提示你输入一个密码,那个就是你的root密码
虽然别的用户也可以登录到数据库但是权限少的可怜
装好数据库后我们可以通过注释掉配置文件/etc/mysql/my.cnf中的bind-address = 127.0.0.1这行来使mysql可以远程登录(然后重启有效)
在命令行模式下修改用户密码的方式

mysqladmin -u root -p password "新的密码";(不过在你修改密码时,会让你先输入你的旧密码)
登录本地mysql数据库 ”mysql -u root -p  “回车它会让你输入密码,输入正确密码就可以登录了
连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
登录mysql数据库后使用的命令:(注意写完命令后要加个分号来)命令字母可以不区分大小写
显示当前使用者的名字:select user();
查看所有的用户:select user,host,password from mysql.user;
显示当前用户的权限:show grants for 用户名@localhost;(当然用户必须是在数据库中已经建立的用户,如果不是会显示错误)
创建新用户: create user username identified by ‘password’(此用户没有任何权限或没有任何身份);还可以这样建新用户:  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然后可以对数据库进行操作;
创建数据库: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的效果是将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表,因此效率上truncate比delete快,并且不可恢复数据
1) 创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话
create table student
(
 学号 int,
 姓名 varchar(10),
 年龄 int,
 性别 varchar(4),
 家庭住址 varchar(50),
 联系电话 varchar(11)
);(注意里面的英文、数字和括号用英文格式书写
2) 修改学生表的结构,添加一列信息,学历
alter table student add column 学历 varchar(6);
alter table test modify 性别 char(10) --修改表列类型
3) 修改学生表的结构,删除一列信息,家庭住址
alter table student drop column 家庭住址;//注意此处用drop而非delete
4) 向学生表添加如下信息:

  学号 姓名年龄性别联系电话学历

  1A22男123456小学

  2B21男119中学

  3C23男110高中

  4D18女114大学
insert into student (学号,姓名,年龄,性别,联系电话,学历) values(1,"A",22,"男","123456","小学");(当插入的中文不能识别时,可用nchar()或nvarchar(),改用unicode编码而不用ASCii编码
insert into student (学号,姓名,年龄,性别,联系电话,学历) values(1,"B",21,"男","119","中学");
insert into student (学号,姓名,年龄,性别,联系电话,学历) values(1,"C",23,"男","123456","高中");
insert into student (学号,姓名,年龄,性别,联系电话,学历) values(1,"D",23,"女","114","大学");
5) 修改学生表的数据,将电话号码以11开头的学员的学历改为“大专”
update student set 学历="大专" where 联系电话 like "11%";
6) 删除学生表的数据,姓名以C开头,性别为‘男’的记录删除
delete from student where 姓名 like "C" and 性别="男";
7) 查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号示出来
select 姓名,学号 from student where 年龄<22 and 学历="大专";
8) 查询学生表的数据,查询所有信息,列出前25%的记录
select top 25 percent * from student ; ????
select  * from student limit 25%;???? 这条有问题,在sql 2000中应该是select top 25 percent * from student ;
9) 查询出所有学生的姓名,性别,年龄降序排列
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) 说出以下聚合数的含义:avg ,sum ,max ,min , count ,count(*)

  AVG:求平均值

  SUM:求和

  MAX:求最大值

  MIN:求最小值

  COUNT(*):返回所有行数

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

阅读(2816) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~