数据库基础命令

 

1、链接数据库:

一、创建数据库表

mysql -h 主机名 -u 用户名 -p

1.在命令行中进入MySQL数据库
我们的操作都是在命令行中进行的,所以保证你可以进入命令行界面(对于Windows,开始菜单–运行–输入cmd,即可调出命令行界面,Linux和MAC的就不用多说了。)
在命令行中进行如下的命令操作就可以进入到MySQL数据库中:
C:\Windows\system32> mysql -h localhost -u root -p

-h :该命令用于指定客户端所要登录的MySQL主机名,
登录当前机器该参数可以省略;

基本的解释如下:

-u :所要登录的用户名;

◆-h:后面接的是主机名,表示你要连接到哪台主机的MySQL数据库。

-p :告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空,
可以忽略此选项。

◆-u:后面接的是用户名,MySQL默认的就是root。

例:mysql -h 123.57.240.208 -u yizhibo -p

◆-p:指定需要使用密码登陆MySQL数据库,如果密码为空,该参数可以省略。

2、创建一个数据库:

详细的解释如下:

create database 数据库名 [其他选项];

例:create database books character set gbk;

前面我们在-h后面填写了localhost,表示的是要登陆到当前主机的MySQL数据库,在这种情况下,-h参数以及localhost完全可以省略,也就是说,使用下面的命令也是可以登陆到本机的MySQL数据库的:

便于在命令提示符下显示中文, 在创建时通过 character set gbk
将数据库字符编码指定为 gbk

2.查看已有的数据库
成功登陆到MySQL数据库中之后,我们首先就来看一下,MySQL数据库中有多少个数据库(你可以理解为,MySQL数据库是一个大仓库,然后这个大仓库下面有多个小的仓库,我们就在这些小仓库中存放我们的数据),我们进行如下的操作:
mysql> show databases;

3、选择索要操作的数据库:

3.创建自己的数据库*(create database 数据库名;)

use 数据库名;

例:use books;

接下来我们就要创建一个属于我们自己的数据库来保存数据了,看下面的操作:
mysql> create database students_info;
Query OK, 1 row affected (0.01 sec)

4、创建数据库表:

这里我们创建了一个名为students_info的数据库,当看到有Query OK, 1 row
affected (0.01 sec)时,就说明我们的数据库创建成功了.

create table 表名称(列声明);

4.4.选择要操作的数据库
(use 数据库名[;]
这时你应该注意到,分号”;”是放在中括号[]里的,也就是说,加不加分号都是可以的,这意味着,你使用use
students_info来进行数据库的选择也是可以的,但为了不容易混淆,建议还是加上去好些吧。)

以创建 students 表为例, 表中将存放
学号(id)、姓名(name)、性别(sex)、年龄(age)、联系电话(tel) 这些内容:

在上面的数据库中,并不是每一个都是我们需要进行操作的,我们只需要对我们刚刚创建的数据库students_info进行操作就可以了,但是,如果要想操作这个数据库,首先你就要告诉MySQL数据库系统,接下来你要使用students_info这个数据库来进行相关的操作,如何告诉系统呢?看下面的操作:
mysql> use students_info;
Database changed

create table students

id int unsigned not null auto_increment primary key,

name char(8) not null,

sex char(4) not null,

age tinyint unsigned not null,

tel char(13) null default “-“

);

5.在数据库中创建数据库表(create table 数据库表名(列声明);)

5、向表中插入数据:

mysql> create table network3
-> (
-> id char(10) not null primary key,
-> name char(16) not null,
-> sex char(6) not null,
-> age int not null,
-> address char(36) not null
-> );

insert [into] 表名 [(列名1, 列名2, 列名3, …)] values (值1, 值2,
值3, …);

例:insert into students values(NULL, “王刚”, “男”, 20,
“13811371377”);

a.创建一列,名称为id;数据类型为char字符类型,字符的最大长度为10个字符;并且该列内容不允许为空;同时把这一列作为这张表的主键,用来区分表中不同行。

插入部分数据:

b.创建一列,名称为name;数据类型为char字符类型,字符的最大长度为16个字符;并且该列内容不允许为空。

insert into students (name, sex, age) values(“孙丽华”, “女”, 21);

关于primary key

6、数据查询

