注册 登录
LUPA开源社区 返回首页

zhull1052的个人空间 http://www.lupaworld.com/?73681 [收藏] [复制] [分享] [RSS]

我的博客

必须掌握的sql语句

热度 4已有 1116 次阅读2011-5-5 17:06 |个人分类:sql类|系统分类:IT技术|

以下几个步骤是我们必须操作的步骤。

步骤1:用root用户登陆mysql

peter@peter-laptop:~$ mysql -uroot -p

步骤2:创建一个新的数据库,此处创建的数据库名为store

mysql> create database store;

步骤3:查看mysql服务器上的所有数据库。

mysql> show databases;

步骤4:打开数据库store

mysql> use store

步骤5:创建一个表及其结构。此处创建的表名为commodity;其中,IDnamepricestocksunitsupplierin_timedeadtime为字段;primary key设置ID字段为主键。各字段后设置的是字段的属性,如varchar(10)表示字符型,且大小为10个字符。

mysql> create table commodity(`ID` varchar(10) NOT NULL default '0', `name` varchar(20) NOT NULL default '0', `price` decimal(7,2) default NULL , `stocks` int(5) NOT NULL default '0', `unit` char(2) default NULL, `supplier` varchar(50) default NULL, `in_time` date NOT NULL default '0000-00-00', `deadtime` date NOT NULL default '0000-00-00', primary key (ID));

Query OK, 0 rows affected (0.13 sec)

步骤6:查看commodity表的字段与属性。

mysql> describe commodity;

+----------+--------------+------+-----+------------+-------+

| Field | Type | Null | Key | Default | Extra |

+----------+--------------+------+-----+------------+-------+

| ID | varchar(10) | NO | PRI | 0 | |

| name | varchar(20) | NO | | 0 | |

| price | decimal(7,2) | YES | | NULL | |

| stocks | int(5) | NO | | 0 | |

| unit | char(2) | YES | | NULL | |

| supplier | varchar(50) | YES | | NULL | |

| in_time | date | NO | | 0000-00-00 | |

| deadtime | date | NO | | 0000-00-00 | |

+----------+--------------+------+-----+------------+-------+

8 rows in set (0.02 sec)


步骤7:插入记录。

mysql> insert into commodity (`ID`,`name`,`price`,`stocks`,`unit`,`supplier`,`in_time`,`deadtime`) values ('HZ07A00001','酸奶','2.50','100','','伊利乳液有限公司','2011-05-05','2012-01-05');


注意:字符的中英文区别

步骤8:查看commodity表的所有记录。

mysql> select * from commodity;

+------------+--------+-------+--------+------+--------------------------+------------+------------+

| ID | name | price | stocks | unit | supplier | in_time | deadtime |

+------------+--------+-------+--------+------+--------------------------+------------+------------+

| HZ07A00001 | 酸奶 | 2.50 | 100 | �� | 伊利乳液有限公司 | 2011-05-05 | 2012-01-05 |

+------------+--------+-------+--------+------+--------------------------+------------+------------+

1 row in set (0.00 sec)



以上就完成了一个数据库的创建、表的创建、记录的插入与查看的过程,这些都是mysql的一般操作。

当然,还有以下几个:

1)清除表中的所有数据,操作如下:

mysql> delete from commodity;

2)删除表,操作如下:

mysql> drop table commodity;

3)删除数据库,操作如下:

mysql> drop database store;



从以上可以看到unit字段为乱码,那是因为字段类型大小太小了,解决方法如下:

解决方法:(1)修改字段的属性。

unit字段的属性char修改为varchar

mysql> alter table commodity change unit unit varchar(4);


对字段的操作,还有如下:

(2)给表添加一个字段

mysql> alter table commodity add address varchar(40) AFTER `deadtime`;

表示在字段deadtime后,添加address字段,属性为varchar(40)


3)改变字段顺序

mysql> alter table commodity change `address` `address` int not null default 0 AFTER supplier;

4)删除个字段

mysql> alter table commodity drop address1;

Query OK, 2 rows affected (0.10 sec)

Records: 2 Duplicates: 0 Warnings: 0




5)重命名表

mysql> alter table commodity rename commodity_bak;

Query OK, 0 rows affected (0.02 sec)


6)删除某条指定的记录。删除ID号为HZ07A00001的商品。

mysql> delete from commodity where ID='HZ07A00001';


7)修改某条记录的数据,给name为“酸奶”的商品,修改或添加address地址。

mysql> update commodity set address='浙江杭州' where name='酸奶';


8)查看指定的记录,如查看name为“酸奶”的记录。

mysql> select * from commodity where name='酸奶';

+------------+--------+-------+--------+------+--------------------------+--------------+------------+------------+

| ID | name | price | stocks | unit | supplier | address | in_time | deadtime |

+------------+--------+-------+--------+------+--------------------------+--------------+------------+------------+

| HZ07A00002 | 酸奶 | 2.50 | 100 | | 伊利乳液有限公司 | 浙江杭州 | 2011-05-05 | 2012-01-05 |

+------------+--------+-------+--------+------+--------------------------+--------------+------------+------------+

1 row in set (0.00 sec)


9)创建一个新表,要求字段及其属性与commodity表一样。此时,我们无需像创建commodity表那样麻烦,我们可以用以下SQL语句就可实现,非常方便。

mysql> create table commodity_1 like commodity;

Query OK, 0 rows affected (0.09 sec)


10)添加与删除主键

什么是主键:主键是数据表的唯一索引,比如学生表里有学号和姓名,姓名可能有重名的,但学号确是唯一的,你要从学生表中搜索一条纪录如查找一个人,就只能根据学号去查找,这才能找出唯一的一个,这就是主键

添加ID字段为主键

mysql> alter table commodity_1 add primary key(ID);

删除主键

mysql> alter table commodity_1 drop primary key;


11)显示每个商品的总数和求所有商品的总和。

mysql> select stocks as totalstocks from commodity;

+-------------+

| totalstocks |

+-------------+

| 100 |

| 100 |

| 5 |

+-------------+

3 rows in set (0.00 sec)



mysql> select sum(stocks) as sumvalue from commodity;

+----------+

| sumvalue |

+----------+

| 205 |

+----------+

1 row in set (0.00 sec)


还有平均数avg(stocks)、最大数max(stocks)、最小数min(stocks),方法类似。


12)备份与恢复数据库

1、备份数据库

a)将store数据备份为store.sql。操作如下:

peter@peter-laptop:~$ mysqldump -uroot -p --database store>store.sql


b)同时备份多个数据库,将服务器中的名为studentsmember数据库,备份为stu_meb_100507.sql。操作如下:

[root@localhost ~]# mysqldump -u root –p --database students member > stu_member_100507.sql

在备份多个数据库时,要加参数“--database”,数据库名称之间用空格隔开即可。


c)备份服务器上所有的数据库,操作如下:

[root@localhost ~]# mysqldump -u root -p --all-databases > all_databases_100507.sql

在备份服务器上所有的数据库时,需要添加参数--all-databases

d)备份一张表,

[root@localhost ~]# mysqldump -u root -p students class_1 > students_class1_100507.sql


2、恢复数据库

peter@peter-laptop:~$ mysql -uroot -p --database store<store.sql

 已同步至 zhull1052的微博

刚表态过的朋友 (0 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册
验证问答 换一个 验证码 换一个

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部