如果你习惯用 windows 的数据库,也就是在 图形界面上操作数据库的话,那么当你在命令上 操作 mysql 将会感到陌生,其实只要你掌握了一些基本命令,还有经常使用,熟练起来了, 将会相当方便,而且很快速。
好了,现在开始 带一些刚接触mysql 的朋友 进入mysql 的世界吧。 呵呵。
注意 -V 是大写字母V
[root@localhost ~]# mysqladmin -V
mysqladmin Ver 8.42 Distrib 6.0.4-alpha, for redhat-linux-gnu on i686
这样就知道我当前使用的 mysql 版本是 6.0.4-alpha
----------------------
当你安装完数据库后,当然就是要进入mysql 进行测试一番。
首先登陆 退出命令 这个应该是最基本的了。
mysql -uroot -p123
这个表示用户名为 root 密码为123
出现 mysql> 这个符号,表示你成功登陆进去了
然后你就可以输入一些命令让 mysql 显示相关的信息出来,例如看我下面操作
---------------------------------
查看数据库列表
mysql> show databases;
+--------------------+
|
Database
|
+--------------------+
| information_schema |
|
17rumen
|
|
mysql
|
|
test
|
+--------------------+
4 rows in set (0.01 sec)
这样上面就显示出 4个数据库了。
我忘记说了, 当你输入mysql 命令后, 要加入 ; 分号,说明 这条命令接触了
然后按一下 回车就可以了。
------------------------------
当你想要进入 某一个数据库的 那么就使用下面命令:
use 数据库名字;
例如 use mysql; 表示进入mysql这个数据库
进入数据库后,就可以查看 当前数据库的数据表。
show tables;
就会把 当前数据库的所有表列出来;
---------------------------------
然后就可以 查看一些表的内容,也就是 字段的内容
例如:
select User,Password from user;
这是查看mysql 数据库的用户名和密码,当然这密码是加密后的
=====================
别看这些步骤有些复杂,其实很好理解,一层层进去查看而已
你要查看数据表,当然要进入 某个数据库,
当你要查看表的数据的时候 就要进入某张表。
这个当然不用, 例如 你随时可以进入 其他数据库
例如我现在当前位置在 mysql 数据库的某一张表上,
我可以直接 use 17rumen; 直接进入到 17rumen 这个数据库上去。
是吧, 很方便的。
========================================
然后说一下 跨数据库查询, 也就是我当前在一个数据库 查看另外一个数据库上的
信息内容。
我当前在 mysql 这个数据库上, 要查 17rumen 这个数据库上的 news 表内容
如何呢?
select * from 17rumen.news;
这样就可以了, 不需要在17rumen 数据库上进行操作。
看到了吧,这样就可以很方便进行操作,剩下很多时间。
=================================
还有就是 查看某一张表的 结构,包括字段名,是否允许为Null,主键,外键,默认值,等等。
desc user;
就是查看 user 表的结构, Field 表示字段名 ,Type 表示 字段的数据类型
---------------
如果你想要看某个字段的详细信息
例如刚才 desc user; 只是查看表的结构
下面接着查看 user 表的 Host 字段的信息
desc user Host;
就把 Host 字段显示出来
desc user Host;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default |
Extra |
+-------+----------+------+-----+---------+-------+
| Host | char(60) | NO | PRI
|
| |
+-------+----------+------+-----+---------+-------+
1 row in set (0.00 sec)
看到不允许为空, Key 为 PRI 表示 这个就是 主键来的。
================
一些基本常用命令就 到这里, 当然还有 退出命令 就是 exit; 就可以了
以后还会为大家介绍 创建数据库 表 查询 删除 添加 等等的操作。 谢谢观看
在命令行模式下修改用户密码的方式:
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返回满足指定条件的记录值