考虑一下,在学生信息表中,假如存放了很多学生的信息,像上面这个表中,可能会存在这样的两个学生,他们的name、sex、age、address都相同的,这很正常吧!所以呢,你就必须得有一个数据项是不同的,我们上面这个表就指定id数据项是必须不同相同的,也就是所谓的主键了。

select 列名称 from 表名称 [查询条件];

例:select * from students;

关于列名称

按照特定条件查询:

需要注意的是,每一列的名称必须是不相同的才行。

select 列名称 from 表名称 where 条件;

例:select * from students where sex = ’女’;

 

查询年龄在21岁以上的所有人信息: select * from students where age >
21;

6.MySQL数据库、数据库与数据库表

查询名字中带有 “王” 字的所有人信息: select * from students where name
like “%王%”;

好了,通过上面的操作,我们不仅仅学会了在MySQL数据库创建一个数据库,还学会了在新建数据库的中创建数据库表,我们来简单的理清一下这三者的关系吧:

查询id小于5且年龄大于20的所有人信息: select * from students where
id<5 and age>20;

MySQL数据库:相当于是一个大仓库,里面有很多个小仓库;

7、更新表中数据

数据库:相当于是大仓库中的小仓库,里面有很多个小的容器;

update 表名称 set 列名称=新值 where 更新条件;

数据库表:相当于是小仓库中的容器,我们就是在里面存储内容;

使用示例:

 

将id为5的手机号改为默认的”-“: update students set tel=default where
id=5;

将所有人的年龄增加1: update students set age=age+1;

将手机号为 13288097888 的姓名改为 “张伟鹏”, 年龄改为 19: update
students set name=”张伟鹏”, age=19 where tel=”13288097888″;

二、操作数据库中的数据库表

8、删除表中的数据:

1.向数据表中添加数据

delete 语句用于删除表中的数据, 基本用法为

前面创建了数据库表之后,注意里面是没有存储任何数据的,下面我们就往这个表中插入数据:

delete from 表名称 where 删除条件;

mysql> insert into network3
values(“3114006441″,”xpleaf”,”male”,35,”QingYuan”);

使用示例:

insert into 数据库表名 values(value值1,value值2,…….);

删除id为2的行: delete from students where id=2;

删除所有年龄小于21岁的数据: delete from students where age<20;

删除表中的所有数据: delete from students;

因为我创建的表中是有6列的,所以values里也就有6个值了。这是一种向表中插入数据的方式,当然,你也可以指定向特定的列中插入数据,命令语法如下:

9、对表结构的修改

insert into 数据库表名 (列名1,列名2,…) values(value值1,value值2,…);

alter table 语句用于创建后对表的修改, 基础用法如下:

 

添加列

2.查询数据库表中的数据
(1)查询表中全部数据

基本形式:alter table 表名 add 列名 列数据类型 [after 插入位置];

mysql> select * from network3;

示例:

这里的”*”是一个通配符,它表示任意匹配,如果你学过基本的正则表达式,这应该比较好理解,所以”*”放在列的位置,表示的是要查询所有列的数据;我们是查询network3这张表中的全部列的数据。

在表的最后追加列 address: alter table students add address char(60);

在名为 age 的列后插入列 birthday: alter table students add birthday
date after age;

(2)查询表中特定列的数据

修改列

mysql> select id,name from network3;

基本形式:alter table 表名 change 列名称 列新名称 新数据类型;

(3)按特定条件查询表中的数据
select * from network3 where name=’xpleaf’;

示例:

select * from network3 where sex=’female’;
select * from network3 where sex=’male’ and address=’QingYuan’;
select * from network3 where age > 40;
select * from network3 where name like “%leaf”;

将表 tel 列改名为 telphone: alter table students change tel telphone
char(13) default “-“;

将 name 列的数据类型改为 char(16): alter table students change name
name char(16) not null;

select 列名称 from 数据库表名 where 查询条件;

删除列

 

基本形式:alter table 表名 drop 列名称;

3.修改数据库表中的数据

示例:

#将name为”xpleaf”的address修改为”YuanTan”
update network3 set address=”YuanTan” where name=’xpleaf’;

删除 birthday 列: alter table students drop birthday;

 

重命名表

#将所有人的age加1
update network3 set age=age+1;

基本形式:alter table 表名 rename 新表名;

