DOS中对MySQL的操作

首先在本机安装好MySQL环境。

写操作语句之前,写几点MySQL的基本知识。

1.什么是数据库

SQLStructure Query Language

存数据的仓库/集合,并有一定的规则结构

SQL是客户端操作数据库的一种工具、命令,主要以存取为主

2.数据库简介

Oracle/java    java的主要数据库是Oracle

 SQLServer/Microsoft(微软)       Microsoft(微软)的数据库是SQLServer

  DB2/IBM         IBM的数据库是DB2

MySQL的最好运行效果环境:Linux+Apache+MySQL+Php

3.卸载MySQL

在控制面板的服务列表里先停止服务,然后再卸载。

4.SQL[通用/特定]与数据库的关系

1)每种关系型数据库都支持的SQL命令,叫通用SQL

2)每种关系型数据库都根据自身数据库的特点,量身定做的SQL,叫特定SQL

5.数据库语句,大小写不敏感,在MySQL环境中,语句要加分号,不在则不加分号。

以下是在DOS中对MySQL的具体语句操作并附上截图。

windows + R在运行窗口输入cmd

打开DOS命令窗口

 

进入MySQL(数据库服务器)

 

mysql -u  -p

输入正确的用户名和密码后,显示如下内容:

1.显示mysql中的所有数据库

语句:mysql> show databases;

显示内容:

       这个列表显示的mysql中的存放的所有数据库的名字。

2.在mysql中创建一个名为users的新数据库。

语句:mysql> create database users;

如果成功的话显示如下内容:

在创建完以后输入:mysql> show databases;

显示:

    说明新的名为users的数据库已经创建成功了。

在新建的同时可以设置数据库的字符格式,语句:mysql> create database users character set utf8;

用语句:mysql> alter database mydb2 character set gbk;    可以修改数据库的字符格式。

 如果不设置的话,默认的数据库格式是utf8

在创建数据库的时候也可以加判断语句:mysql> create database if not exists users;不存在则创建,存在则不创建。

3.查看数据库的定义信息

 语句:mysql> show create database users;

效果:

 

 4.在数据库列表中选择要使用的数据库的名字,以便以后对它的操作。

语句:mysql> use users database;

显示:    以后便是对users这个数据库的操作了。

5.在数据库中创建名为user的表,并增加id、password、name、age、birthday的属性。

语句:mysql> create table user(id int,name varchar(20),password varchar(6),age int,bir
thday date);

char格式是固定长度。长度最长为65535,char(x)  x的值为多少,长度就为多少,即使输入的字符的长度小于x,也按x的长度计算。

varchar 可以伸缩长度(与char的主要区别),最大程度的利用资源。长度最长为65535,  varchar(20)  代表某个属性最多放入20个字符。

int5)  如果数据<5,则右对齐,数据长度默认为5位,如果大于5位,按照插入值的多少改变位数,但是必须满足int类型的大小。

date类型的数据会进行自动检测,如‘2013-04-26’符合要求,但是如果写‘2013-04-33’已经超出最大值31天,会报错。

datetime精确到时分秒,如果不放入具体的值,默认为00:00:00

 

timestamp不往里面放入值的时候,默认的是当前时间,精确到时分秒。

 

 

下面的也是数据库中字段的属性及其取值范围

tinyint/smallint/mediumint/int/bigint     1B/2B/3B/4B/8B (占多少位,取值范围)

tinyblob/blob/mediumblob/longblob      255B/64K/16M/4G  图片音乐等二进制数据

text(存放大于65535个字符的数据)

tinytext/text/mediumtext/longtext         255B/64K/16M/4G  文本数据

 

Float 类型

float6,2)  4个字节   6代表总长度,2代表小数点后面的位数,自己可以进行四舍五入

插入的数据不能超过6位,否则报错。

double6,2)  8个字节

6.显示数据库中的所有表的信息

语句:mysql> show tables;

显示:

7.显示表user的定义信息

语句:mysql> show create table user;

 显示:

还有一种查看表的定义信息的方式,个人比较偏好这种。

语句:mysql> desc user;

显示:

8.查看表中的具体信息

语句:mysql> select * from user;

对于新建的表,会显示:

 

 9.向表中插入具体信息

