
使用Mysql,打开 相应的服务
。启动……
- 打开命令窗口。此处有多种方法,我是在开始菜单(Mysql5.6 Command Line Client)打开的(简单)。
mysql -h localhost -u root -p #开始菜单不需要此命令
- 登陆,使用安装时设置的密码。
输入你的密码。
- 登陆成功就可以愉快地玩耍勒。
- 先全局观望,发现有五六七八个左右的数据库。
mysql> show databases; #看看本地有哪些数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| test |
| testdb |
| world |
+--------------------+
7 rows in set (0.00 sec)
* 厉害了我的world,我想看看哪个里面都有什么?
mysql> use world; #使用world库
Database changed
mysql> show tables; #看看库里有什么东东(表)
+-----------------+
| Tables_in_world |
+-----------------+
| city |
| country |
| countrylanguage |
+-----------------+
3 rows in set (0.00 sec)
* 先猫一眼city的样子。
mysql> desc city; #看看city模式(database schema),包括五个属性(attribute)
+-------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Name | char(35) | NO | | | |
| CountryCode | char(3) | NO | | | |
| District | char(20) | NO | | | |
| Population | int(11) | NO | | 0 | |
+-------------+----------+------+-----+---------+----------------+
5 rows in set (0.09 sec)
* 再看看city表(table)里面有数据吗?
| 4075 | Khan Yunis | PSE | Khan Yun
is | 123175 |
| 4076 | Hebron | PSE | Hebron
| 119401 |
| 4077 | Jabaliya | PSE | North Ga
za | 113901 |
| 4078 | Nablus | PSE | Nablus
| 100231 |
| 4079 | Rafah | PSE | Rafah
| 92020 |
+------+--------------------------------------+-------------+---------
---------------------+------------+
4079 rows in set (0.06 sec)
-
发现有4079条记录(数据)
,太多了,缓冲区都不够用,我的命令都没了。如何是好?
mysql> select * from city limit 0,5; #只要前5行,从第0行开始,列出总计5行OK
+----+----------------+-------------+---------------+------------+
| ID | Name | CountryCode | District | Population |
+----+----------------+-------------+---------------+------------+
| 1 | Kabul | AFG | Kabol | 1780000 |
| 2 | Qandahar | AFG | Qandahar | 237500 |
| 3 | Herat | AFG | Herat | 186800 |
| 4 | Mazar-e-Sharif | AFG | Balkh | 127800 |
| 5 | Amsterdam | NLD | Noord-Holland | 731200 |
+----+----------------+-------------+---------------+------------+
5 rows in set (0.00 sec)
mysql> select * from city limit 4074,5; #从4074开始,跟数组类似。只要5行
+------+------------+-------------+------------+------------+
| ID | Name | CountryCode | District | Population |
+------+------------+-------------+------------+------------+
| 4075 | Khan Yunis | PSE | Khan Yunis | 123175 |
| 4076 | Hebron | PSE | Hebron | 119401 |
| 4077 | Jabaliya | PSE | North Gaza | 113901 |
| 4078 | Nablus | PSE | Nablus | 100231 |
| 4079 | Rafah | PSE | Rafah | 92020 |
+------+------------+-------------+------------+------------+
5 rows in set (0.00 sec)
一窥究竟,发现属性有ID,Name,CountryCode,District,Population。
- 具体的操作:
- 对于库的操作:
show databases; #列出当前有哪些库【注意databases,还有分号】
use xxx; #使用xx数据库,xxx表示数据库名
select database(); #当前使用的是哪个库【注意database后面没有s】
create database xxx; #创建xxx数据库
drop database xxx; #删除xxx数据库 - 对于表的操作:
show tables; #列出xxx库里面的表
create table stu(name char(20),id int,age int,address char(30),phone_num char(11),primary key (id));
); #创建一个stu表,并且id是主键
- 对于库的操作:
mysql> create table stu (
-> name char(20),
-> id int,
-> age int,
-> address char(30),
-> phone_num char(11),
-> primary key (id)
-> );
Query OK, 0 rows affected (0.36 sec)
> desc stu; #stu表的详细属性
mysql> desc stu;
+-----------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+----------+------+-----+---------+-------+
| name | char(20) | YES | | NULL | |
| id | int(11) | NO | PRI | 0 | |
| age | int(11) | YES | | NULL | |
| address | char(30) | YES | | NULL | |
| phone_num | char(11) | YES | | NULL | |
+-----------+----------+------+-----+---------+-------+
5 rows in set (0.00 sec)
> insert into stu values ('tju',001,20,'8A',10086); #注意values,如果只有一条,-s 可选,但是多条数据 -s 必选
mysql> insert into stu values (
-> 'tju',
-> 001,
-> 20,
-> '8A',
-> 10086
-> );
Query OK, 1 row affected (0.08 sec)
mysql> insert into stu values (
-> 'nku',
-> 002,
-> 20,
-> '8b',
-> 10010),
-> (
-> 'pku',
-> 003,
-> 21,
-> 'bj',
-> '110'
-> ),
-> ('tju',
-> '004',
-> 22,
-> 'sh',
-> '95188');
Query OK, 3 rows affected (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 0
列出全部的记录(元组)
mysql> select * from stu;
+------+----+------+---------+-----------+
| name | id | age | address | phone_num |
+------+----+------+---------+-----------+
| tju | 1 | 20 | 8A | 10086 |
| nku | 2 | 20 | 8b | 10010 |
| pku | 3 | 21 | bj | 110 |
| tju | 4 | 22 | sh | 95188 |
+------+----+------+---------+-----------+
4 rows in set (0.00 sec)
有选择的列出几个,条件是 age < 21
mysql> select name from stu where age < 21;
+------+
| name |
+------+
| tju |
| nku |
+------+
2 rows in set (0.00 sec)
alter table stu add passwd varchar(12); #增加属性passwd
alter table stu add column passwd varchar(12); #与上面效果相同
delete from school where id =4; #删除一条数据
删除passwd属性,同理会删除这一列的所有数据:
mysql> alter table stu drop column passwd;
Query OK, 0 rows affected (0.62 sec)
Records: 0 Duplicates: 0 Warnings: 0
rename table stu to school; #修改表的名字
alter table stu change phone_num num varchar(11); #修改属性名(列名)
update school set age = 23 where name ='nku'; #更新age为23
- 退出
exit
quit #两个命令都可以
欢迎讨论,未完待续