内容简介:
一旦学会了如何输入SQL语句,就能够访问数据库了!
假如你家里有几个宠物,而且但愿记录关于它们的各类信息,你能够建立数据表来存储这些信息。以后你就能够经过检索这些信息来回答各类关于你的动物的问题。
menagerie数据库很简单,可是经过它咱们不难了解到现实世界中的相似状况。例如,农民可使用相似的数据库来记录牲畜数据,兽医使用数据库记录动物的病例。如下部分用到的数据库能够在这个网站获取:https://dev.mysql.com/doc/mysql
用 SHOW 语句能够查出当前服务器上有哪些数据库:sql
mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | | tmp | +----------+
mysql数据库描述了用户访问权限。test 数据库一般做为用户测试使用。以上sql语句列出的数据库可能因机器而有所不一样。SHOW DATABASES 语句并不会列出你无权访问的数据库。若是test数据库存在,能够尝试访问它:shell
mysql> USE test Database changed
USE 和 QUIT 类似,不须要分号结尾(固然若是你喜欢加分号,也没有关系), USE 语句还有另一个特殊之处:它必须在一行内。
后面的示例可使用 test 数据库,可是你在这个库里建立的任何数据均可能会被其余访问者删除。所以,你应该联系管理员受权使用你本身的数据库,例如你想访问 menagerie 数据库,管理员会执行以下语句给你受权:数据库
mysql> GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';
your_mysql_name 是你的MySQL用户,your_client_host 是主机地址,你从这个主机链接服务器。服务器
1. 建立并选定数据库ide
mysql> CREATE DATABASE menagerie;
在UNIX环境中,数据库名称是区分大小写的,所以必定要注意,须要一直使用 menagerie, 不能使用相似于 Menagerie, MENAGERIE 等变体,表名称也是如此。(在Windows系统中没有这个限制,可是由于种种缘由,最佳实践仍是推荐使用在建立时用的名称)
建立了一个数据库并不会自动选中它,必须明确指定数据库。要使 menagerie 成为当前数据库,使用以下语句:布局
mysql> USE menagerie Database changed
数据库只需建立一次,可是在每次开始mysql会话时,要使用数据库都须要先选中它。除了使用USE语句,还能够在启动mysql时,在命令行中选择数据库:测试
shell> mysql -h host -u user -p menagerie Enter password: ********
2. 建立表
建立数据库很简单,但此时它是空的,使用SHOW TABLES语句结果以下:网站
mysql> SHOW TABLES; Empty set (0.00 sec)
考虑数据库结构是有些复杂的,这时须要考虑要包含什么表,以及每一个表都须要什么列。
咱们须要一个表来记录各类宠物,能够命名为 pet,最低限度上,它应该包含每一个动物的名字。可是名字自己并无什么意思,表应该包含更多其余信息。例如,若是家庭中不止一人饲养宠物,你可能须要列出每一个动物的主人,你可能还想记录其余信息,好比物种和性别。年龄信息也颇有意思,可是并不适合存在数据库中,由于它会随着时间变化,所以,存储一个固定值,好比出生日期,可能会更合适!
使用CREATE TABLE语句指定表的布局:命令行
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
对于name, owner 和species 列,VARCHAR是比较适合的,由于列的内容长度是变化的,能够不用都设定为20,通常能够设定为1-65535之间的任何长度。若是设置的长度不合理,之后须要修改,可使用ALTER TABLE语句。
建立表以后,使用 SHOW TABLES 语句能够看到相似以下结果:
mysql> SHOW TABLES; +---------------------+ | Tables in menagerie | +---------------------+ | pet | +---------------------+
若要验证表是否正确建立,可使用 DESCRIBE 语句:
mysql> DESCRIBE pet; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | owner | varchar(20) | YES | | NULL | | | species | varchar(20) | YES | | NULL | | | sex | char(1) | YES | | NULL | | | birth | date | YES | | NULL | | | death | date | YES | | NULL | | +---------+-------------+------+-----+---------+-------+
能够在任什么时候候使用DESCRIBE查询表中列的名称或者类型。