update 数据库列名 set 列够=新value where 更新条件;

示例:

4.删除数据库表中的数据

重命名 students 表为 workmates: alter table students rename workmates;

delete from 数据库表名 where 删除条件;
delete from network3 where name=’Pei’;

删除整张表

delete from 数据库表名;
也就是不添加删除条件,不过这里你先别这样操作,数据我们后面还需要使用,有一点需要注意的是,这个命令只是把表中的所有数据删除而已,并没有把这个表也删除了,这个数据库表是依然存在的,只是这时候它就是一个空表,就像我们刚刚创建它时一样。

基本形式:drop table 表名;

 

示例:

5.修改数据库表
(1)修改数据库表中的列
alter table 数据库表名 change 列名称 新数据类型 [其它];

删除 workmates 表: drop table workmates;

在修改前,先看一下原来数据库表的详细信息:

删除整个数据库

mysql> describe network3;

基本形式:drop database 数据库名;

开始做修改操作:

示例:

#将列名称”adress”修改为”addr”,其它保持不变
mysql> alter table network3 change address addr char(30) not null;

删除 samp_db 数据库: drop database samp_db;

查看修改后的数据库表的详细信息:

mysql> describe network3;

(2)删除数据库表的列

有时候,随着时间的推移,数据库表中的某些内容显得没有那么重要了,或者说已经没有存在的意义了,这时候我们就可以把整一列都删除掉,这样就可以节省一些存储空间了。

删除列的基本命令语法如下:

alter table 数据库表名 drop 列名称;
alter table network3 drop addr;
我们删除了addr这一列,虽然提示已经成功删除,但我们还是习惯性地检查一下删除一列之后数据库表的详细信息:

(3)重命名数据库表
通过前面的操作,我们的数据库表已经焕然一新,跟原来的相比,结构已经发生了一些变化,这时我们就给这个数据库表重命名吧。

给数据库表重命名的基本命令语法如下:

mysql> alter table network3 rename New_network3;
再用show tables;来查看一下此时存在的数据库表:

mysql> show tables;

(4)删除数据库表

drop table 数据库表名;
drop table New_network3;
再用show tables;来查看一下数据库中的数据库表:

mysql> show tables;

(5)增加数据库表
alter table network3 add address_now char(15) not null

6.删除数据库

最开始我们在MySQL数据库创建了students_info这个数据库,是为了在用它来存储学生信息,现在,我们不想用MySQL数据库来存储有关学生信息了,这时,就可以考虑把students_info这个数据库删除了。

删除数据库的基本命令语法如下:

drop database 数据库名;

drop database students_info;
这时我们再使用show databases;来查看MySQL数据库的数据库:

四、进阶操作

1.修改MySQL数据库的登陆密码

不管怎么说,你的MySQL数据库密码总不可能一直不变,说不定哪一天你不小心把它告诉了你的朋友,而里面又存放了非常重要的数据,这时你就要修改数据库的登陆密码了。

修改数据库登陆密码的基本命令语法如下:

mysqladmin -r root -p password 新密码

注意,这个操作应该是在你未登陆MySQL数据库之前进行的操作。

2.在登陆MySQL数据库时指定要操作的数据库

直接给出下面的基本命令语法:

mysql -D 选择要操作的数据库名 -h 主机名 -u root -p

3.通过文件的方式创建数据库表

前面我们在创建数据库表时,使用的方法是在MySQL数据库的命令行界面中一行一行输入的,这样不仅很容易输错,而且一旦输错了,又得重新输一遍,当要创建一个结构比较复杂的数据库表时,这样的方法显然是行不能的,这时我们就可以考虑使用文件的方式来操作了。

直接给出下面的基本命令语法:

mysql -D 选择要操作的数据库名 -h 主机名 -u root -p < .sql类型文件

你可以看到,在进阶操作这一部分里,我并没有给大家进行具体的操作,实在是因为我觉得,通过前面的操作之后,如果你真的操作过了,那么你对MySQL数据库应该是有一定的了解了,这时候你应该举一反三,自己去尝试做这几个进阶操作,当你把这几个进阶操作也完成了,相信我,你对MySQL数据库基本命令的操作一定会上升一个Level的!所以,我这里就不给出具体操作啦,否则的话,意义就不太大了。