语句:mysql> insert into user(id,name,password,age,birthday) values (1,'merry','123456
',22,'2013-04-26');

此时输入语句:mysql> select * from user;

显示:

输入语句多加入几条数据,以方便下面的操作。

加入的语句如下:

mysql> insert into user(id,name,password,age,birthday) values (2,'jack','111111'
,23,'2013-04-26');

mysql> insert into user(id,name,password,age,birthday) values (3,'kitty','222222
',21,'2013-04-26');

mysql> insert into user(id,name,password,age,birthday) values (3,'happy','333333
',20,'2013-04-26');

然后输入语句:mysql> select * from user;

显示:

10.更个表中的信息(将名字为happy的id改为4)

语句:mysql> update user set id=4 where name='happy';

再输入语句:mysql> select * from user;

显示:

      id更改成功。

11.删除表中的某行信息

语句:mysql> delete from user where id=4;

再输入语句:mysql> select * from user;

显示

     删除成功。

Delete from 与 truncate的区别:

Delete from:按行删除表中的所有记录,但会保留表,适合删除数据量不大的数据,可按条件删除。

Truncate:复制原表结构 ==> 一次性删除整表 ==>自动恢复原表结构,适合删除数据量较大的数据,不能按条件删除。

Drop table:删除表本身。

在这里加入删除表和数据库的语句:

删除表,语句:mysql> drop table user;

删除数据库,语句:mysql> drop database users;

12.动态向表中加入列

语句:mysql> alter table user add gender varchar(5);    向表中加入一个列名为gender的列。

输入语句:mysql> desc user;

显示:

再输入语句:mysql> select * from user;

显示:

改变gendervarchar的长度,并设置默认值为man,依据上图不设置的话默认值都是null 

语句:mysql> alter table user modify gender varchar(10) default 'man';

再输入:mysql> desc user;

 

 

 显示:

将新增加的名为gender的列删除

语句:mysql> alter table user drop column gender;

再输入:mysql> desc user;

显示:

13.select语句的详细介绍

mysql> select * from user;   查询表中的所有信息。

显示:

mysql> select name from user;   查看具体列的信息。

 mysql> select distinct name from user;   过滤表中的重复数据。(列中的数据有重复的则不显示)

mysql> select id+10 from user;     显示id+10 以后的id的值,列名为id+10

显示:

让列名仍为id,语句:mysql> select id+10 as id from user;

显示:

下面对语句做个介绍。

 

mysql> select name,math+english+chinese as 总分 from student;  显示名字和三列的总分。

mysql> select * from users where name=’yulu’;        显示名字为yulu的行信息。

mysql>select * from users where id>14;

 

mysql>select * from users where english between 80 and 90;  查询英语成绩在8090之间的同学。  

mysql>select * from users where english >=80 and/&& <=90;  这样也可以查询

其中的逻辑运算符  and &&

  or ||

  not !

 

查询特定分数的同学

mysql>select * from users where english=89 or english=90 or english=91;

或者

mysql>select * from users where english in(89,90,91);   不在的话就是 not in(89,90,91)

 

查询name列以李开头的成员的数据

mysql>select * from users where name like ‘李%’;   %代表多个字符,_代表一个字符。

   

查询表中带null的数据

mysql>select * from users where name is null;

mysql>select * from users where name is not null; 不为空的

 

 

排序 order by    默认情况下为升序,order by 必须放置在最后。

  排序 null值为最小

mysql>select * from users order by math asc;   按数学成绩进行升序排序,asc可加可不加,因为默认为升序。

mysql>select * from users order by math desc;   按数学成绩进行降序排序。

 

 

对姓李的学生按总分降序输出:

mysql> select name,math+english+chinese as 总分from users where name like ‘李%’ order by  name,math+english+chinese desc;

 

 

Count函数

统计总人数:

Mysql> select count(*) as 总人数from student;

 显示:

Mysql> select count(*) as 总人数from student where math>80;

 

Count(*)   *可以变成具体的列名,统计具体列的个数,其中null不算。

 

Sum函数

Mysql> select sum(id) from student;   统计数学成绩的总和。不要统计非数值,如果统计非数值,返回0,不报错。

显示:id的总和

 

mysql> select sum(math) as 数学总分,sum(chinese) as 语文总分 from student;分别统计两科的总分。

mysql> select sum(math) + sum(chinese) as 总分 from student; 统计两科成绩的总和。

 

统计一个班语文成绩的平均分

mysql> select sum(chinese)/count(*) from student;

 

14.额外知识

备份数据库文件

语句:C:\Documents and Settings\Administrator>mysqldump -u root -p users>d:\users.sql    (在数据库外面操作的语句不需要加;)
        Enter password: ******

此时在d盘中出现了一个名为users.sql的文件。

然后在mysql中删除users数据库中的user;

 

恢复数据:

语句:source d:\users.sql           (千万记住这里不加分号)

 

 

 

 

posted @ 2013-04-25 16:39  kuaileyuyi  阅读(367)  评论(0编辑  收藏  举报